Next: Matrices
Up: Transformaciones
Previous: Transformaciones afines
Como ya dijimos en la descripción
de características OpenGL implementa la
cadena de reproducción (``rendering pipeline''),
es decir, todo el camino desde el modelo del mundo virtual
hasta su representación en la ventana en la pantalla.
Este camino implica varias transformaciones desde un sistema de
coordenadas al siguiente. OpenGL usa diferentes matrices
en los diferentes pasos:
- sistema de coordenadas (tridimensional) del objeto
- se aplican unas transformaciones usando la matriz modelado, que
se selecciona con glMatrixMode(GL_MODELVIEW)
- sistema de coordenadas (tridimensional) del mundo virtual
- se aplican unas transformaciones usando la matriz de perspectiva, que
se selecciona con glMatrixMode(GL_PERSPECTIVE)
- sistema de coordenadas (tridimensional) de la vista
- se aplica una transformación que genera coordenadas
bidimensionales normalizadas. Tales características
no hace falta cambiarlas, ya que están dadas implícitamente
por la proyección aplicada antes
- sistema de coordenadas (bidimensional) de visualización
- se aplica una transformación que genera coordenadas
que corresponden a unidades del dispositivo
(en nuestro caso: pixeles en una ventana de la pantalla)
- sistema de coordenadas (bidimensional) del dispositivo
¿Uno se puede preguntar por qué hay dos matrices, la del
modelado y la de la perspectiva?
Unas razones son:
- la matriz del modelado se aplica también a los vectores
normales
- la iluminación, es decir, el cálculo del color
del cual se debe visualizar un punto del mundo virtual, se realiza
antes de aplicar la proyección
- OpenGL permita especificar unos planos de recorte
adicionales (usando la función glClipPlane())
que se aplica convenientemente antes de
distorsionar el mundo virtual debido a la proyección
Next: Matrices
Up: Transformaciones
Previous: Transformaciones afines
© 2003, Dr. Arno Formella & Dra. Mª Victoria Luzón García, Universidad de Vigo, Departamento de Informática