Download Herramientas para el desarrollo de Animación y Video
Document related concepts
no text concepts found
Transcript
Primer Congreso de Animación, Graficación y Videojuegos Universidad Vasco de Quiroga – 2 de junio del 2005 Conferencia “Herramientas para el Desarrollo de Animación y Videojuegos” Rogelio Ferreira Escutia Instituto Tecnológico de Morelia 1 Departamento de Sistemas y Computación 2 de junio del 2005 Contenido 1) Historia de los Videojuegos 2) DirectX 3) Java 3D 4) Open GL 5) Proyectos en el ITM 2 1) Historia de los Videojuegos 3 Primer Video Juego 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. HNF - Heinz Nixdorf MuseumsForum http://www.hnf.de/museum/update_videospiele_en.html 4 Primera Consola de Juegos 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. HNF - Heinz Nixdorf MuseumsForum http://www.hnf.de/museum/update_videospiele_en.html 5 Atari 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. HNF - Heinz Nixdorf MuseumsForum http://www.hnf.de/museum/update_videospiele_en.html 6 Primeras Computadoras 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. HNF - Heinz Nixdorf MuseumsForum http://www.hnf.de/museum/update_videospiele_en.html 7 Amor a lo que se hace Yo y mi Elektra IBM PC Compatible 8088, 1987 Hasta que las Pentium nos separen 8 Nintendo Durante la década de los 90´s, surge la compañía Nintendo, la cual domina el mercado. HNF - Heinz Nixdorf MuseumsForum http://www.hnf.de/museum/update_videospiele_en.html 9 2) DirectX 10 Nacimiento de 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. PCAnswers, http://www.pcanswers.co.uk, mayo 2005 11 DirectX - Funcionamiento • 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. PCAnswers, http://www.pcanswers.co.uk, mayo 2005 12 Tecnologías 3D 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. PC Tech Guide – Multimedia Graphics Cards http://www.pctechguide.com/05graph2.htm agosto 2003 13 Tecnologías 3D 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. PC Tech Guide – Multimedia Graphics Cards http://www.pctechguide.com/05graph2.htm agosto 2003 14 Tecnologías 3D • Capas utilizadas en las Tecnologías 3D PC Tech Guide – Multimedia Graphics Cards http://www.pctechguide.com/05graph2.htm agosto 2003 15 3) Java 3D 16 Java - Historia • Es un lenguaje que se originó en 1991 como parte de un proyecto de investigación (“Green Team”, formado por Patrick Naughton, Mike Sheridan, y James Gosling) para desarrollar un nuevo lenguaje de programación llamado “Oak”. Este lenguaje se enfocó para comunicar dispositivos caseros como televisiones y videocaseteras, los cuales pudieran compartir el mismo software pero utilizando diferentes microprocesadores. Este lenguaje no prospero en el mercado de dispositivos caseros, por lo que se cambió el mercado en el cual se emplearía, optando utilizarlo en el naciente Web, para el desarrollo de componentes multimedia en páginas web. Estas aplicaciones fueron denominadas “applets” y fue en ese entonces que se cambió el nombre por Java. ACM – http://www.acm.org – Agosto 2003 17 Java - Historia “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 Technology: The Early Years, http://java.sun.com/features/1998/05/birthday.html, marzo 2004 18 Java - Historia 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 Technology: The Early Years, http://java.sun.com/features/1998/05/birthday.html, marzo 2004 19 Plataforma Java La plataforma Java es una nueva forma de trabajar con computadoras, basado en el poder de las redes y en la idea de que el mismo software pueda correr en diferentes tipos de computadoras. La idea es crear un software que trabaje desde pequeños dispositivos hasta supercomputadoras, el único requisito es el dispositivo soporte la plataforma Java. En la actualidad, la plataforma Java es soportada por teléfonos, tarjetas inteligentes, electrodomésticos, etc. • What is the Java Platform, http://java.sun.com/java2/whatis/1996/, marzo 2004 20 Plataforma Java La plataforma componentes: SUN esta formado por los siguientes J2SE: Aplicaciones de escritorio. J2EE: Aplicaciones empresariales. J2ME: Aplicaciones Móviles (Embedded Systems). Java Card: Tarjetas inteligentes. • ACM – http://www.acm.org – Agosto 2003 21 Java - Características 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. • ACM – http://www.acm.org – Agosto 2003 22 Java 3D Filosofía de Java: Write once, run anywhere Filosofía de Java 3D Think objects . . . not vertices Think content . . . not rendering process • - 23 Java 3D 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/Direct3D Utiliza aceleración 3D en Hardware cuando esta disponible. Optimización de renderización. Creación de aplicaciones en la web vía applets. • - 24 Java 3D Aplicaciones Graficación • - Medicina CAD 25 Java 3D • 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. - 26 Java 3D - Escenas Construcción de una escena Definir componentes Ensamble de componentes Objeto final • Introduction to Programming with Java 3D, Sowizral y Nadeau, http://www.sdsc.edu/~nadeau, mayo 2005 27 Java 3D - Escenas • El diagrama de escena muestra mas claramente los componentes del objeto creado. Introduction to Programming with Java 3D, Sowizral y Nadeau, http://www.sdsc.edu/~nadeau, mayo 2005 28 API Java 3D • - 29 Diagrama de Universo • Introduction to Programming with Java 3D, Sowizral y Nadeau, http://www.sdsc.edu/~nadeau, mayo 2005 30 Universo Simple • Introduction to Programming with Java 3D, Sowizral y Nadeau, http://www.sdsc.edu/~nadeau, mayo 2005 31 Java 3D - Escenas • Una escena componentes: Formas (geometría y apariencia) Grupos y Transformaciones Luces Niebla y Fondos Sonidos y efectos de sonido Comportamientos Puntos de vista esta construida por los siguientes Introduction to Programming with Java 3D, Sowizral y Nadeau, http://www.sdsc.edu/~nadeau, mayo 2005 32 Java 3D - Escenas Construcción de objetos Tren de Aterrizaje 192 formas Grabadora 11,000 componentes • Introduction to Programming with Java 3D, Sowizral y Nadeau, http://www.sdsc.edu/~nadeau, mayo 2005 33 4) Open GL 34 OpenGL 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. PC Tech Guide – Multimedia Graphics Cards http://www.pctechguide.com/05graph2.htm agosto 2003 35 OpenGL • 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. - 36 Características de OpenGL • 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). Andrómeda Studios, http://usuarios.lycos.es/andromeda_studios/paginas/principal.htm, mayo 2005. 37 5) Proyectos en el ITM 38 Juegos Juegos Juego “Caballeros del Zodiaco”, curso de Ambientes Gráficos 2003 - 2 40 Código Líneas de Código – Caballeros del Zodiaco Game.cpp = Cd_audio.cpp = Control.cpp = Engine.cpp = Sound.cpp • 2036 57 111 707 269 Total = 3123 - 41 Juegos • - Juego “de guorst geim eber sin”, curso de Ambientes Gráficos 2004 - 2 42 Juegos • - Juego “Half Mike”, curso de Ambientes Gráficos 2004 - 2 43 ITM • Tesis de Ingeniería “Mensajería Instantánea descentralizada para dispositivos Móviles ”, Karina Morán Ramírez - 44 Visión Visión • - Ejemplo: Algoritmos para detección de bordes (Sobel) 46 Sistemas de Seguridad • - Software para detección de Movimiento. 47 ITM • 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 - 48 ITM • Tesis de Maestría “Computación asistida por una interfaz hombremáquina no intrusiva, implementada con algoritmos de reconocimiento de rostros y detección de movimiento ”, Oswaldo Ochoa Ortíz Diseñar e implementar una interfaz para computadora que permita controlar las operaciones básicas de un sistema operativo, mediante el reconocimiento de movimientos corporales, adquiridos por una videocámara, prescindiendo del uso de dispositivos externos que se adapten al cuerpo humano. - 49 ITM • - 50 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 Cámaras Procesamiento de Imágenes Identificación de objetos Brazo Robótico Acciones de control Cálculo de distancias y posiciones Entorno variable Prototipo del Sistema de Visión Estereoscópica para la detección y manipulación de objetos • - 51 Graficación Multimedia Edición de Video • - Pinnacle Studio 9 54 Edición de Video • - Video Nike 55 Proyectos Futuros JUEGOS Juegos 3D Juegos para celulares. Juegos multijugador. Juegos en red. VISION Reconocimiento de objetos 3D. Reconocimiento de rostros. GRAFICACION Creación de lugares virtuales Recorridos virtuales. Creación de personajes virtuales Personajes con Inteligencia Artifical. MULTIMEDIA Creación de actores para películas • - 56 if ((yo = “me gusta mi profesión”) and (yo = “domino lo que hago”) 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 Morelia Departamento de Sistemas y Computación http://antares.itmorelia.edu.mx/~kaos E-mail: rferreir@itmorelia.edu.mx rogeplus@yahoo.com.mx