Upload
aram-pena
View
240
Download
0
Embed Size (px)
DESCRIPTION
Contiene la descripción de la arquitectura utilizada en el proyecto
Citation preview
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
1
Í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
Gráficas computacionales
2
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.
Gráficas computacionales
3
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.
Gráficas computacionales
4
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.
Gráficas computacionales
5
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.
Gráficas computacionales
6
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.
Gráficas computacionales
7
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.
Gráficas computacionales
8
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.
Gráficas computacionales
9
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.
Gráficas computacionales
10
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.
Gráficas computacionales
11
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.
Gráficas computacionales
12
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.