580 likes | 772 Views
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 Departamento de Sistemas y Computación
E N D
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 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
4 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
5 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
6 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
7 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
8 Amor a lo que se hace • Yo y mi Elektra IBM PC Compatible 8088, 1987 Hasta que las Pentium nos separen
9 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
11 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
12 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
13 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
14 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
15 Tecnologías 3D • Capas utilizadas en las Tecnologías 3D • PC Tech Guide – Multimedia Graphics Cards http://www.pctechguide.com/05graph2.htm agosto 2003
17 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
18 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
19 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
20 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
21 Plataforma Java • La plataforma SUN esta formado por los siguientes componentes: J2SE: Aplicaciones de escritorio. J2EE: Aplicaciones empresariales. J2ME: Aplicaciones Móviles (Embedded Systems). Java Card: Tarjetas inteligentes. • ACM – http://www.acm.org – Agosto 2003
22 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
23 Java 3D • Filosofía de Java: Write once, run anywhere • Filosofía de Java 3D • Think objects . . . not vertices • Think content . . . not rendering process • -
24 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. • -
25 Java 3D • Aplicaciones Graficación Medicina CAD • -
26 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. • -
27 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
28 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
29 API Java 3D • -
30 Diagrama de Universo • Introduction to Programming with Java 3D, Sowizral y Nadeau, http://www.sdsc.edu/~nadeau, mayo 2005
31 Universo Simple • Introduction to Programming with Java 3D, Sowizral y Nadeau, http://www.sdsc.edu/~nadeau, mayo 2005
32 Java 3D - Escenas • 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 • Introduction to Programming with Java 3D, Sowizral y Nadeau, http://www.sdsc.edu/~nadeau, mayo 2005
33 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
35 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
36 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. • -
37 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.
40 Juegos • Juego “Caballeros del Zodiaco”, curso de Ambientes Gráficos 2003 - 2
41 Código • Líneas de Código – Caballeros del Zodiaco Game.cpp = 2036 Cd_audio.cpp = 57 Control.cpp = 111 Engine.cpp = 707 Sound.cpp 269 • Total = 3123 • -
42 Juegos • Juego “de guorst geim eber sin”, curso de Ambientes Gráficos 2004 - 2 • -
43 Juegos • Juego “Half Mike”, curso de Ambientes Gráficos 2004 - 2 • -
44 ITM • Tesis de Ingeniería “Mensajería Instantánea descentralizada para dispositivos Móviles”, Karina Morán Ramírez • -
46 Visión • Ejemplo: Algoritmos para detección de bordes (Sobel) • -
47 Sistemas de Seguridad • Software para detección de Movimiento. • -
48 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 • -
49 ITM • 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 • 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. • -
50 ITM • -