Abstract
La realidad virtual es una herramienta poderosa que nos permite visualizar, recorrer y
simular aspectos de nuestro entorno de forma interactiva. Un sistema mínimo, capaz
de simular ambientes virtuales en tiempo real debe proveer las siguientes
funcionalidades:
Cargar y manipular modelos tridimensionales en el espacio.
Permitir el recorrido de ambientes virtuales complejos en tiempo real.
Simular el comportamiento de los objetos basándose en las leyes físicas del entorno.
Buscando alcanzar tales funcionalidades, este trabajo presenta un conjunto de técnicas
y algoritmos, implementados en una biblioteca de clases, mediante la cual
programadores e ingenieros puedan construir aplicaciones para realidad virtual de
forma rápida y fácil.
Para aprovechar la aceleración de video ofrecida por el hardware actual, el despliegue
de gráficos tridimensionales en la pantalla es realizado a través de la biblioteca de
renderización OpenGL.
La manipulación de modelos tridimensionales en el espacio se alcanza mediante la
implementación de un sistema de transformación espacial basado en el álgebra de
vectores, matrices y cuaternios.
Para manejar ambientes virtuales complejos cuya geometría excede la capacidad de
procesamiento de la máquina, se emplean técnicas para descartar los polígonos
innecesarios de una escena y permitir su recorrido en tiempo real. Las técnicas
implementadas son: descarte del campo de visión y subdivisión espacial mediante
octrees (árboles de ocho hijos). Para el recorrido de terrenos grandes en tiempo real,
se implementó una versión del algoritmo propuesto por [Rot98].
Para establecer las leyes físicas del entorno, se resolvieron dos problemas principales:
la detección de colisiones entre los modelos y la simulación de la dinámica de las
entidades físicas. El primero mediante el uso de volúmenes envolventes más simples y
el segundo mediante la resolución progresiva de las ecuaciones diferenciales de la
dinámica.