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: [email protected]
[email protected]