desarrollo de juegos de video en 3d parte 2: usted está entrando en: la tercera dimensión fabián...

33
Desarrollo de Desarrollo de Juegos de Video en Juegos de Video en 3D 3D Parte 2: Parte 2: Usted está entrando en: Usted está entrando en: La tercera dimensión” La tercera dimensión” Fabián Coello C. Febrero 2006

Upload: ines-quintana

Post on 03-Jan-2015

10 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Desarrollo de Juegos de Desarrollo de Juegos de Video en 3DVideo en 3D

Parte 2: Parte 2:

Usted está entrando en: Usted está entrando en:

““La tercera dimensión”La tercera dimensión”Fabián Coello C.Febrero 2006

Page 2: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

TemarioTemario

Representando al mundo en tres Representando al mundo en tres dimensionesdimensiones

RenderizadoRenderizado 3D PipeLine3D PipeLine DirectX y 3DDirectX y 3D Iniciando DirectX para hacer 3DIniciando DirectX para hacer 3D

Page 3: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Representando al mundo en tres Representando al mundo en tres dimensionesdimensiones

Sistemas de Coordenadas (Eje de Sistemas de Coordenadas (Eje de referencia )referencia )

Abstracción matemática ( Vectores )Abstracción matemática ( Vectores ) Transformaciones ( Matrices )Transformaciones ( Matrices )

(0,0,2)X + 2 = 1…..

???

Page 4: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Sistemas de ReferenciaSistemas de Referencia

Forma para describir la posición y Forma para describir la posición y orientación de objetos en cualquier orientación de objetos en cualquier dimensión ( Rdimensión ( Rnn R = Espacio) R = Espacio)

Eje de coordenadas (relatividad)Eje de coordenadas (relatividad) Sistema Cartesiano (Espacio en dos Sistema Cartesiano (Espacio en dos

dimensiones Rdimensiones R22))

xx

yy

RR22

xx

yy

RR33

zz

Page 5: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Sistemas de ReferenciaSistemas de Referencia Sistema de Coordenadas de mano Sistema de Coordenadas de mano

Izquierda *Izquierda *

Sistema de Coordenadas de mano Sistema de Coordenadas de mano DerechaDerecha

+y+y

+x+x-z-z

+y+y

+x+x+z+z

Page 6: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

VectoresVectores

Elemento de un espacioElemento de un espacio Usados para representar posición, Usados para representar posición,

cantidad ( magnitud ), orientación cantidad ( magnitud ), orientación ( dirección ) ( dirección )

Representado como (x,y) en RRepresentado como (x,y) en R22 (x,y,z) en R(x,y,z) en R33, (x,y,z,w,…..) en R, (x,y,z,w,…..) en Rnn

posiciónposición direccióndirección magnitudmagnitud

Page 7: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Operaciones de VectoresOperaciones de Vectores Suma, RestaSuma, Resta

Multiplicación por Multiplicación por escalarescalar

Producto Punto Producto Punto

Producto Cruz Producto Cruz

