13
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

Descripción de la Arquitectura

Embed Size (px)

DESCRIPTION

Contiene la descripción de la arquitectura utilizada en el proyecto

Citation preview

Page 1: Descripción de la Arquitectura

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

Page 2: Descripción de la Arquitectura

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

Page 3: Descripción de la Arquitectura

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.

Page 4: Descripción de la Arquitectura

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.

Page 5: Descripción de la Arquitectura

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.

Page 6: Descripción de la Arquitectura

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.

Page 7: Descripción de la Arquitectura

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.

Page 8: Descripción de la Arquitectura

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.

Page 9: Descripción de la Arquitectura

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.

Page 10: Descripción de la Arquitectura

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.

Page 11: Descripción de la Arquitectura

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.

Page 12: Descripción de la Arquitectura

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.

Page 13: Descripción de la Arquitectura

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.