1 conferencia “herramientas para el desarrollo de animación y videojuegos” rogelio ferreira...
TRANSCRIPT
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: [email protected]