Juegos¿Que hay detras de la pantalla?
Marcelo Arroyo
Dpto. de Computacion - FCEFQyN - Universidad Nacional de Rıo Cuarto
Mayo de 2011
Marcelo Arroyo Juegos 1/21
Juegos
SuperTuxKart
Marcelo Arroyo Juegos 2/21
Juegos: Caracterısticas
¿Que tipo de programas son?• Son programas de Simulacion• Con restricciones de tiempo real
Requerimientos actuales• > 30 frames por segundo, sonido, . . .• 3 Dimensiones (3D)• Escenarios con
• Multiples vistas (camaras)• Iluminacion, perspectiva, . . .• Materiales y texturas avanzadas
• Realidad virtual (modelo fısico preciso)• Cuerpos solidos y blandos (deformables)
Marcelo Arroyo Juegos 3/21
Juegos: Caracterısticas
¿Que tipo de programas son?• Son programas de Simulacion• Con restricciones de tiempo real
Requerimientos actuales• > 30 frames por segundo, sonido, . . .• 3 Dimensiones (3D)• Escenarios con
• Multiples vistas (camaras)• Iluminacion, perspectiva, . . .• Materiales y texturas avanzadas
• Realidad virtual (modelo fısico preciso)• Cuerpos solidos y blandos (deformables)
Marcelo Arroyo Juegos 3/21
Juegos: Fısica
Partıculas1 Posicion:
x
y
zp =
xyz
2 Velocidad:
v = lım∆t→0
∆p
∆t=dp
dt= p′
3 Aceleracion:
a = lım∆t→0
∆v
∆t=dv
dt= v′ = p′′
Marcelo Arroyo Juegos 4/21
Juegos: Fısica
IntegracionDada una aceleracion, necesitamos calcular su velocidad yposicion
v =
∫ T
t=0a dt
p =
∫ T
t=0v dt
p =
∫ T
t=0
∫ T
t=0a dt
Con aceleracion constante:
v(t) = v(0) + at p(t) = p(0) + p(0)t+ a1
2t2
Marcelo Arroyo Juegos 5/21
Juegos: Fısica
Leyes de Newton1 Un objeto se mueve a velocidad constante excepto que se
aplique una fuerza sobre el.Friccion (drag) = coeficiente o damping (≈ 1)
2 Una fuerza aplicada a un objeto produce una aceleracionproporcional a su masa
f = ma a =f
m
3 La fuerza de gravedad (g ≈ 10m/s2):
f = mg a = g gravedad =
0-g0
Marcelo Arroyo Juegos 6/21
Juegos: Cuerpos rıgidos
Fısica de cuerpos rıgidos• Centro de masa (o gravedad): 1
m
∑ni=0mipi
• Rotacion (eje,angulo): Matrices de rotacion (3x3) ocuaterniones
Marcelo Arroyo Juegos 7/21
Juegos: Cuerpos rıgidos (cont.)Fısica de cuerpos rıgidos (cont.)• Velocidad angular: velocidad y direccion de la rotacion• Cuaterniones: Orientacion de un cuerpo
cosπ2x sin π
2y sin π
2z sin π
2
• Velocidad y posicion de un cuerpo: Dependen de la
velocidad lineal y angular• Computar v y p requiere:
1 Multiplicacion de matrices (3x3 y 3x4)2 Inversas y transpuestas3 Transformaciones: Cuaternion⇐⇒ matriz (3x3)
Marcelo Arroyo Juegos 8/21
Juegos: Cuerpos rıgidos (cont.)
Fısica de cuerpos rıgidos (cont.)• Aplicacion de fuerzas: Newton 2 con rotacion
1 Aceleracion: a = m−1f2 Rotacion: Θ′′ = I−1τ3 Torque: fuerza aplicada en un punto relativo al origen
τ = pf × f
4 Momento de inercia: Dificultad para rotar
Ia =
n∑i=0
mi × d2pi→a
Marcelo Arroyo Juegos 9/21
Juegos: ColisionesDetectar choques entre objetos
Reaccion ante choques
Marcelo Arroyo Juegos 10/21
Juegos: ColisionesDetectar choques entre objetos
Reaccion ante choques
Marcelo Arroyo Juegos 10/21
Juegos: Deteccion de colisionesDificultad de implementacion en tiempo real
• Volumenes delimitados (cajas,esferas, cilindros, . . . )
• Particionado del conjunto deobjetos para evitarcomparaciones todos con todos(O(n2))
• Grillas• Particionado binario del
espacio• Quad-trees, Oct-trees
• Detectores: Dos etapas1 Seleccion de candidatos2 Deteccion de proximidad y
generacion de contactos
Marcelo Arroyo Juegos 11/21
Juegos: Ejemplo en 2D
Uso de Axis Aligned Bouding Boxes
Marcelo Arroyo Juegos 12/21
Juegos: Colisiones (ej. de falla)
Falla en deteccion de colision
Marcelo Arroyo Juegos 13/21
Juegos: Colisiones (ej. de falla)
Falla en respuesta a colision
Marcelo Arroyo Juegos 14/21
Juegos: Cuerpos articulados
Articulaciones (joints)
Marcelo Arroyo Juegos 15/21
Juegos: Graficos
Visualizacion• Personajes animados• Terrenos complejos (llanos, montanas, agua, . . . )• Posicionado dinamico de camaras• Iluminacion dinamica
Modelado
⇒ ⇒
Marcelo Arroyo Juegos 16/21
Juegos: Graficos
Visualizacion• Personajes animados• Terrenos complejos (llanos, montanas, agua, . . . )• Posicionado dinamico de camaras• Iluminacion dinamica
Modelado
⇒ ⇒
Marcelo Arroyo Juegos 16/21
Juegos: Graficos
Visualizacion• Personajes animados• Terrenos complejos (llanos, montanas, agua, . . . )• Posicionado dinamico de camaras• Iluminacion dinamica
Modelado
⇒
⇒
Marcelo Arroyo Juegos 16/21
Juegos: Graficos
Visualizacion• Personajes animados• Terrenos complejos (llanos, montanas, agua, . . . )• Posicionado dinamico de camaras• Iluminacion dinamica
Modelado
⇒ ⇒
Marcelo Arroyo Juegos 16/21
Juegos: Modelado (cont.)
Modelado con poliedros
⇒ ⇒
⇒
Marcelo Arroyo Juegos 17/21
Juegos: Modelado (cont.)
Modelado con poliedros
⇒
⇒
⇒
Marcelo Arroyo Juegos 17/21
Juegos: Modelado (cont.)
Modelado con poliedros
⇒ ⇒
⇒
Marcelo Arroyo Juegos 17/21
Juegos: Modelado (cont.)
Modelado con poliedros
⇒ ⇒
⇒
Marcelo Arroyo Juegos 17/21
Juegos: Modelado (cont.)
Modelado con poliedros
⇒ ⇒
⇒
Marcelo Arroyo Juegos 17/21
Juegos: Rendering (cont.)
Visualizacion de una escena1 Texturado2 Proyeccion: Vista de camara, rotaciones, zoom, . . .3 Iluminacion: color, refraccion, sombras, . . .4 Niebla
Marcelo Arroyo Juegos 18/21
Juegos: Arquitectura
Componentes1 Generadores de fuerzas (y torques)2 Simulador de cuerpos rıgidos (motor de fısica)3 Detector y manejador de colisiones4 Renderer de graficos (y sonido)
Estructuras de datos1 Geometrıa de rendering y materiales (texturas, . . . )2 Geometrıas de colisiones3 Cuerpos rıgidos (sus propiedades)
Marcelo Arroyo Juegos 19/21
Juegos: Herramientas
Bibliotecas de fısica (motores)• Open Dynamics Engine (ODE)• Bullet
Bibliotecas para graficos (rendering)• OpenGL (multiplataforma)• SLD (graficos, sonidos, joystick, . . . )• DirectX (MS-Windows)
Aplicaciones de modelado• Blender (modelado + animacion + motor de juegos)• Maya
Marcelo Arroyo Juegos 20/21
Juegos: Herramientas
Bibliotecas de fısica (motores)• Open Dynamics Engine (ODE)• Bullet
Bibliotecas para graficos (rendering)• OpenGL (multiplataforma)• SLD (graficos, sonidos, joystick, . . . )• DirectX (MS-Windows)
Aplicaciones de modelado• Blender (modelado + animacion + motor de juegos)• Maya
Marcelo Arroyo Juegos 20/21
Juegos: Herramientas
Bibliotecas de fısica (motores)• Open Dynamics Engine (ODE)• Bullet
Bibliotecas para graficos (rendering)• OpenGL (multiplataforma)• SLD (graficos, sonidos, joystick, . . . )• DirectX (MS-Windows)
Aplicaciones de modelado• Blender (modelado + animacion + motor de juegos)• Maya
Marcelo Arroyo Juegos 20/21
Juegos: Herramientas
Bibliotecas de fısica (motores)• Open Dynamics Engine (ODE)• Bullet
Bibliotecas para graficos (rendering)• OpenGL (multiplataforma)• SLD (graficos, sonidos, joystick, . . . )• DirectX (MS-Windows)
Aplicaciones de modelado• Blender (modelado + animacion + motor de juegos)• Maya
Marcelo Arroyo Juegos 20/21
Juegos: Conclusiones
Escenario muy interesante• Fısica• Geometrıa y algebra lineal• Computacion grafica• Modelado• Estructuras de datos y algoritmos• Paralelismo
Algo de bibliografıa• Game Physics Engine Development. Ian Millington• OpenGL Programming Guide (the red book)• Blender tutoriales (videos)
Marcelo Arroyo Juegos 21/21
Juegos: Conclusiones
¿Que falta?• Cuerpos blandos o deformables
• Pelo• Ropa
• Dinamica de fluidos• Lıquidos• Gases
• Explosiones• Balıstica• . . .
Muchas gracias¿Preguntas?
Marcelo Arroyo Juegos 22/21
Juegos: Conclusiones
¿Que falta?• Cuerpos blandos o deformables
• Pelo• Ropa
• Dinamica de fluidos• Lıquidos• Gases
• Explosiones• Balıstica• . . .
Muchas gracias¿Preguntas?
Marcelo Arroyo Juegos 22/21