Sie sind auf Seite 1von 24

C.U.

lunes, 07 de abril de 2014

Computacin Grfica
Transformations Transformaciones con
OpenGL OpenGL
Mg. Johnny R. Avendao Q.
Lic. John Ledgard Trujillo Trejo

Universidad Nacional Mayor


de San Marcos

Facultad de Ingeniera de
Sistemas e Informtica

El proceso de sntesis (Rendering Pipeline):


Transforma
Ilumina
Transforma
Recorta
Proyecta
Rasteriza
Parametros
Modelo & Camera

Rendering Pipeline

Mg. Johnny R. Avendao Q.

Framebuffer

Dispositivo

Lic. John Ledgard Trujillo Trejo

De vrtices a pxeles
Coordenadas del objeto (x, y, z, w)
Modelview transform
Coordenadas del ojo (eye)
Projection transform
Coordenadas de recorte
Perspective division

Coordenadas del dispositivo


Viewport transform
Coordenadas de ventana (x, y)
Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

De vrtices a pxeles
Coordenadas del objeto (x, y, z, w)
Modelview transform
Coordenadas del ojo (eye)
Projection transform
Coordenadas de recorte
Perspective division

Coordenadas del dispositivo


Viewport transform
Coordenadas de ventana (x, y)
Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Coordenadas del objeto


Sistema de coordenadas en que se define el objeto.

z
Mg. Johnny R. Avendao Q.

x
Lic. John Ledgard Trujillo Trejo

De vrtices a pxeles
Coordenadas del objeto (x, y, z, w)
Modelview transform
Coordenadas del ojo (eye)
Projection transform
Coordenadas de recorte
Perspective division

Coordenadas del dispositivo


Viewport transform
Coordenadas de ventana (x, y)
Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

De vrtices a pxeles
Coordenadas del objeto (x, y, z, w)
Coordenadas del mundo
Coordenadas del ojo (eye)
Projection transform

Coordenadas de recorte
Perspective division
Coordenadas del dispositivo
Viewport transform
Coordenadas de ventana (x, y)
Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Coordenadas mundo
Sistema de coordenadas en que se define la escena. Define cmo
se colocan los diferentes objetos en la escena.

(x, y, z, w)T mundo = (x, y, z, w)Tobjeto Mescena

Mescena pasa de coordenadas objeto a coordenadas mundo


(rotaciones, translaciones, escalados )

Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Colocando los objetos en la escena...


Para colocar un objeto de dos maneras diferentes, utilizaremos
dos matrices Modelview (M) distintas.

Para indicar a OpenGL que queremos trabajar con la matriz M,


escribiremos:
glMatrixMode(GL_MODELVIEW).

Al principio de la ejecucin del programa, M = I.

Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Transformacin de rotacin
La funcin:

glRotatef(alpha, x, y, z)
Multiplica la matriz actual por la matriz de rotacin de alpha
grados alrededor del eje (x, y, z)

glRotatef(-90, 1, 0, 0)

Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Transformacin de rotacin

Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Transformacin de Traslacin
La funcin:

glTranslatef(x, y, z)
Multiplica la matriz actual por la matriz de translacin con un
vector (x, y, z)

glTranslatef(0, 1, 0)

Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Transformacin de Traslacin

Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Transformacin de Escalado
La funcin:

glScalef(sx, sy, sz)


Multiplica la matriz actual por la matriz de escalado de factores
(sx, sy, sz)

glScalef(1, 2.5, 1)

Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Transformacin de Escalado

Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Pila de Matrices
OpenGL dispone de una pila para cada matriz.
El tamao mnimo para la pila Modelview es 32 y para la pila
Projection es 2.
Para guardar / recuperar matrices:

glPushMatrix()
glPopMatrix()
Estas funciones trabajan con la matriz actual.

Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Pila de Matrices: Ejemplos


glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0f,0.25f,0.0f);
glutSolidSphere(0.1,30,30); 1
glTranslatef(0.0f,0.5f,0.0f);
glutSolidCube(0.15); 2
glTranslatef(0.0f,0.25f,0.0f);
glutSolidCube(0.15); 3

Mg. Johnny R. Avendao Q.

3
2
1

Lic. John Ledgard Trujillo Trejo

Pila de Matrices: Ejemplos


glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glPushMatrix();
glTranslatef(0.0f,0.25f,0.0f);
glutSolidSphere(0.1,30,30);
1
glPopMatrix();
glTranslatef(0.0f,0.5f,0.0f);
glutSolidCube(0.15); 2
glTranslatef(0.0f,0.25f,0.0f);
glutSolidCube(0.15); 3

Mg. Johnny R. Avendao Q.

3
2
1

Lic. John Ledgard Trujillo Trejo

Pila de Matrices: Ejemplos

Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Pila de Matrices: Ejemplos

Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Pila de Matrices: Ejemplos

Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Transformaciones del Modelo


La apariencia final de nuestros objetos depende en gran medida
del orden con el que se hayan aplicado las transformaciones.

Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Bibliografa
1. Computer Graphics: Principles and Practice. Foley J., Van Dame A., Feiner S.,
Hughes J., Phillips R. Addison Wesley Publishing Company, Massachusetts.
1996
2. Curvas y superficies para modelado geomtrico. Cordero Valle J., Cortes
Parejo. Alfaomega Grupo Editor 2003
3. Fundamentals of Computer Aided Geometric Design. Hoschek J., Lasser D.
A.K. Peters Ltd. Wellesley Massachusetts. 1993
4. Grficas por computadora. Hearn D., Baker M.P. Prentice - Hall
Hispanoamericana. 1998
5. Introduction to Computing with Geometry Notes. Shene C.K. Department of
Computer Science. Michigan Technological University. 1997
www.cs.mtu.edu/~shene/COURSES/CS3621/NOTES/notes.html
6. OpenGL Silicon Graphics Inc. www.opengl.org
7. Programacin de graficos en 3D. M. Escribano. Add. Wesley.
8. Fundamentos de Dibujo en Ingeniera. Con una introduccin a las Graficas
por computadora interactiva para Diseo y Produccin - LUZADDER Warren
J. - DUFF Jon M.
Mg. Johnny R. Avendao Q.

Lic. John Ledgard Trujillo Trejo

Discusin, preguntas...

Mg. Johnny R. Avendao Q.

lunes, 07 de abril de 2014

Lic. John Ledgard Trujillo Trejo

Das könnte Ihnen auch gefallen