1 Conferencia “Herramientas para el Desarrollo de Animación y Videojuegos” Rogelio Ferreira...

Post on 02-Feb-2016

219 views 0 download

Transcript of 1 Conferencia “Herramientas para el Desarrollo de Animación y Videojuegos” Rogelio Ferreira...

1

Conferencia

“Herramientas para el Desarrollo de Animación y Videojuegos”

Rogelio Ferreira EscutiaInstituto Tecnológico de Morelia

Departamento de Sistemas y Computación2 de junio del 2005

Primer Congreso de Animación, Graficación y Videojuegos

Universidad Vasco de Quiroga – 2 de junio del 2005

2

Contenido

1) Historia de los Videojuegos2) DirectX3) Java 3D4) Open GL5) Proyectos en el ITM

3

1) Historia de los Videojuegos

Los video juegos nacieron en 1958 cuando William Higinbotham, un ingeniero de un laboratorio de investigación nuclear en Estados Unidos, usando una computadora análoga y un osciloscopio desarrollo un juego parecido al tenis.

El juego lo podían disfrutar los visitantes del laboratorio.

Primer Video JuegoPrimer Video Juego

4HNF - Heinz Nixdorf MuseumsForum http://www.hnf.de/museum/update_videospiele_en.html

La primera consola de juegos fué la "Odyssey", desarrollada por el ingeniero Ralph Baer en 1968.

El juego de la "Odyssey" era similar al ping-pong y fué distribuida por Magnavox en 1972. 350,000 consolas fueron vendidas en todo el mundo.

Primera Consola de JuegosPrimera Consola de Juegos

5HNF - Heinz Nixdorf MuseumsForum http://www.hnf.de/museum/update_videospiele_en.html

Nolan Bushnell retomó la idea del juego Ping Pong e inicia el desarrollo de una versión del mismo.

Para ello funda el 27 de junio de 1972 la compañía Atari y 5 meses después sale la primera versión de Pong.

Para 1975 Atari domina el mercado de los video juegos.

AtariAtari

6HNF - Heinz Nixdorf MuseumsForum http://www.hnf.de/museum/update_videospiele_en.html

Al principio de la década de los 80´s, el mercado de los video juegos era dominada por Atari, Mattel y Magnavox.

A partir de 1983 surgen las primeras computadoras caseras con capacidades para juegos, como la VC-20 y la C64, las cuales empezaron a dominar el mercado.

Primeras ComputadorasPrimeras Computadoras

7HNF - Heinz Nixdorf MuseumsForum http://www.hnf.de/museum/update_videospiele_en.html

Amor a lo que se hace

8

Yo y mi Elektra IBM PC Compatible 8088, 1987

Hasta que las Hasta que las Pentium nos Pentium nos

separenseparen

Durante la década de los 90´s, surge la compañía Nintendo, la cual domina el mercado.

NintendoNintendo

9HNF - Heinz Nixdorf MuseumsForum http://www.hnf.de/museum/update_videospiele_en.html

10

2) DirectX

Antes del surgimiento de la arquitectura Windows, el desarrollar un juego era extremadamente complejo ya que cada programador necesitaba desarrollar su propio software para leer el teclado o joystick, rutinas para desplegar a pantalla, manejo de sonidos, etc.

En esta etapa, el desarrollo de un juego se basaba en comunicarse directamente con el hardware de la PC.

Para resolver este problema, Microsoft desarrolla el concepto de programar en alto nivel, y que el software se dedicara a interpretar estos datos al hardware de su computadora en donde se ejecuta, y de esta manera nace DirectX.

Nacimiento de DirectXNacimiento de DirectX

11• PCAnswers, http://www.pcanswers.co.uk, mayo 2005

DirectX es una interface entre el hardware de la PC y Windows.

Cuando un programador quiere reproducir un sonido, simplemente manda llamar la función requerida, sin necesidad de saber que tipo de tarjeta de sonido tiene la PC.

Windows proporciona las funciones DirectX y el fabricante de la tarjeta de sonido el driver compatible con DirectX, por lo que cuando se invoca la función de sonido, se hace la interpretación del código para que se ejecuta en la tarjeta de sonido.

En caso de cambiar de tarjeta de sonido, solo es necesario incluir el driver correspondiente sin necesidad de cambiar el código del juego que se esta ejecutando.

DirectX - FuncionamientoDirectX - Funcionamiento

12• PCAnswers, http://www.pcanswers.co.uk, mayo 2005

Tecnologías 3DTecnologías 3D

13• PC Tech Guide – Multimedia Graphics Cards http://www.pctechguide.com/05graph2.htm agosto 2003

DirectX:

Los desarrolladores de software para 3D tenían problemas al intentar correr un programa que funcionara en varios tipos de tarjetas aceleradoras, ya que cada una se programaba diferente.