Longitud (Magnitud)Longitud (Magnitud)

),(),(),( 21212211 yyxxyxyx ),(),(),( 21212211 yyxxyxyx

),(),( 1111 ayaxyxa

cosBABA

sinBANBA

22aa yxA

Page 8: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

MatricesMatrices

Arreglo de números que representa una Arreglo de números que representa una transformación linealtransformación lineal

Pueden representar transformaciones Pueden representar transformaciones (desplazamiento, escalamiento, rotación, (desplazamiento, escalamiento, rotación, etc ) de vectores de una manera compacta etc ) de vectores de una manera compacta y eficientey eficiente

Una matriz puede representar un conjunto Una matriz puede representar un conjunto de transformaciones ( concatenación de de transformaciones ( concatenación de transformaciones )transformaciones )

Page 9: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

RenderizadoRenderizado

Tomar la representación del mundo y Tomar la representación del mundo y desplegarlo en la pantalladesplegarlo en la pantalla• Transformaciones geométricasTransformaciones geométricas• Rasterización (convertir una imagen Rasterización (convertir una imagen

vectorial bidimensional en un bitmap o vectorial bidimensional en un bitmap o raster ) raster )

(0,0,2)X + 2 = 1…..

Page 10: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Sistemas de CoordenadasSistemas de Coordenadas

CoordenadasCoordenadasLocalesLocales

CoordenadasCoordenadasObjetoObjeto

CoordenadasCoordenadasGlobalesGlobales

CoordenadasCoordenadasCámaraCámara

CoordenadasCoordenadasProyecciónProyección

CoordenadasCoordenadasPantallaPantalla

Page 11: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Sistema de Coordenadas LocalesSistema de Coordenadas Locales

Sistema básico para representar las Sistema básico para representar las partes del objetopartes del objeto

Page 12: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Sistema de Coordenadas de Sistema de Coordenadas de ObjetoObjeto

Sistema definido con respecto al Sistema definido con respecto al origen del objeto.origen del objeto.

Page 13: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Sistema de Coordenadas GlobalesSistema de Coordenadas Globales

Define el espacio donde todos los Define el espacio donde todos los objetos son colocados, escalados y objetos son colocados, escalados y orientados.orientados.

Page 14: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Sistema de Coordenadas de Sistema de Coordenadas de CámaraCámara

Define la posición de la cámara o visión.Define la posición de la cámara o visión. Permite redefinir geométricamente los Permite redefinir geométricamente los

objetos con respecto al eje de la cámara objetos con respecto al eje de la cámara

Page 15: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Sistema de Coordenadas de Sistema de Coordenadas de PerspectivaPerspectiva

Espacio que lo que finalmente se va Espacio que lo que finalmente se va a ver en la pantalla a ver en la pantalla

Permite proyectar los objetos 3D a Permite proyectar los objetos 3D a 2D2D

Page 16: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Sistema de Coordenadas de Sistema de Coordenadas de PantallaPantalla

Define el área rectangular donde la Define el área rectangular donde la imagen es desplegada.imagen es desplegada.

Es definido con respecto a la pantalla Es definido con respecto a la pantalla y su representación.y su representación.

Page 17: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

3D Pipeline3D Pipeline

Línea de ensamblaje que permite Línea de ensamblaje que permite “armar imágenes” de partes “armar imágenes” de partes (modelos)(modelos)

Permite paralelismo y especialización Permite paralelismo y especialización de las tareas.de las tareas.

AplicaciónAplicación GeometríaGeometría RasterizaciónRasterización

Tarjeta Gráfica ( GPU )Tarjeta Gráfica ( GPU )

Page 18: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Fase de AplicaciónFase de Aplicación Lugar donde se genera la lógica y los Lugar donde se genera la lógica y los

modelos a ser desplegadosmodelos a ser desplegados Es donde se implementa el motor del Es donde se implementa el motor del

juego o aplicación.juego o aplicación. Es donde se realizan operaciones tales Es donde se realizan operaciones tales

como:como:• Lógica de Juego Lógica de Juego • Inteligencia ArtificialInteligencia Artificial• AnimaciónAnimación• Manejo EspacialManejo Espacial• Detección de ColisionesDetección de Colisiones• Física de JuegoFísica de Juego

Page 19: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Trasformaciones GeométricasTrasformaciones Geométricas

Trasformación Trasformación GlobalGlobal

Trasformación Trasformación CámaraCámara

IluminaciónIluminación

TransformaciónTransformaciónPerspectivaPerspectiva

TruncamientoTruncamientoDivisión deDivisión dePerspectivaPerspectiva

TransformaciónTransformaciónPantallaPantalla

Page 20: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Transformación GlobalTransformación Global

Posicionar objetos y orientarlos hacia Posicionar objetos y orientarlos hacia las coordenadas globaleslas coordenadas globales

Rotar, Escalar, Posicionar objetosRotar, Escalar, Posicionar objetos

Page 21: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Transformación CámaraTransformación Cámara

Definir la posición y orientación de la Definir la posición y orientación de la CámaraCámara

Definir las posiciones de las luces, Definir las posiciones de las luces, orientación y sus propiedadesorientación y sus propiedades

Definir un sistema de Coordenadas Definir un sistema de Coordenadas de cámarade cámara

Transformar la escena del sistema de Transformar la escena del sistema de coordenadas de mundo al sistema de coordenadas de mundo al sistema de coordenadas de cámara.coordenadas de cámara.

Page 22: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

IluminaciónIluminación

Computar los colores de cada vértice Computar los colores de cada vértice Aplicar un modelo de iluminación Aplicar un modelo de iluminación

basada en parámetrosbasada en parámetros Vertex Shaders.Vertex Shaders.

Page 23: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Transformación de PerspectivaTransformación de Perspectiva

Crear el Frustum de visión ( Pirámide Crear el Frustum de visión ( Pirámide de visión )de visión )

Deformar los objetos para que Deformar los objetos para que quepan en un paralelogramo de quepan en un paralelogramo de visión visión

Page 24: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

TruncamientoTruncamiento

Eliminar los objetos y partes del Eliminar los objetos y partes del objeto que no son visibles en el objeto que no son visibles en el rectángulo de visiónrectángulo de visión

Page 25: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

División de PerspectivaDivisión de Perspectiva

Proyectar los objetos 3D en un plano Proyectar los objetos 3D en un plano rectangular 2Drectangular 2D

Realizar la Corrección de perspectivaRealizar la Corrección de perspectiva Convierte las coordenadas hacia un Convierte las coordenadas hacia un

sistema de pantalla independiente sistema de pantalla independiente de la resolución del monitor. de la resolución del monitor.

Page 26: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Transformación de PantallaTransformación de Pantalla

Define la porción de pantalla a donde Define la porción de pantalla a donde serán mapeadas las coordenadas de serán mapeadas las coordenadas de pantallapantalla

Reinterpreta la coordinadas de Reinterpreta la coordinadas de pantalla virtual al tamaño verdadero pantalla virtual al tamaño verdadero y real en la pantalla a desplegary real en la pantalla a desplegar

Page 27: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Rasterización Rasterización

Convierte la representación vectorial Convierte la representación vectorial 2D en pixeles a ser puestos en la 2D en pixeles a ser puestos en la pantalla.pantalla.

Elimina las partes posteriores de los Elimina las partes posteriores de los objetos.objetos.

Calcula los colores reales a ser Calcula los colores reales a ser desplegados ( mapeo de texturas )desplegados ( mapeo de texturas )

Pixel ShadersPixel Shaders

Page 28: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Rasterización Rasterización

Manejo de profundidad ( Depth Test )Manejo de profundidad ( Depth Test ) Efectos post imagenEfectos post imagen

• AntialiasingAntialiasing

• Anisotropic filteringAnisotropic filtering

Page 29: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

DirectX DirectX

API para diseño de aplicaciones que API para diseño de aplicaciones que utilizan gráficos y multimediautilizan gráficos y multimedia

Provee una abstracción del hardware Provee una abstracción del hardware que implementa la solución.que implementa la solución.

Permite la aceleración por hardware Permite la aceleración por hardware del renderizado de objetos (Direct3D)del renderizado de objetos (Direct3D)

Basado en COMBasado en COM

Page 30: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Direct3D y C#Direct3D y C#

Librería tipo Manage CodeLibrería tipo Manage Code Utilidades para crear objetos, UI, Utilidades para crear objetos, UI,

transformaciones.transformaciones. Fácil de utilizarFácil de utilizar No requiere manejo de memoriaNo requiere manejo de memoria

Page 31: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

Iniciando DirectX para hacer 3DIniciando DirectX para hacer 3D

Incluir Incluir • Microsoft.DirectX.dllMicrosoft.DirectX.dll• Microsoft.DirectX.Direct3DMicrosoft.DirectX.Direct3D

Crear el DispositivoCrear el Dispositivo Todo dibujo se realiza entreTodo dibujo se realiza entre

• BeginScene()BeginScene()• EndScene()EndScene()

Page 32: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

DemostraciónDemostración

Page 33: Desarrollo de Juegos de Video en 3D Parte 2: Usted está entrando en: La tercera dimensión Fabián Coello C. Febrero 2006

RecursosRecursos

www.microsoft.com/directxwww.microsoft.com/directx msdn.microsoft.com/directxmsdn.microsoft.com/directx www.extremetech.com/www.extremetech.com/

article2/0,1697,9722,00.asparticle2/0,1697,9722,00.asp