35
Juegos ¿Qu ´ e hay detr´ as de la pantalla? Marcelo Arroyo Dpto. de Computaci´ on - FCEFQyN - Universidad Nacional de R´ ıo Cuarto Mayo de 2011 Marcelo Arroyo Juegos 1/21

Juegos: ¿Qué hay detrás de la pantalla?

Embed Size (px)

DESCRIPTION

Slides de la charla presentada

Citation preview

Page 1: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 2: Juegos: ¿Qué hay detrás de la pantalla?

Juegos

SuperTuxKart

Marcelo Arroyo Juegos 2/21

Page 3: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 4: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 5: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 6: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 7: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 8: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 9: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 10: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 11: Juegos: ¿Qué hay detrás de la pantalla?

Juegos: ColisionesDetectar choques entre objetos

Reaccion ante choques

Marcelo Arroyo Juegos 10/21

Page 12: Juegos: ¿Qué hay detrás de la pantalla?

Juegos: ColisionesDetectar choques entre objetos

Reaccion ante choques

Marcelo Arroyo Juegos 10/21

Page 13: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 14: Juegos: ¿Qué hay detrás de la pantalla?

Juegos: Ejemplo en 2D

Uso de Axis Aligned Bouding Boxes

Marcelo Arroyo Juegos 12/21

Page 15: Juegos: ¿Qué hay detrás de la pantalla?

Juegos: Colisiones (ej. de falla)

Falla en deteccion de colision

Marcelo Arroyo Juegos 13/21

Page 16: Juegos: ¿Qué hay detrás de la pantalla?

Juegos: Colisiones (ej. de falla)

Falla en respuesta a colision

Marcelo Arroyo Juegos 14/21

Page 17: Juegos: ¿Qué hay detrás de la pantalla?

Juegos: Cuerpos articulados

Articulaciones (joints)

Marcelo Arroyo Juegos 15/21

Page 18: Juegos: ¿Qué hay detrás de la pantalla?

Juegos: Graficos

Visualizacion• Personajes animados• Terrenos complejos (llanos, montanas, agua, . . . )• Posicionado dinamico de camaras• Iluminacion dinamica

Modelado

⇒ ⇒

Marcelo Arroyo Juegos 16/21

Page 19: Juegos: ¿Qué hay detrás de la pantalla?

Juegos: Graficos

Visualizacion• Personajes animados• Terrenos complejos (llanos, montanas, agua, . . . )• Posicionado dinamico de camaras• Iluminacion dinamica

Modelado

⇒ ⇒

Marcelo Arroyo Juegos 16/21

Page 20: Juegos: ¿Qué hay detrás de la pantalla?

Juegos: Graficos

Visualizacion• Personajes animados• Terrenos complejos (llanos, montanas, agua, . . . )• Posicionado dinamico de camaras• Iluminacion dinamica

Modelado

Marcelo Arroyo Juegos 16/21

Page 21: Juegos: ¿Qué hay detrás de la pantalla?

Juegos: Graficos

Visualizacion• Personajes animados• Terrenos complejos (llanos, montanas, agua, . . . )• Posicionado dinamico de camaras• Iluminacion dinamica

Modelado

⇒ ⇒

Marcelo Arroyo Juegos 16/21

Page 22: Juegos: ¿Qué hay detrás de la pantalla?

Juegos: Modelado (cont.)

Modelado con poliedros

⇒ ⇒

Marcelo Arroyo Juegos 17/21

Page 23: Juegos: ¿Qué hay detrás de la pantalla?

Juegos: Modelado (cont.)

Modelado con poliedros

Marcelo Arroyo Juegos 17/21

Page 24: Juegos: ¿Qué hay detrás de la pantalla?

Juegos: Modelado (cont.)

Modelado con poliedros

⇒ ⇒

Marcelo Arroyo Juegos 17/21

Page 25: Juegos: ¿Qué hay detrás de la pantalla?

Juegos: Modelado (cont.)

Modelado con poliedros

⇒ ⇒

Marcelo Arroyo Juegos 17/21

Page 26: Juegos: ¿Qué hay detrás de la pantalla?

Juegos: Modelado (cont.)

Modelado con poliedros

⇒ ⇒

Marcelo Arroyo Juegos 17/21

Page 27: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 28: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 29: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 30: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 31: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 32: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 33: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 34: Juegos: ¿Qué hay detrás de la pantalla?

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

Page 35: Juegos: ¿Qué hay detrás de la pantalla?

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