Engine de renderizado 3d y simulacion de fisica
Descargar codigo fuente actual
Este proyecto esta en fase de desarrollo. Poco a poco ire actualizando esta pagina con novedades en la
implementacion del motor. Cuando tenga una version estable y util subire el fuente completo del motor.
27 de Julio de 2007:
Anadidas varias mejoras al renderizado. Ahora se usan las funciones para dar a opengl los vertices, normales,
materiales,etc... como arrays (glNormalPointer,glVertexPointer,...) lo que mejora considerablemente el
rendimiento. Modificado y mejorado el uso de luces. Otras mejoras en el renderizado. Aplicacion de transparencias
en los materiales que las lleven.
Creada aplicacion loader de ficheros .3ds que subire cuando este completamente funcional.
19 de Junio de 2007:
Renderizado de modelos 3d a partir de ficheros .3ds. Carga todas las caracteristicas de forma y color del
objeto, calcula las normales de los vertices usando la informacion de smoothing groups del .3ds para aplicar
las luces (direccionales o puntuales), carga todos los materiales y los aplica correctamente a las caras a
las que corresponde dicho material. Aun no esta implementada la carga y aplicacion de texturas, ni sombras
ni reflejos (es lo proximo con lo que quiero ponerme).
En cuanto a la parte de fisica el motor es capaz de detectar colisiones entre objectos. Para ello crea
una "rejilla" de boxes que subdividen el objeto, siendo la mayor de ellas la bounding box del objeto.
Se genera un arbol de todas estas boxes (AABB) y sus subdivisiones, de manera que a la hora de detectar
colisiones realizamos un checkeo de ambos arboles (los de los objetos que participan en la deteccion de
la colision) para ver que "boxes hoja" (las que en el arbol no tienen ninguna ramificacion) colisionan
con las "boxes hoja" del otro objeto. Finalmente, teniendo estas colisiones de boxes, pasamos a checkear
colisiones entre todos los triangulos del primero objeto que pasan por esa "box hoja" y todos los del
segundo objeto que pasan por la "box hoja" del segundo objeto que colisionaba con la del primero.
De momento nada de fuerzas ni reacciones entre objetos.