Para solucionar este problema, Microsoft lanza al mercado en 1995 el DirectX, como parte de la plataforma de Windows 95.

DirectX es un API (Application Programming Interface) que funciona como intermediario entre la aplicación de software y el hardware en el cual corre.

Los desarrolladores de software en este caso, escriben sus programas basado en instrucciones DirectX, las cuales son traducidas al lenguaje de la tarjeta específica sobre la que se corre, lo cual permite que un software corra en múltiples plataformas sin necesidad de cambiar nada del código.

Tecnologías 3DTecnologías 3D

14• PC Tech Guide – Multimedia Graphics Cards http://www.pctechguide.com/05graph2.htm agosto 2003

DirectX (continuación):

DirectX esta formado por los siguientes componentes: Direct 3D – usado para gráficos 3D en tiempo real. DirectDraw – se utiliza para acelerar gráficos 2D. DirectSound – Sirve para reproducir audio. DirectPlay – Se utiliza para conectividad en redes (para

juegos con múltiples jugadores sobre internet). DirectInput – Se encarga de controlar dispositivos de

entrada/salida como los joysticks. DirectMusic – Reproduce música que se controla por medio

de mensajes.

Tecnologías 3DTecnologías 3D

15• PC Tech Guide – Multimedia Graphics Cards http://www.pctechguide.com/05graph2.htm agosto 2003

Capas utilizadas en las Tecnologías 3D

16

3) Java 3D

Es un lenguaje que se originó en 1991 como parte de un Es un lenguaje que se originó en 1991 como parte de un proyecto de investigación (“Green Team”, formado por Patrick proyecto de investigación (“Green Team”, formado por Patrick Naughton, Mike Sheridan, y James Gosling) para desarrollar un Naughton, Mike Sheridan, y James Gosling) para desarrollar un nuevo lenguaje de programación llamado “Oak”.nuevo lenguaje de programación llamado “Oak”.

Este lenguaje se enfocó para comunicar dispositivos caseros Este lenguaje se enfocó para comunicar dispositivos caseros como televisiones y videocaseteras, los cuales pudieran como televisiones y videocaseteras, los cuales pudieran compartir el mismo software pero utilizando diferentes compartir el mismo software pero utilizando diferentes microprocesadores.microprocesadores.

Este lenguaje no prospero en el mercado de dispositivos Este lenguaje no prospero en el mercado de dispositivos caseros, por lo que se cambió el mercado en el cual se caseros, por lo que se cambió el mercado en el cual se emplearía, optando utilizarlo en el naciente Web, para el emplearía, optando utilizarlo en el naciente Web, para el desarrollo de componentes multimedia en páginas web.desarrollo de componentes multimedia en páginas web.

Estas aplicaciones fueron denominadas “applets” y fue en ese Estas aplicaciones fueron denominadas “applets” y fue en ese entonces que se cambió el nombre por Java.entonces que se cambió el nombre por Java.

Java - HistoriaJava - Historia

17• ACM – http://www.acm.org – Agosto 2003

“Green Team” de izquierda a derecha: Al Frazier, Joe Palrang, Mike Sheridan, Ed Frank, Don Jackson, Faye Baxter, Patrick Naughton, Chris Warth, James Gosling, Bob Weisblatt, David Lavallee, and Jon Payne.

Java - HistoriaJava - Historia

18• Java Technology: The Early Years, http://java.sun.com/features/1998/05/birthday.html, marzo 2004

Dispositivo e interface del prototipo denominado *7 (Star Seven) con el cual se hizo una demostración de la plataforma Java (aún no denominada con este nombre).

Java - HistoriaJava - Historia

19• Java Technology: The Early Years, http://java.sun.com/features/1998/05/birthday.html, marzo 2004

La plataforma Java es una nueva forma de trabajar con La plataforma Java es una nueva forma de trabajar con computadoras, basado en el poder de las redes y en la idea computadoras, basado en el poder de las redes y en la idea de que el mismo software pueda correr en diferentes tipos de de que el mismo software pueda correr en diferentes tipos de computadoras.computadoras.

La idea es crear un software que trabaje desde pequeños La idea es crear un software que trabaje desde pequeños dispositivos hasta supercomputadoras, el único requisito es dispositivos hasta supercomputadoras, el único requisito es el dispositivo soporte la plataforma Java.el dispositivo soporte la plataforma Java.

En la actualidad, la plataforma Java es soportada por En la actualidad, la plataforma Java es soportada por teléfonos, tarjetas inteligentes, electrodomésticos, etc.teléfonos, tarjetas inteligentes, electrodomésticos, etc.

Plataforma JavaPlataforma Java

