Issuu on Google+

Entrega final de Proyecto

Gráficas computacionales Arquitectura Laura Gabriela Villafranco Miranda 889944 Aram Peña Martínez 889557 Carlos Alberto Trejo Zárate 889927 Francisco Villegas Sánchez 889235 01 de diciembre de 2010


Grรกficas computacionales

รndice Definiciรณn de clases ............................................................................................................................. 2 Clase Test ............................................................................................................................................ 3 Clase Objeto3D .................................................................................................................................... 4 Clase Cone ........................................................................................................................................... 5 Clase Cube ........................................................................................................................................... 5 Clase Prism .......................................................................................................................................... 6 Clase Sphere ........................................................................................................................................ 6 Clase Material...................................................................................................................................... 7 Clase Textura ....................................................................................................................................... 7 Clases Iluminaciรณn, Pointlight y Spotlight ........................................................................................... 8 Clases Movement, Rotation, Trasnlation, Scalar, Linear y Ellipse....................................................... 9 Clase Plano ........................................................................................................................................ 10 Clase Model ....................................................................................................................................... 10 Clases Frame y Transformaciรณn ........................................................................................................ 11 Diagrama de despliegue .................................................................................................................... 12

1


Gráficas computacionales

Descripción de la Arquitectura Para comenzar a describir la arquitectura utilizada para el presente proyecto, comenzaremos por explicar las clases que fueron definidas para dar solución a los requerimientos proporcionados. Posteriormente se da una breve explicación sobre el diagrama de despliegue, para modelar la arquitectura que se está utilizando.

Definición de clases El uso de clase nos permitió tener un proyecto estructurado y flexible, ya que gracias a la definición de clases logramos manejar un buen control de cambios, así como la reutilización de código gracias a la herencia en las clases.

2


Gráficas computacionales

Clase Test La clase Test fue definida con el fin de crear la escena, para ello en esta clase se tiene los métodos requeridos para la creación de objetos y modelos, también se tienen aquellos que se utilizan para el manejo del teclado y mouse. Por otro lado se tienen los métodos para el control y definición de cámara e iluminación. Esta clase hace uso de las librerías de Corono y Math, así mismo ocupa de las clases de los diferentes objetos y modelos.

Para definir la escena desde archivo se utilizan las clases Reader y Builder. La primera se utiliza para realizar las funciones de lectura del archivo y la segunda se utiliza para ir construyendo los diferentes objetos que se definen en el archivo de entrada. Ambas clases están relacionadas con la clase Test. 3


Gráficas computacionales

Clase Objeto3D Para el manejo de objetos se definió la clase Objeto3D misma que funge como superclase para la creación de cada uno de los objetos que se pueden crear en las escenas, como los son: Cono, Esfera, Cubo, Toroide, Prisma. Para cada una de estas clases se especificó una clase hija de la clase Objeto3D, a fin de solo modificar la forma en que se pinta cada objeto. En la siguiente figura se muestra la relación entre estas clases.

La clase Objeto3D cuenta con las variables cLight, cMaterial, cName, CPlano, cPosition, cRotation, cScalsr, cSahdow y tipo, estas variables sirven para almacenar las características que tendrá el objeto tales como iluminación, sombra, nombre, tipo, entre otros. Por otro lado cuenta con los métodos addMovement, addTransformation, applyFrame y draw, que se utilizan para aplicarle un movimiento o transformación al objeto así como para pintar el objeto.

4


Gráficas computacionales

Clase Cone La clase Cone tiene como función pintar un cono en la escena con los parámetros leídos del archivo de entrada, para ello utiliza las variables cHeight y cradio, en las cuales se almacena la altura y el radio que tendrá el cono. Así mismo tiene los métodos coneBase para dibujar la base del cono y el método draw para dibujar todo el cono.

Clase Cube En la clase Cube se tiene la variable cLength para almacenar el largo del lado del cubo que se quiera pintar, también tiene el método draw que se utiliza para dibujar el cubo con las características proporcionadas en la escena.

5


Gráficas computacionales

Clase Prism La clase Prism es utilizada para crear prismas en la escena, para ello se hace uso de las variables cApotheme, cHeight y cSides para guardar las características que tendrá el prisma a dibujar. Por otro lado se tiene los métodos draw, prismBase y prismBody para lograr pintar el prisma en la escena.

Clase Sphere Sphere es la clase que utilizamos para dibujar esferas, ocupa de las variables cMeridians, cParallells, cRadio y del método draw para lograr crear esferas en la escena.

6


Gráficas computacionales

Clase Material Dado que un objeto está asociado a un material, se creó la clase Material con la finalidad de tener las características que un material puede tener como lo son texturas, nombre, iluminación, modo, color y transparencia.

Clase Textura La clase textura fue definida para tener el manejo de los atributos que se pueden tener en las texturas tales como imagen, magnifying, minifying, mipmaps, modo, nombre y tipo. Esta clase está relacionada con el material que se le aplica al objeto.

7


Gráficas computacionales

Clases Iluminación, Pointlight y Spotlight Para el manejo de iluminación en objetos y en la escena se creó la superclase Luz, en la cual se tienen los atributos que definen la iluminación ambiental, por ejemplo, nombre y el tipo. También se definieron las clases hijas Pointlight y Spotlight en las cuales se tienen las características necesarias para definir estos tipos de luces, mismas que ocupan posición y ángulo, dirección, posición, respectivamente.

8


Gráficas computacionales

Clases Movement, Rotation, Trasnlation, Scalar, Linear y Ellipse Dado que un objeto tiene movimientos de rotación, traslación y escalamiento, se definió la superclase Movement y las clases hijas Rotation, Translation y Scalar. También se crearon las clases Linear y Ellipse como hijas de la clase Translation a fin de manejar una traslación linear y una traslación elíptica. Las variables y métodos de cada una de estas clases se muestran en la siguiente imagen.

9


Gráficas computacionales

Clase Plano La clase Plano es utilizada para poder definir planos en nuestra escena, para ello se tienen las variables cMaterial y cName, para almacenar las características con las que un plano puede ser definido. También se tiene una matriz para almacenar los vértices que se toman como base para pintar los planos.

Clase Model La clase Model fue definida a fin de poder tener los atributos necesarios para pintar un modelo en la escena. Esta clase utiliza la librería de glm para poder crear los modelos. El detalle de esta clase puede verse a continuación.

10


Gráficas computacionales

Clases Frame y Transformación En la escena se pueden tener key frames para traslación, rotación y escalamientos, para esto se definieron las clases Frame y Transformacion. En las cuales se tienen las características y comportamientos que pueden tener los key frames.

Por otro lado los key frames pueden ser de tres tipos: keyFrame para Traslación, key frame para Rotación y key frame para Escalamiento.

11


Gráficas computacionales

Diagrama de despliegue Con la finalidad de modelar la arquitectura con la cual se implementó este proyecto se muestra el siguiente diagrama de despliegue, en el cual se ilustra que como dispositivo se tiene una pc, sobre el sistema operativo Windows xp/vista/7, también se muestra que el ambiente de ejecución es Visual Studio, que es sobre la plataforma sobre la cual se desarrolló el proyecto utilizando el lenguaje c++, de igual forma se muestra que se utilizó glut.

Por otro lado se ilustra la estrecha relación que existe entre GPU y CPU. Finalmente se muestran las clases más representativas del proyecto, así como las librerías utilizadas para el desarrollo del mismo.

12


Descripción de la Arquitectura