Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Computación Gráfica
Computación Gráfica
Facultad de Ciencias
Ingeniera en Informtica
INFORMTICA GRFICA
OpenGL
52410311-G
70889076-V
ndice
6.1 Introduccin.................................................................................................... 6
6.2 Transformaciones........................................................................................... 7
6.2.1 Consideraciones previas........................................................................... 7
6.2.1.1 Sistemas de referencia.......................................................................... 8
6.2.1.2 Transformaciones lineales y matrices .................................................. 8
6.2.1.3 Sistemas Homogneos ...................................................................... 9
6.2.1.4 Composicin de matrices ................................................................ 10
6.2.2 Transformaciones del modelo ................................................................ 11
6.2.2.1 Traslacin .......................................................................................... 12
6.2.2.2 Rotacin ........................................................................................... 14
6.2.2.2.1 Giros en 2D ................................................................................. 15
6.2.2.2.2 Giros relativos respecto a ejes paralelos a los ejes de
coordenadas................................................................................................. 16
6.2.2.2.3 Giros relativos alrededor de un eje cualquiera ............................ 19
6.2.2.3 Cambios de escala ........................................................................... 22
6.2.2.4 Otras transformaciones .................................................................... 25
6.2.2.4.1 Reflexiones................................................................................. 25
6.2.2.4.2 Recorte ....................................................................................... 27
6.2.2.4.3 Transformaciones deformantes .................................................. 28
6.2.3 Importancia del orden de aplicacin de las transformaciones ................ 29
6.2.4 Utilizacin de matrices para representar las transformaciones en OpenGL
........................................................................................................................... 30
6.2.4.1 Matriz de modelador.......................................................................... 31
6.2.4.2 Utilizacin de primitivas de OpenGL para realizar transformaciones 34
6.2.4.2.1 Traslacin ................................................................................... 34
6.2.4.2.2 Rotacin ..................................................................................... 35
6.2.4.2.3 Escalado..................................................................................... 36
6.2.4.3 Pilas de matrices .............................................................................. 37
6.3 Proyecciones................................................................................................ 39
6.3.1 Proyeccin paralela ................................................................................ 41
6.3.1.1 Proyeccin ortogrfica...................................................................... 43
6.3.1.2 Proyecciones oblicuas...................................................................... 45
6.3.1.3 Primitivas para generar proyecciones ortogrficas........................... 47
6.3.2 Proyeccin perspectiva .......................................................................... 49
6.3.2.1 Primitivas para generar proyecciones en perspectiva ...................... 52
6.3.3 Planos de recorte adicionales ................................................................ 56
6.4 Manual de referencia.................................................................................... 59
glClipPlane ......................................................................................................... 59
glFrustum ........................................................................................................... 60
glLoadIdentity..................................................................................................... 60
glLoadMatrix ...................................................................................................... 60
glMatrixMode ..................................................................................................... 61
glMultMatrix........................................................................................................ 61
glOrtoh ............................................................................................................... 62
glPop Matrix ....................................................................................................... 62
glPushMatrix ...................................................................................................... 62
glRotate.............................................................................................................. 62
GlScale .............................................................................................................. 63
glTranslate ......................................................................................................... 63
gluLookAt ........................................................................................................... 64
gluOtho2D .......................................................................................................... 64
gluPerspective ................................................................................................... 65
6.5 Resumen ...................................................................................................... 65
Bibliografa ............................................................................................................ 67
Lista de Figuras
Figura 1. Cambio de sistema de coordenadas. ....................................................... 6
Figura 2. Proyecciones............................................................................................ 7
Figura 3. Sistemas de coordenadas........................................................................ 8
Figura 4. Tipos de transformaciones. .................................................................... 12
Figura 5. Translacin de objetos y coordenadas................................................... 13
Figura 6. Giro en dos dimensiones........................................................................ 15
Figura 7. Giro sobre un eje paralelo al eje X. ........................................................ 17
Figura 8. Proceso de giro sobre un eje paralelo al eje X....................................... 18
Figura 9. Ejemplo de giro. ..................................................................................... 19
Figura 10. Sentido de giro con angulos positivos. ................................................. 20
Figura 11. Normalizacin de un giro...................................................................... 21
Figura 12. Traslacin del eje al centro de coordenadas........................................ 22
Figura 13. Escala uniforme y no uniforme. ............................................................ 24
Figura 14. Pasos para realizar la escala. .............................................................. 24
Figura 15. Reflexin en el plano XY. ..................................................................... 26
Figura 16. Recorte de un cubo. ............................................................................. 27
Figura 17. Ejemplo de deformaciones................................................................... 29
Figura 18. Efectos rotacin-translacin y translacin - rotacin. ........................... 30
Figura 19. Proceso de transformacin de un vrtice en coordenadas 2D ............ 31
Figura 20. Salida del programa planets.c. ............................................................. 34
Figura 21. Pila de matrices.................................................................................... 37
Figura 22. Salida del programa rotate.c. ............................................................... 39
Figura 23. Relacin entre los diferentes tipos de proyecciones. ........................... 40
Figura 24. A) Proyeccin perspectiva, B) Proyeccin paralela.............................. 40
Figura 25. Proyeccin paralela.............................................................................. 41
Figura 26. Diferentes tipos de proyecciones. ........................................................ 41
Figura 27. Proyeccin ortogonal y oblicua. ........................................................... 42
Figura 28. Proyeccin ortogrfica.......................................................................... 43
Figura 29. Proyeccin isomtrica de un cubo........................................................ 44
Figura 30. Proyeccin ortogonal............................................................................ 45
Figura 31. Proyeccin oblicua. .............................................................................. 46
Figura 32. Proyecciones caballeras. ..................................................................... 47
Figura 33. Proyecciones de gabinete. ................................................................... 47
Figura 34. Salida por pantalla de ortho.c............................................................... 49
Figura 35.Proyeccin perspectiva. ........................................................................ 50
Figura 36. Puntos de fuga en la proyeccin perspectiva....................................... 51
Figura 37. Efecto realista de la proyeccin perspectiva. ....................................... 52
Figura 38. Volumen de perspectiva til con glfrustum........................................... 53
Figura 39. Volumen de perspectiva til con gluPerspective .................................. 55
Figura 40. Salida por pantalla del programa perspect.c. ....................................... 56
Figura 41. Salida por pantalla del programa prueba.cpp...................................... 57
Figura 42. Utilizacin de planos de recorte. .......................................................... 57
Figura 43. Vista parcial de una esfera utilizando planos de recorte. ..................... 59
6.1
Introduccin
elementos
En este captulo se pretende exponer los pasos que se siguen para generar una
escena que incluya esos elementos, cmo representarla en pantalla y cmo
modificar la escena resultante aplicando transformaciones, tales como rotacin,
traslacin o escalado de la propia escena o de los elementos que la componen.
Una vez que se han expuesto las diferentes tcnicas de transformacin de
coordenadas surge la necesidad de crear una imagen bidimensional constituida
por objetos definidos en espacios tridimensionales, de forma que puedan ser
representados en una pantalla. A partir de un objeto real en tres dimensiones se
proyectara en un conjunto de pixeles de dos dimensiones sobre la pantalla, el
proceso es similar al proceso de realizacin de una fotografa con una cmara, las
diferentes tcnicas de proyeccin sern expuestas detalladamente a lo largo de
este documento.
Figura 2. Proyecciones.
6.2
Transformaciones
Sistemas de referencia
Para hacer una correcta visualizacin de los objetos, stos han de ser ubicados en
un sistema universal de referencia (SUR), en el cual el eje Z, p. ej., puede tener su
origen en el plano Z (orientacin derecha), por lo que se dirige hacia el
observador (Figura 3-a), o bien tener orientacin izquierda (Figura 3-b). Todas las
coordenadas de los distintos objetos han de estar dadas en uno de estos sistemas
de referencia.
6.2.1.3
Sistemas Homogneos
6.2.1.4
Composicin de matrices
6.2.2
Una vez explicadas brevemente las herramientas de apoyo se van a estudiar cada
una de las diferentes transformaciones que puede experimentar un objeto de una
escena dado un sistema de coordenadas.
Este tipo de transformaciones se refiere a las modificaciones o alteraciones que se
aplican sobre los objetos que forman una escena. En realidad, los mecanismos
empleados para las transformaciones geomtricas en tres dimensiones se
extienden de los mtodos utilizados en entornos bidimensionales, incluyendo las
consideraciones sobre el eje Z.
Alberto Snchez Castao. 52410311
Jos Germn Snchez Hernndez. 70889076
11
6.2.2.1 Traslacin
La transformacin de translacin consiste en mover una cierta distancia un objeto
en una direccin determinada, como consecuencia el objeto se encontrar en una
posicin nueva.
En realidad, son los puntos que definen el objeto los que se trasladan de forma
individual. Para trasladar un objeto que se representa como un conjunto de
Alberto Snchez Castao. 52410311
Jos Germn Snchez Hernndez. 70889076
12
la matriz de traslacin en 3D. (tx, ty, tz) se conoce como el vector de traslacin. La
expresin anterior es equivalente al sistema de ecuaciones
6.2.2.2
Rotacin
ortogonales. Por esta razn, primero se mostrar cmo se realizan los giros en
2D.
6.2.2.2.1 Giros en 2D
Puesto que se ha de establecer el sentido de giro, vamos a suponer que el giro
alrededor de un eje ortogonal ser positivo, cuando sea contrario al sentido de giro
de las agujas del reloj, mirando cada eje de coordenadas desde fuera hacia el
origen. As, un giro positivo alrededor del eje Z de un punto (P) situado
inicialmente en las coordenadas (X, Y, Z), y que luego se ha girado un ngulo ,
pasando a estar ahora en las coordenadas (X', Y', Z'). La coordenada Z no vara
por lo tanto Z' = Z.
remedio que alinear dicho eje con alguno de los ejes ortogonales del sistema de
referencia.
Una vez establecida la ubicacin y orientacin del eje de giro, as como el ngulo
de giro (), los pasos a seguir son:
1) Trasladar el objeto de forma que el eje de giro (del objeto) pase por el origen de
coordenadas.
2) Girar el objeto de manera que el eje de rotacin coincida con alguno de los ejes
de coordenadas.
3) Realizar el giro indicado ().
4) Utilizar las matrices de giro inversas, y en orden inverso a como se hizo en el
punto 2), para devolver el eje de giro a su orientacin original.
5) Aplicar la matriz de traslacin inversa a la utilizada en el punto 1), para devolver
el eje de giro (y el objeto) a su posicin original.
Antes de ver en detalle los pasos anteriores, estableceremos que los giros en el
sentido de las agujas del reloj sern negativos. Adems, el eje ortogonal que se
utilizar para girar el objeto ser el Z.
6.2.2.3
Cambios de escala
las coordenadas del punto original con respecto a cada uno de los ejes, toman
siempre valores positivos y no necesariamente iguales.
Las coordenadas del punto final sern x' = xSx, y' = ySy, z' = zSz; Sx, Sy, Sz
debern ser nmeros reales positivos.
Cuando Sx = Sy = Sz el cambio de escala es uniforme; en cualquier otro caso el
cambio de escala ser no uniforme.
6.2.2.4
6.2.2.4.1
Otras transformaciones
Reflexiones
6.2.2.4.2
Recorte
Los parmetros a y b pueden tomar cualquier valor y el efecto obtenido con esta
transformacin es una alteracin de los valores de las coordenadas X e Y del
objeto, en una cantidad proporcional al valor de la coordenada Z, mientras que
dicha coordenada Z permanece inalterable. Este efecto se puede observar en la
en la siguiente figura, en la que se tiene un cubo de arista 1 y un valor para a y b
igual a 1.
6.2.2.4.3
Transformaciones deformantes
6.2.3
que utilizando este mtodo, tan slo se requerira la traslacin del sistema de
coordenadas, mantenindose constante la posicin de los 26 vrtices de la figura.
En este sentido, la matriz del modelador ser una matriz cuadrada (4x4) que se
encargar de definir el nuevo sistema de coordenadas, que se utilizar para
representar los objetos que han sufrido una transformacin. Al multiplicar dicha
matriz por la matriz columna que representa el vrtice, se obtiene otra matriz
columna, que representa las nuevas coordenadas del vrtice transformado.
La ecuacin siguiente muestra este proceso, en el cual, adems de las
coordenadas x, y, z se tiene en cuenta un factor de escala w.
matriz identidad (matriz cuyos elementos son ceros excepto los que ocupan su
diagonal principal, que son unos), con la cual se carga la matriz del modelador. Al
multiplicar esta matriz por cualquier vrtice, se obtiene el mismo vrtice, y como
las coordenadas del mismo se mantienen siempre (ya que lo que se traslada es el
sistema de coordenadas), el resultado es la representacin del vrtice con
respecto al sistema de coordenadas inicial. Las primitivas utilizadas para cargar la
matriz identidad en la matriz del modelador son glMatrixMode() y
glLoadIdentity(), cuya utilidad se puede comprobar en el siguiente
fragmento de cdigo del programa planets.c:
/*
Funcion de actualizacion en caso del cambio de tamao de la ventana. La primera vez que
se llama ademas define el volumen de visualizacion
*/
void reshape ( int w, int h )
{
// se ajusta la vista a las dimensiones de la ventana
glViewport ( 0, 0, w, h );
// se actua sobre la matriz de la proyeccion
glMatrixMode ( GL_PROJECTION );
// se carga en ella la matriz identidad (estado inicial)
glLoadIdentity ( );
// se define una proyeccin perspectiva
if ( h==0 )
gluPerspective ( 80, ( float ) w, 1.0, 5000.0 );
else
gluPerspective ( 80, ( float ) w / ( float ) h, 1.0, 5000.0 );
// se actua sobre la matriz del modelador
glMatrixMode ( GL_MODELVIEW );
// se carga en la matriz del modelador la identidad (estado inicial)
glLoadIdentity ( );
vp_centre_x = w / 2;
vp_centre_y = h / 2;
}
La salida generada por el programa anterior se puede observar en la Figura
A continuacin se describen, de forma detallada, los pasos que se deben dar para
generar las transformaciones explicadas anteriormente haciendo uso de la librera
OpenGL. Para cada una de ellas se presentarn las primitivas que pueden resultar
tiles y se acompaar de ejemplos.
6.2.4.2.1
Traslacin
Rotacin
draw_triangle();
Pero no es preciso asociar el eje de rotacin con uno de los ejes de coordenadas,
sino que se puede especificar cualquier lnea como eje de rotacin. Dicho eje
vendr definido por dos puntos: uno el origen de coordenadas y otro, el definido
por los parmetros x,y,z.
Concretamente, la llamada siguiente rota una escena 45 grados alrededor del eje
que une el (0,0,0) con el punto (1,2,3):
glRotatef (45.0f, 1.0f, 2.0f, 3.0f);
6.2.4.2.3
Escalado
6.2.4.3
Pilas de matrices
En realidad, OpenGL dispone de una pila para matrices del modelador y de otra
para matrices de proyeccin, junto con una pila adicional para matrices de textura.
Las operaciones bsicas que se pueden realizar sobre la pila de matrices son las
siguientes:
6.3
Proyecciones
6.3.1
Proyeccin paralela
6.3.1.1
Proyeccin ortogrfica
Las proyecciones ortogonales son utilizadas para generar diferentes vistas de los
objetos, mas concretamente sirven para obtener una vista superior, frontal y
lateral, como se observa en la siguiente figura.
y =y
p
6.3.1.2
Proyecciones oblicuas
En funcin del valor que tome y la coordenada z del punto que se va a proyectar,
el valor de L se puede calcular como:
siguiente matriz:
6.3.1.3
6.3.2
Proyeccin perspectiva
6.3.2.1
Gldouble derecha,
Gldouble
cerca,
matriz de proyeccin. Adems, el frustum no tiene que ser simtrico, y sus ejes no
tienen por qu estar alineados necesariamente con el eje Z.
Aunque conceptualmente es fcil de entender, glFrustum() es difcil de
utilizar. En su lugar, se puede recurrir a la rutina gluPerspective(), cuya
sintaxis es la siguiente:
void gluPerspective (GLdouble angulo, GLdouble aspecto,
GLdouble zFrontal, GLdouble zPosterior)
Esta rutina se diferencia de glFrustum() en la manera de definir la ventana de
visualizacin: en lugar de especificar los vrtices necesarios de la ventana, en este
caso slamente se define el ngulo de apertura de la cmara virtual (ngulo), que
puede tomar valores comprendidos entre 0 y 180, y la relacin entre el largo y
ancho del plano cercano de corte (aspecto). Estos dos parmetros determinan una
pirmide no truncada a lo largo de la lnea de visin. Para truncar la pirmide, se
especifica la distancia entre el punto de visin y los planos de recorte ms cercano
y ms alejado.
gluPerspective() est limitado a crear frustums que sean simtricos con
respecto a los ejes X e Y a lo largo de la lnea de visin.
Al igual que con glFrustum(), se pueden aplicar rotaciones y traslaciones para
cambiar la orientacin por defecto del volumen de visualizacin creado por
gluPerspective(). Sin tales transformaciones, el punto de visin permanece
en el origen y la lnea de visin baja a lo largo del eje Z.
Con gluPerspective(), es necesario dar valores apropiados para el campo de
visin, o la imagen puede parecer distorsionada.
Como colofn, se presenta un ejemplo donde se pueden diferenciar las dos tipos
de proyecciones presentadas anteriormente, el cdigo, prueba.cpp, se encuentra
en el anexo de ejemplos. Su salida por pantalla es la siguiente.
6.3.3
(GLenum
numero_plano,
const
GLdouble
6.4
Manual de referencia
glClipPlane
Propsito: Define un plano de recorte adicional.
Fichero de inclusin: <gl.h>
Sintaxis:
void glClipPlane (Glenum numero_plano, const Gldouble
*ecuacion)
Descripcin: Esta funcin define un plano que se utilizar para crear una vista
parcial de
una escena. Dicho plano permitir ocultar partes visibles de la escena.
Parmetros:
numero_plano
GLenum: nmero entero que especifica qu plano de recorte se est
definiendo. Puede tomar
el valor GL_CLIP_PLANEi, donde i es un nmero entre 0 y 5 que especifica
cada uno de
los seis planos de recorte que se pueden definir.
ecuacin
Alberto Snchez Castao. 52410311
Jos Germn Snchez Hernndez. 70889076
59
glFrustum
Propsito: Multiplica la matriz activa por una matriz de perspectiva.
Fichero de inclusin: <gl.h>
Sintaxis:
void glFrustum( GLdouble izquierda, GLdouble derecha,
GLdouble abajo, GLdouble arriba, GLdouble cerca, GLdouble
lejos);
Descripcin: Esta funcin crea una matriz de perspectiva que produce una
proyeccin en perspectiva.
Parmetros: izquierda, derecha
GLdouble: coordenada de los planos de trabajo izquierdo y derecho.
abajo, arriba
GLdouble: coordenada de los planos de trabajo inferior y superior.
cerca, lejos
GLdouble: coordenada de los planos de trabajo prximo y lejano. Los dos
valores deben ser
positivos.
Retornos: ninguno.
glLoadIdentity
Propsito: Abre en la matriz actual la de identidad.
Fichero de inclusin: <gl.h>
Sintaxis: void glLoadIdentity(void);
Descripcin: Reemplaza la matriz de transformacin actual con la matriz
identidad.
Retornos: Ninguno
glLoadMatrix
Propsito: Abre la matriz especificada como la actual.
Fichero de inclusin: <gl.h>
Sintaxis:
void glLoadMatrix( constoadMatrix( const
GLdouble *m); GLfloat *m); void glL
Descripcin: Reemplaza la matriz de transformacin actual con una matriz
proporcionada.
Alberto Snchez Castao. 52410311
Jos Germn Snchez Hernndez. 70889076
60
Parmetros:
*m
GLdouble o GLsformacin float: esta matriz representa una matriz de
4x4 que se usar en la matriz de transformacin actual.
Retornos: Ninguno.
glMatrixMode
Propsito: Especifica la matriz actual (PROJECTION, MODELVIEW,
TEXTURE).
Fichero de inclusin: <gl.h>
Sintaxis: void glMatrixMode(GLenum modo);
Descripcin: esta funcin se usa para determinar que pila de
matrices(GL_PROJECTION, GL_MODELVIEW o GL_TEXTURE) se usara con
las operaciones de matrices.
Parmetros:
modo
Glenum: identifica que pila de matrices se usara con las operaciones de
matrices.
Puede ser: GL_PROJECTION, GL_MODELVIEW o GL_TEXTURE.
Retornos: Ninguno.
glMultMatrix
Propsito: Multiplica la matriz actual por la especificada.
Fichero de inclusin: <gl.h>
Sintaxis:
void MultMatrix( const GLdouble *m);
void MultMatrix(const Glfloat *m);
Descripcin: Esta funcin multiplica la pila de matrices seleccionada
actualmente con la especificada, La matriz resultante es almacenada como la
matriz actual en la parte superior de la pila de matrices.
Parmetros:
*m
GLdouble o GLfloat: esta matriz representa una matriz de 4x4 que se
usar en la matriz de transformacin actual. La matriz se almacena en
orden de mayor columna como una sucesin de 16 valores.
Retornos: Ninguno.
glOrtoh
Propsito: Define una proyeccin ortogrfica
Fichero de inclusin: <gl.h>
Sintaxis:
void glOrtho (Gldouble izquierda, Gldouble arriba,
Gldouble derecha, Gldouble abajo, Gldouble cerca,
Gldouble lejos);
Descripcin: Esta funcin define una matriz de proyeccin ortogrfica.
Concretamente, crea una matriz para una ventana de visualizacin paralela
ortogrfica y la multiplica por la matriz actual.
Parmetros:
izda, dcha, arriba, abajo
GLdouble : Coordenadas de las dos esquinas de la ventana de
visualizacin.
cerca, lejos
GLdouble : Especifican los planos de trabajo cercano y lejano.
Retornos: Ninguno.
glPop Matrix
Propsito: Saca la matriz actual de la pila de matrices.
Fichero de inclusin: <gl.h>
Sintaxis: void glPopMatrix(void);
Descripcin: Esta funcin se usa para sacar la ltima matriz de la pila de
matrices.
Retornos: Ninguno.
glPushMatrix
Propsito: Coloca la matriz actual en la pila de matrices.
Fichero de inclusin: <gl.h>
Sintaxis: void glPushMatrix(void);
Descripcin: Esta funcin se emplea para colocar la matriz actual en la pila de
matrices actual. Esto se emplea a menudo para almacenar la matriz de
transformacin actual de manera que pueda recuperarse ms tarde con una
llamada a glPopMatrix
Retornos: Ninguno.
glRotate
Propsito: Rota la matriz actual con una matriz de rotacin.
Alberto Snchez Castao. 52410311
Jos Germn Snchez Hernndez. 70889076
62
GlScale
Propsito: Multiplica la matriz actual por una matriz de escala.
Fichero de inclusin: <gl.h>
Sintaxis:
void glScaled(GLdouble x, GLdouble y, GLdouble z);
void glScalef(GLfloat x, Glfloat y, GLfloat z);
Descripcin: Esta funcin multiplica la matriz actual por una matriz de escala.
La nueva matriz escalada se convierte en la matriz de transformacin actual.
Parmetros:
x, y, z
factores de escala a lo largo de los ejes x,y,z.
Retornos: Ninguno.
glTranslate
Propsito: Multiplica la matriz actual por una matriz de traslacin.
Fichero de inclusin: <gl.h>
Sintaxis:
void glTranslated(GLdouble x, GLdouble y, GLdouble
z);
void glTranslatef(GLfloat x, GLfloat y, GLfloat z);
Descripcin: Esta funcin multiplica la matriz actual por una matriz de
traslacin. La nueva matriz trasladada se convierte en la matriz de transformacin
actual.
Parmetros:
x, y, z
Las coordenadas x,y,z del vector de traslacin.
Alberto Snchez Castao. 52410311
Jos Germn Snchez Hernndez. 70889076
63
Retornos:Ninguno.
gluLookAt
Propsito: Define una transformacin de visualizacin.
Fichero de inclusin: <glu.h>
Sintaxis:
void
gluLookAt(GLdouble
ojox,
GLdouble
ojoy,
GLdouble ojoz, GLdouble centrox, GLdouble centroy,
GLdouble centroz, GLdouble arribax, GLdouble arribay,
GLdouble arribaz);
Descripcin: Esta funcin define una transformacin de visualizacin basada
en la posicin del observador, la posicin del centro de la escena y un vector que
apunta hacia arriba desde la perspectiva del observador.
Parmetros:
ojox, ojoy, ojoz
GLdouble : Coordenadas x,y,z del punto de vista.
centrox, centroy, centroz
GLdouble : Coordenadas x,y,z del centro de la escena a la que se mira.
arribax, arribay, arribaz
GLdouble : Coordenadas x,y,z del vector de direccin ascendente.
Retornos: Ninguno.
gluOtho2D
Propsito: Define una proyeccin ortogrfica bidimensional.
Fichero de inclusin: <glu.h>
Sintaxis:
gluOrtho2D(GLdouble izda, GLdouble dcha, GLdouble
abajo, void GLdouble arriba);
Descripcin: Esta funcin define una matriz de proyeccin ortogrfica 2D.
Esta matriz de proyeccin es equivalente a llamar a glOrtho con cero y uno
para lo s valores cerca y lejos respectivamente
Parmetros:
izda, dcha
GLdouble : Especifican los planos de trabajo izquierdo y derecho.
arriba, abajo
GLdouble : Especifican los planos de trabajo superior e inferior.
Retornos: Ninguno
gluPerspective
Propsito: Define una matriz de proyeccin en perspectiva para la
visualizacin.
Fichero de inclusin: <glu.h>
Sintaxis:
void gluPerspective(GLdouble angulo, GLdouble aspecto, GLdouble
zcerca, GLdouble zlejos);
Descripcin: Esta funcin crea una matriz que describe un frustum de
visualizacin en coordenadas globales. La relacin de aspecto debe ajustarse a la
relacin de aspecto de la vista (especificada con glViewPort). La divisin de
perspectiva est basada en el ngulo del la campo de visin y la distancia a los
planos de trabajo prximo y lejano.
Parmetros:
angulo
GLdouble : Especifica el campo de visin en grados en la direccin Y.
aspecto
GLdouble : Especifica la relacion de aspecto. Se emplea para determinar
el campo de visin en la direccin X. La relacin de aspecto es X / Y.
zcerca, zlejos
Gldouble: Especifica la distancia desde el observador a los planos de
trabajo prximo y lejano.
Retornos: Ninguno:
6.5
Resumen
Bibliografa
Redbook Ejemplos del libro "OpenGL Programming Guide".
http://trant.sgi.com/opengl/examples/redbook/redbook.html
OpenGL Simple Samples.
http://trant.sgi.com/opengl/examples/samples/samples.html
More sophisticated OpenGL Samples
http://trant.sgi.com/opengl/examples/more_samples/more_samples.html
OpenGL Tutorials (excelentes tutoriales para diversas plataformas)
http://nehe.gamedev.net
GLUT (Graphics Library Utility Toolkit Samples
http://trant.sgi.com/opengl/toolkits/glut-3.5/progs/progs.html
Nate Miller's OpenGL Tutorials & Code (great code examples)
http://nate.scuzzy.net/gltut/
Nate Robins' OpenGL Chronicles
http://www.xmission.com/~nate/opengl.html
Page Michael Gold's OpenGL
http://www.berkelium.com/OpenGL/
TutorialWin 32
http://trant.sgi.com/opengl/examples/win32_tutorial/win32_tutorial.html
OpenGL Challenge Handy Coding Routines
http://oglchallenge.otri.net/challengepack/
OpenGL Components for Delphi & C++ Builder
http://www.signsoft.com
Fun with OpenGL (utilizand o lenguaje C para la API Win32)
http://home.att.net/~bighesh
Beginner OpenG L Code Samples
http://www.uic.edu/~jayvee/opengl/
matumot's OpenGL Paradise
http://www.nk-ex a.co.jp/~matumot/index-e.shtml
Fatal FX OpenGL (GLUT) sources
http://www.fatalfx.com/opengl/
Sample Programs for Mark Kilgard's Articles in the X Journal Magazine
ftp://sgigate.sgi.com/pub/opengl/xjournal/
Brian Paul's Mesa 3D, OpenG L-like API
http://www.mesa3d.org
Getting Started with OpenGL
http://members.home.com/borealis/gldemo.c
druid's GL Journal
http://www.gameprog.com/opengl
MFC Programmers' Sourcebook OpenGL code samples l
http://www.codeguru.com/opengl/index.htm
Pauls OpenGL page
http://home.clara.net/paulyg/ogl.htm
Alberto Snchez Castao. 52410311
Jos Germn Snchez Hernndez. 70889076
67