• What is the Java Platform, http://java.sun.com/java2/whatis/1996/, marzo 2004 20

La plataforma SUN esta formado por los siguientes La plataforma SUN esta formado por los siguientes componentes:componentes:

J2SE: Aplicaciones de escritorio.J2SE: Aplicaciones de escritorio.J2EE: Aplicaciones empresariales.J2EE: Aplicaciones empresariales.J2ME: Aplicaciones Móviles (Embedded Systems).J2ME: Aplicaciones Móviles (Embedded Systems).Java Card: Tarjetas inteligentes.Java Card: Tarjetas inteligentes.

Plataforma JavaPlataforma Java

21• ACM – http://www.acm.org – Agosto 2003

Java es un lenguaje de Programación Orientado a Objetos (Object-Oriented Programming), por lo que se busca crear objetos, o piezas de código autónomo, que pueda interactuar con otros objetos para resolver un problema.

El lenguaje de programación Java fue desarrollado para tener las siguientes características:

1) Orientado a Objetos.2) Distribuido.3) Simple.4) Multihilo.5) Seguro.6) Independiente de la plataforma.

Java - CaracterísticasJava - Características

22• ACM – http://www.acm.org – Agosto 2003

Filosofía de Java:

Write once, run anywhere

Filosofía de Java 3D

Think objects . . . not verticesThink content . . . not rendering process

Java 3DJava 3D

23• -

Java 3D es una API de alto nivel para construcción de modelos 3D interactivos basados en lenguaje Java.

Características:

Múltiples plataformas, uso de múltiples dispositivos de graficación y de entrada de datos.

Dibujo de datos vía OpenGL/Direct3DUtiliza aceleración 3D en Hardware cuando esta

disponible.Optimización de renderización.Creación de aplicaciones en la web vía applets.

Java 3DJava 3D

24• -

Aplicaciones

Java 3DJava 3D

25• -

Graficación Medicina CAD

Una escena (scene graph) es un árbol (family tree) que contiene datos de escenas, los cuales pueden ser:

Hijos (Children), compuestos por figuras, luces, sonidos, etc.

Familiares (Parents) que son grupos de Hijos y otros familiares.

Por medio de los anteriores se genera un grupo jerárquico (hierarchical) de figuras.

La aplicación crea una escena usando clases de Java 3D y métodos.

Java 3D renderiza la escena dentro de la pantalla.

Java 3DJava 3D

26• -

Construcción de una escena

Java 3D - EscenasJava 3D - Escenas

27• Introduction to Programming with Java 3D, Sowizral y Nadeau, http://www.sdsc.edu/~nadeau, mayo 2005

Definir componentes

Ensamble de componentes

Objeto final

El diagrama de escena muestra mas claramente los componentes del objeto creado.

Java 3D - EscenasJava 3D - Escenas

28• Introduction to Programming with Java 3D, Sowizral y Nadeau, http://www.sdsc.edu/~nadeau, mayo 2005

API Java 3DAPI Java 3D

29• -

Diagrama de UniversoDiagrama de Universo

30• Introduction to Programming with Java 3D, Sowizral y Nadeau, http://www.sdsc.edu/~nadeau, mayo 2005

Universo SimpleUniverso Simple

31• Introduction to Programming with Java 3D, Sowizral y Nadeau, http://www.sdsc.edu/~nadeau, mayo 2005

Una escena esta construida por los siguientes componentes:

Formas (geometría y apariencia) Grupos y Transformaciones Luces Niebla y Fondos Sonidos y efectos de sonido Comportamientos Puntos de vista

Java 3D - EscenasJava 3D - Escenas

32• Introduction to Programming with Java 3D, Sowizral y Nadeau, http://www.sdsc.edu/~nadeau, mayo 2005

Construcción de objetos

Java 3D - EscenasJava 3D - Escenas

33• Introduction to Programming with Java 3D, Sowizral y Nadeau, http://www.sdsc.edu/~nadeau, mayo 2005

Tren de Aterrizaje192 formas

Grabadora11,000 componentes

34

4) Open GL

OpenGLOpenGL

35• PC Tech Guide – Multimedia Graphics Cards http://www.pctechguide.com/05graph2.htm agosto 2003

OpenGL:

Es un proyecto iniciado por Silicon Graphics en 1992 y cuyo objetivo era el desarrollo CAD (Computer Aided Design) para plataformas UNIX con X-terminals.

Inicialmente se utilizó para aplicaciones en negocios (diseño industrial, mecánico y arquitectónico) y para análisis científicos y estadísticos, pero desde que se lanzó una versión para Windows en 1996, los desarrolladores de juegos lo empezaron a utilizar, creando muchas aplicaciones para plataformas PC´s.

