sábado, 16 de agosto de 2008

Vehiculos con ODE

Muy buenas otra vez, estos dias hemos estado bastante enmarronados comprendiendo la forma de trabajar que tiene ODE. Hace unos dias nos cogimos un par de ejemplos de ODE, entre ellos el demo_buggy (un pequeño cochecito de 3 ruedas que salta una rampa) para, a partir de él, llegar a construir la parte fisica de los vehiculos.

From Menus con Irr...




Podríamos utilizar el modelo 3D de cualquier coche y utilizarlo como malla de colisiones pero ODE desaconseja su uso debido a las perdidas de rendimiento (enorme), precisión y sobretodo estabilidad. Además, piénsalo detenidamente, cualquier modelo 3D de un vehiculo, personaje, etc. tiene cientos o miles de poligonos. Sin embargo, una caja como carroceria solo son 12 triangulicos.

Inicialmente pensamos en construir los vehiculos como una simple caja con 4 ruedas conectadas, pero empezamos a pensar en los camiones (mas ruedas), monovolumenes, tractores, autobuses, y, decidimos usar mas de una caja a fin de poder ajustar la forma fisica a la del modelo visual, pero aumentando minimamente la complejidad del modelo fisico.

El ejemplo de ODE, demo_buggy tiene tres ruedas, así que, evidentemente, lo primero que hicimos fue colocarle una cuarta y posicionarlas como es debido.

Lo siguiente que vimos fue que, el modelo fisico de las ruedas eran esferas, para mejorar el rendimiento. El problema que presentaba esto era que al pasar junto a un obstaculo, las esferas tropiezan con éste, con lo que las cambiamos por cilindros.

Despues fue el turno de las cajas. Para ello construimos un objeto compuesto por varias cajas. Esta parte nos llevó un poco más de tiempo puesto que el código de ejemplo de demo_boxstack de ODE es un poco críptico.

Ya solo restaba sustituir valores fijos por defines, matrices de medidas para las cajas, radios y anchura de las ruedas, etc. Tambien hemos dispuesto variables para cambiar facilmente el numero de ejes asi como de cajas.

Nuestra intención es implementar un editor de vehiculos para, de manera sencilla, poder añadir nuevos vehiculos, esto es, ajustando un modelo fisico a una caroceria. De momento nos entretuvimos en montar tres vehiculos de prueba.

El primero de ellos es un simple turismo a lo manovolumen.
From Menus con Irr...


El siguiente es la flagoneta de los malacatones.
From Menus con Irr...


Y por último, pero no por ello menos importante, como dijo Shia LaBeouf en Transformers: Señores, les presento a mi amigo: Optimus Prime.
From Menus con Irr...


Puedes bajarte los ejecutables aquí y probarlos tú mismo. las teclas de direccion del vehiculo son la cruz formada por las teclas WASD, salvo en el buggy original que sí que son las que indica la ventana del shell.

Ah! se me olvidaba. No os preocupeis por la falta de codigo, en breve lo postearemos ;). Es solo que estos ejemplos son puro codigo ODE y prefiero mostrarlo cuando lo tengamos integrado en el proyecto con Irrlicht.

1 comentario:

hoss dijo...

me equivoque con el link al paquete de los coches. ya está corregido ^_^

¡ah! y para los que se hayan bajado el paquete y no les funcionara, también he añadio la carpeta de texturas, un .bat para cada ejecutable y he resubido el paquete.