Universidad Austral De Chile Sede Puerto Montt Escuela De Ingenieria En Computacion
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSIDAD AUSTRAL DE CHILE SEDE PUERTO MONTT ESCUELA DE INGENIERIA EN COMPUTACION Integración de Tecnologías .Net y OpenGL, Aplicadas al Desarrollo de un Editor para Escenarios 3D. Seminario de Titulación para optar al título de Ingeniero en Computación PROFESOR PATROCINANTE: Sr. Mauricio Henríquez Schott CO-PATROCINANTE: Sr. Pablo Mansilla Ojeda Felipe Andrés Morales Saldivia PUERTO MONTT - CHILE 2008-2009 A Mi Madre por su apoyo incondicional... Agradezco públicamente a las siguientes personas: Al Sr. Mauricio Henríquez Schott por guiarme durante el desarrollo del presente proyecto. Al Sr. Pablo Mansilla Ojeda por apoyarme en la realización de este proyecto. Muchas Gracias INDICE Síntesis Abstract 1. Introducción .................................................................................................. 1 2. Planteamiento del problema ........................................................................ 5 2.1 Antecedentes ........................................................................................... 5 2.1.1 Definición del problema .................................................................... 5 2.1.2 Esfuerzos anteriores ........................................................................ 23 2.1.3 Solución Propuesta ......................................................................... 29 2.2 Justificación ........................................................................................... 31 2.2.1 Situación sin proyecto: ................................................................... 31 2.2.2 Situación con proyecto: .................................................................. 31 2.3 Delimitación ............................................................................................ 32 3. Objetivos ...................................................................................................... 34 3.1 Objetivo General .................................................................................... 34 3.2 Objetivos Específicos ............................................................................ 34 4. Metodología ................................................................................................. 35 5. Plan de Trabajo y Cronograma .................................................................. 39 5.1 Actividades ............................................................................................. 39 5.2 Carta Gantt ............................................................................................. 42 6. Recursos...................................................................................................... 43 6.1 Hardware ................................................................................................. 43 6.2 Software .................................................................................................. 43 7. Análisis de la Solución ............................................................................... 44 7.1 Descripción de la solución .................................................................... 44 7.1.1 Módulo Editor 3D. ............................................................................ 45 7.1.1.1 Caso de uso: Crear/Editar/Eliminar Mundo. ............................ 46 7.1.1.2 Caso de uso: Crear/Editar/Eliminar Objeto. ............................. 49 7.1.1.3 Caso de uso: Crear/Editar/Eliminar Luz. .................................. 52 7.1.1.4 Caso de uso: Nueva/Guardar/Cargar Escena. ......................... 53 7.1.2 Módulo Generador de Código Fuente. ........................................... 54 7.1.2.1 Caso de uso: Generar código Fuente Escena. ........................... 54 7.2 Establecimiento de herramientas de desarrollo ................................. 55 7.3 Investigación de Tecnologías ............................................................... 56 7.3.1 Tao FrameWork ................................................................................ 56 7.3.2 Visual Studio 2008 ........................................................................... 59 7.3.3 Microsoft .NET Framework versión 2.0 (x86). ................................ 59 6.3.4 Tecnología de desarrollo basadas Reflection de Plataforma .NET. .................................................................................................................... 60 7.3.5 Tecnología XML 1.0. ......................................................................... 61 7.3.6 Mono 2.4 y MonoDevelop 2.0. ......................................................... 62 7.4 Validación de Requerimientos ........................................................... 63 8. Diseño de la Solución ................................................................................. 64 8.1 Diagrama de clases ............................................................................... 65 8.2 Diccionario de clases de editor OpenGL ............................................. 66 8.4 Casilla de Responsabilidades. ............................................................ 144 8.5 Diagrama de Procesos. ....................................................................... 145 8.5.1 Diagrama de Proceso Creación y edición de un Objeto 3D. ...... 145 8.5.2 Diagrama de Proceso Guardar escena. ....................................... 147 8.5.3 Diagrama de Proceso Cargar escena. .......................................... 148 8.5.4 Diagrama de Proceso Generación código Fuente de la escena Diseñada con el Editor 3D. ..................................................................... 149 8.5.5 Diagrama de Proceso de Selección de objetos Mediante el Mouse. .................................................................................................................. 150 9. Construcción del Software ....................................................................... 152 9.1 Construcción Aplicación versión Beta (solo Funcionalidad de Editor 3D). .............................................................................................................. 152 9.1.1 Construir una ventana que despliegue un Objeto en el mundo. 152 9.1.2 Capacidad de agregar en forma dinámica objetos al mundo y además que se desplieguen. ................................................................. 154 9.1.3 Crear una clase que ofrezca Primitivas OpenGL personalizadas. .................................................................................................................. 154 9.1.4 Definir tipos Objetos que derivan de Entity. ................................ 155 9.1.5 Crear interfaz visual y lógica para creación de Objetos. ............ 156 9.1.6 Exhibir las propiedades del mundo y objetos en una paleta de propiedades. ............................................................................................ 158 9.1.7 Seleccionar el mundo o los objetos desplegados en la ventana mediante el Mouse. ................................................................................. 159 9.1.8 Trasladar/Rotar/Escalar objetos en forma dinámica mediante el Mouse y Paleta de Propiedades. ........................................................... 165 9.1.9 Trasladar/Rotar la cámara en forma dinámica mediante el Mouse y Paleta de Propiedades. ........................................................................... 169 9.1.10 Selección de cámaras. ................................................................. 170 9.1.11 Crear una interfaz visual para la aplicación. ............................. 171 9.1.12 Aplicar Texturas a Objetos de tipo Entity. ................................. 177 9.1.13 Construir funcionalidad que permita crear Objetos Entity compuestos de Otros. ............................................................................ 180 9.1.14 Construir Funcionalidad que permita aplicar planos de corte a objetos de tipo Entity.............................................................................. 181 9.1.15 Construir funcionalidad que permita crear y editar fuentes de Luz. ........................................................................................................... 183 9.1.16 Construir funcionalidad que permita editar el mundo y sus Objetos mediante el teclado. ................................................................. 186 9.1.17 Construir funcionalidad que permita revisar la escena mediante una animación Básica que rote la cámara por la escena. ................... 190 9.1.18 Construir funcionalidad que permita guardar y cargar la escena mediante el uso de la Tecnología Xml. ................................................. 191 9.1.19 Integración de funcionalidades. ................................................. 199 9.2 Construcción aplicación versión Final (Editor 3D + Generador de código Fuente). .......................................................................................... 202 9.2.1 Generador de clase que despliegue la escena diseñada con la aplicación. ............................................................................................... 202 9.2.2 Generador de Proyecto .Net que despliegue la escena diseñada con la aplicación. .................................................................................... 207 10. Pruebas .................................................................................................... 209 10.1 Conceptos generales de las pruebas realizadas. ........................... 209 10.1.1 Pruebas de Unidad. ...................................................................... 209 10.1.2 Pruebas de Integración. .............................................................