Datos del proyecto
Curso:
2007-08
Defensa:
Diciembre de 2008
Autor:
Miguel Ángel Sáez Bustos
Calif.:
9.0 (Sobresaliente)
Descripción de la funcionalidad
El objetivo del proyecto ha sido el análisis y desarrollo de una herramienta CAD que incorpore un subsistema que permita generar imágenes realistas desde una vista elegida por el usuario y usando el modelo creado por el usuario para generar imágenes realistas.
Por tanto, el software desarrollado permite:
- Crear objetos simples como cajas, conos, esferas...
- Crear objetos más complejos como curvas de Bézier, curvas NURBS y superficies NURBS. No obstante las curvas de Bézier y curvas NURBS no tendrán utilidad por ahora ya que están diseñadas para mejoras futuras.
- Añadir luces al modelo de los tipos siguientes: focales, posicionales y direccionales. Estas se utilizan para obtener las imágenes realistas.
- Asignar texturas a los objetos, las cuales se pueden modificar con distintos tipos de filtrado, repetición de texturas y componentes utilizadas para reflejar la luz incidente en el objeto.
- Exportación e importación de un objeto usando el formato PLY.
- Ver el modelo en 4 vistas simultáneas: alzado, planta, perfil y perspectiva. En la vista en perspectiva se pueden cambiar el ángulo de apertura de la cámara así como la distancia a la que situar el plano delantero y trasero.
- Visualizar el árbol de que contiene el modelo creado así como ver las propiedades de cada uno de los nodos que lo componen.
- Generar imágenes realistas usando iluminación, sombras, texturas, reflexión y refracción así como antialiasing de 4x, y un efecto que hace que parezca que estamos viendo la imagen a través del agua.
Herramientas de desarrollo usadas
Para desarrollar el software se han utilizado las herramientas siguientes:
- Lenguaje de programación C++
- Librería GLUT para interacción entrada/salida de la pantalla al usar OpenGL
- Librería wxWidgets para crear la interfaz gráfica.
- Librería libxml2 usada en la entrada/salida de los ficheros de la aplicación.
Para la compilación y ejecución se ha usado el sistema operativo Linux en un portátil monoprocesador con placa aceleradora 3D moderna aunque no necesariamente de última generación.
Capturas de pantalla
Vista de la interfaz con el modelo para comenzar un museo cargado.
Vista de la edición de una superficie de Bézier
Vista de la ventana para asignar una textura a una imagen
Vista de un ejemplo del generador de imágenes usando antialiasing 4x
Vista de una superficie así como la imagen generada a partir de ella.