OpenGL fué desarrollado por Silicon Graphics, y es una librería para modelado 3D. Es ampliamente utilizado, desde juegos hasta CAD.

ESta provisto por un conjunto de rutinas de renderizado de bajo nivel y multiplataforma, con lo que logra control y flexibilidad.

Su mayor desventaja es que no incluye soporte para sonido, red y dispositivos de entrada como DirectX.

OpenGLOpenGL

36• -

Primitivas geométricas (puntos, líneas, polígonos, etc.). Dibujo de curvas. Trasladar, rotar y escalar objetos. Eliminación de líneas y superficies ocultas. Manejo amplio de colores. Doble buffer para eliminar el parpadeo en las animaciones. Mapeado de textura. Atialiasing (suavizar bordes de polígonos y líneas). Establecer y cambiar fuentes de luz, su intensidad, color,

etc. Efectos atmosféricos (niebla o humo).

Características de OpenGLCaracterísticas de OpenGL

37• Andrómeda Studios, http://usuarios.lycos.es/andromeda_studios/paginas/principal.htm, mayo 2005.

38

5) Proyectos en el ITM

Juegos

JuegosJuegos

40

Juego “Caballeros del Zodiaco”, curso de Ambientes Gráficos 2003 - 2

Líneas de Código – Caballeros del Zodiaco

Game.cpp = 2036Cd_audio.cpp = 57Control.cpp = 111Engine.cpp = 707Sound.cpp 269

Total = 3123

CódigoCódigo

41• -

Juego “de guorst geim eber sinde guorst geim eber sin”, curso de Ambientes Gráficos 2004 - 2

JuegosJuegos

42• -

Juego “Half Mike”, curso de Ambientes Gráficos 2004 - 2

JuegosJuegos

43• -

Tesis de Ingeniería “Mensajería Instantánea descentralizada para dispositivos Móviles ”, Karina Morán Ramírez

ITMITM

44• -

Visión

Ejemplo: Algoritmos para detección de bordes (Sobel)

VisiónVisión

46• -

Software para detección de Movimiento.

Sistemas de SeguridadSistemas de Seguridad

47• -

Tesis de Ingeniería “Algoritmos de Detección de movimiento para el control y monitoreo de dispositivos caseros mediante tecnología Bluetooth ”, Carla Cutzih López González

ITMITM

48• -

ITM

Diseñar e implementar una Diseñar e implementar una interfaz para computadora que interfaz para computadora que permita controlar las operaciones permita controlar las operaciones básicas de un sistema operativo, básicas de un sistema operativo, mediante el reconocimiento de mediante el reconocimiento de movimientos corporales, movimientos corporales, adquiridos por una videocámara, adquiridos por una videocámara, prescindiendo del uso de prescindiendo del uso de dispositivos externos que se dispositivos externos que se adapten al cuerpo humano.adapten al cuerpo humano.

Tesis de Maestría “Computación asistida por una interfaz hombre-máquina no intrusiva, implementada con algoritmos de reconocimiento de rostros y detección de movimiento ”, Oswaldo Ochoa Ortíz

• -49

ITM

• -50

Cámaras

Brazo Robótico

Entorno variable

Procesamiento de Imágenes

Identificación de objetos

Cálculo de distancias

y posiciones

Acciones de control

Prototipo del Sistema de Visión Estereoscópica para la detección y manipulación de objetos

ITM Tesis de Maestría “Sistema de visión estereoscópica para detección

y manipulación de objetos mediante un brazo robot ”, Sandra Ivonne Suárez Sandoval

• -51

Graficación

Multimedia

Pinnacle Studio 9

Edición de VideoEdición de Video

54• -

Video Nike

Edición de VideoEdición de Video

55• -

JUEGOSJuegos 3DJuegos para celulares.Juegos multijugador.Juegos en red.

VISIONReconocimiento de objetos 3D.Reconocimiento de rostros.

GRAFICACIONCreación de lugares virtualesRecorridos virtuales.Creación de personajes virtualesPersonajes con Inteligencia Artifical.

MULTIMEDIACreación de actores para películas

Proyectos FuturosProyectos Futuros

56• -

if ((yo = “me gusta mi profesión”) and

(yo = “domino lo que hago”) and and

(yo = “s oy el primer en terminar el trabajo”) then

Listos para el Futuro¡ Mayores Oportunidades !

else{PROBLEMAS;yo = “ingeniero tutifruti y del montón”;Trabajo = pocas oportunidades;Futuro = dedicarse a lo que sea, menos a lo que estudié;}

Rogelio Ferreira Escutia

Instituto Tecnológico de MoreliaDepartamento de Sistemas y Computación

http://antares.itmorelia.edu.mx/~kaosE-mail: rferreir@itmorelia.edu.mx

rogeplus@yahoo.com.mx