Exportador de escenas desde Blender y cargador de escenas en OPENGL. Integración con ELASTICFEM
Abstract
La motivación del presente Proyecto de Fin de Carrera es disponer de un proceso que permita, de forma sencilla, crear escenas tridimensionales complejas para un simulador basado en leyes físicas. El Grupo de Modelado y Realidad Virtual de la Universidad Rey Juan Carlos dispone de un motor de físicas, llamado ElasticFEM, que permite simular leyes físicas en escenas tridimensionales mediante ordenador. El problema está en cómo crear las escenas tridimensionales que se simularán con dicho motor. Lo ideal sería disponer de una interfaz gráfica para crear las escenas, por lo que hay dos posibles alternativas: desarrollar un programa que tenga dicha interfaz gráfica ó utilizar un programa ya existente que lo haga. En este proyecto se eligió la segunda opción, de forma que se utiliza el programa Blender para la creación de las escenas tridimensionales. Así, este Proyecto de Fin de Carrera consiste en la realización, por una parte, de un script que exporte escenas tridimensionales realizadas cómodamente con el programa externo Blender y, por otra parte, de un programa que cargue dichas escenas en OpenGL y las renderice en pantalla (este programa permite comprobar fácilmente que las escenas han sido exportadas correctamente). Y, finalmente, la carga de dichas escenas se integra con ElasticFEM para poder simular físicas. Esta memoria está estructurada en varios apartados. El primero de ellos es una breve introducción a la situación actual de los gráficos por ordenador, junto a los objetivos de este proyecto. A continuación, en el segundo apartado se presentan una serie de conceptos básicos relacionados con la realidad virtual y los gráficos por ordenador. En el tercer apartado, se describen las herramientas y lenguajes informáticos utilizados durante el desarrollo del proyecto, incluyendo las especificaciones de todos los formatos de los ficheros de texto empleados. El cuarto apartado está dedicado al script exportador, en él se detallan todas las decisiones tomadas en su desarrollo (requisitos, análisis, diseño, implementación y pruebas) y cómo éstas influyen en los ficheros de texto generados. En el quinto apartado se presenta el programa cargador, describiendo cómo se organiza el código fuente desarrollado desde el punto de vista de directorios y ficheros. También se incluyen los diagramas UML de las clases principales del programa, así como de las máquinas de estados finitos usadas para parsear los ficheros de texto cargados. Al igual que en el apartado anterior, se detallan todas las decisiones tomadas en el desarrollo del programa. En el sexto apartado se explica cómo se realizó la integración del programa cargador en el motor de físicas ElasticFEM. El séptimo apartado es una recopilación de ejemplos que muestran los resultados conseguidos con este proyecto, presentándose varias escenas 3D de diferentes características que se han elaborado con el programa Blender y que han sido exportadas y cargadas con el software desarrollado. Se incluyen tanto renders obtenidos directamente con el programa Blender como los capturados del programa cargador desarrollado para que se puedan comparar los resultados finales. También se detallan los diferentes tiempos de exportación y carga de las escenas 3D junto a las características de las mismas, que sirven para cuantificar su complejidad. El octavo apartado presenta las conclusiones del proyecto y el noveno apartado los posibles trabajos futuros para ampliarlo. El décimo apartado es una lista de siglas y acrónimos usados a lo largo de todo el documento, y el último apartado es una lista de las referencias más importantes usadas durante la elaboración de todo el proyecto.
Description
Proyecto Fin de Carrera leído en la Universidad Rey Juan Carlos en el curso académico 2009/2010. Tutores del Proyecto: Jorge Gascón Pérez y Miguel Ángel Otaduy
Collections
- Proyectos Fin de Carrera [439]