Presentación del Proyecto Final de Carrerade Ingeniería Informática realizado por
Gaizka López Carrióy dirigido por
Enric Martí Gòdia y Jordi Arnal Montoya.
Bellaterra, 8 de julio de 2010.
Contenido
Introducción
Desarrollo
Resultados
Conclusiones
Implementación de la física de un vehículo en un videojuego 3D 02 / 21Proyecto Final de Carrera
1
2
3
4
Introducción Desarrollo Resultados Conclusiones
Introducción• Motivación• Objetivos• Marco del proyecto
Desarrollo
Resultados
Conclusiones
Implementación de la física de un vehículo en un videojuego 3D 03 / 21Proyecto Final de Carrera
1
2
3
4
Introducción Desarrollo Resultados Conclusiones
Implementación de la física de un vehículo en un videojuego 3D
04 / 21Proyecto Final de Carrera
Introducción Desarrollo Resultados Conclusiones
Motivación
Afición al mundodel motor
Futuro laboral
Sim racing
Introducción Desarrollo Resultados Conclusiones
Conocer y trabajar con los motores de física que se utilizan actualmente en los videojuegos.
Diseño e implementación de una aplicación que simule la física de un vehículo sobre un terreno 3D:
Framework del curso de videojuegos Colisiones estáticas Control del vehículo
Objetivos
Implementación de la física de un vehículo en un videojuego 3D 05 / 21Proyecto Final de Carrera
Implementación de la física de un vehículo en un videojuego 3D
06 / 21Proyecto Final de Carrera
Introducción Desarrollo Resultados Conclusiones
Marco del proyecto
¿Qué es un motor de física?¿Qué queremos obtener de él?
Introducción
Desarrollo• Elección del motor de física• Diseño e implementación• Creación de contenidos
Resultados
Conclusiones
Implementación de la física de un vehículo en un videojuego 3D 07 / 21Proyecto Final de Carrera
1
2
3
4
Introducción Desarrollo Resultados Conclusiones
Implementación de la física de un vehículo en un videojuego 3D
08 / 21Proyecto Final de Carrera
Introducción Desarrollo Resultados Conclusiones
Elección del motor de física
El grupo de los elegidos PhysX, Havok, Bullet & Oxford Dynamics
Parámetros a evaluar Vehicle kit Documentación Repercusión Situación tecnológica
Implementación de la física de un vehículo en un videojuego 3D
09 / 21Proyecto Final de Carrera
Introducción Desarrollo Resultados Conclusiones Elección del motor de física
PhysX
Havok
Bullet
Oxford Dynamics
Vehicle kit & Documentación
Rep
ercu
sión
& S
ituac
ión
tecn
ológ
ica
Implementación de la física de un vehículo en un videojuego 3D
10 / 21Proyecto Final de Carrera
Introducción Desarrollo Resultados Conclusiones
Diseño e implementación
Quake
Init & Load() - Geometría - Texturas - Sonido - etc.
elapsedTime = lastTime – GetTime()
lastTime = GetTime()
Read Input() - Mouse, Teclado, Pad, etc.
Update(float elapsedTime)
- Actualizar posición:> player, enemigos, items
- Act. game info - Act. cámaras - etc.
Render() - Player - Enemigos - Escenario - Game info - Items - etc.
lastTime = GetTime()
Implementación de la física de un vehículo en un videojuego 3D
11 / 21Proyecto Final de Carrera
Introducción Desarrollo Resultados Conclusiones Diseño e implementación
Quake goes racing!
Init & Load() - Geometría
> mundo gráfico> mundo físico
- Texturas - Sonido - Havok - etc.
elapsedTime = lastTime – GetTime()
lastTime = GetTime()
Read Input() - Mouse, Teclado, Pad, etc.
Update(float elapsedTime)
- Actualizar Havok ( 30 - 60 Hz )
Render() - Player - Escenario - Game info - etc.
lastTime = GetTime()
Implementación de la física de un vehículo en un videojuego 3D
12 / 21Proyecto Final de Carrera
Introducción Desarrollo Resultados Conclusiones
Diagrama de módulos
Diseño e implementación
Physics Manager
Havok
Videojuego
Vehicle Setup
Vehicle API Utils
Vehicle Display
Phantom Shape
Implementación de la física de un vehículo en un videojuego 3D
13 / 21Proyecto Final de Carrera
Introducción Desarrollo Resultados Conclusiones
Mundo gráfico / mundo físico
Creación de contenidos
X file HKXfile
Autodesk3ds Max
rFactor official plugins
Havok Content ToolsPanda DirectX Exporter
rFactorModelos 3D & Texturas
Introducción
Desarrollo
Resultados• Satisfactorios• Fallos conocidos• Demo
Conclusiones
Implementación de la física de un vehículo en un videojuego 3D 14 / 21Proyecto Final de Carrera
1
2
3
4
Introducción Desarrollo Resultados Conclusiones
Satisfactorios
Implementación de la física de un vehículo en un videojuego 3D 15 / 21Proyecto Final de Carrera
Introducción Desarrollo Resultados Conclusiones
Fallos conocidos
Implementación de la física de un vehículo en un videojuego 3D 16 / 21Proyecto Final de Carrera
Introducción Desarrollo Resultados Conclusiones
a) Vista aérea en el juego b) Malla 3D
c) Asfalto d) Hierba e) Grava
Demo
Implementación de la física de un vehículo en un videojuego 3D 17 / 21Proyecto Final de Carrera
Introducción Desarrollo Resultados Conclusiones
Introducción
Desarrollo
Resultados
Conclusiones• Valoración final
Implementación de la física de un vehículo en un videojuego 3D 18 / 21Proyecto Final de Carrera
1
2
3
4
Introducción Desarrollo Resultados Conclusiones
Valoración final
Implementación de la física de un vehículo en un videojuego 3D 19 / 21Proyecto Final de Carrera
Introducción Desarrollo Resultados Conclusiones
Objetivos logrados Simulación física de las colisiones estáticas mediante Havok. Simulación física del vehículo mediante Havok Vehicle Kit. Uso de modelos 3D de rFactor. Framerate medio de 90 fps. La aplicación es jugable y tiene una finalidad. Conocimiento de la tecnología de los motores de física.
Implementación de la física de un vehículo en un videojuego 3D
20 / 21Proyecto Final de Carrera
Introducción Desarrollo Resultados Conclusiones Valoración final
Incidencias Mismo grip en las diferentes áreas del circuito. Corrupción del canal alfa en las texturas rFactor. Memory leaks.
Mejoras Rediseño modular independiente del motor de física. Guardar / cargar el estado del mundo físico. A* vs Oclusión.