desarrollo de juegos de video en 3d parte 2: usted está entrando en: la tercera dimensión fabián...
TRANSCRIPT
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
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
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…..
???
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
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
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
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
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 )
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…..
Sistemas de CoordenadasSistemas de Coordenadas
CoordenadasCoordenadasLocalesLocales
CoordenadasCoordenadasObjetoObjeto
CoordenadasCoordenadasGlobalesGlobales
CoordenadasCoordenadasCámaraCámara
CoordenadasCoordenadasProyecciónProyección
CoordenadasCoordenadasPantallaPantalla
Sistema de Coordenadas LocalesSistema de Coordenadas Locales
Sistema básico para representar las Sistema básico para representar las partes del objetopartes del objeto
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.
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.
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
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
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.
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 )
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
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
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
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.
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.
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
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
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.
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
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
Rasterización Rasterización
Manejo de profundidad ( Depth Test )Manejo de profundidad ( Depth Test ) Efectos post imagenEfectos post imagen
• AntialiasingAntialiasing
• Anisotropic filteringAnisotropic filtering
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
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
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()
DemostraciónDemostración
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