Você está na página 1de 11

GL_MODELVIEW - GL_PROJECTION

GL_MODELVIEW: la matriz que contiene las transformaciones originadas por los


cambios de modelado y posicin de la cmara.
GL_PROJECTION: la matriz con las transformaciones que realizan la proyeccin de la
escena de 3 a 2 dimensiones.
Estas dos matrices sirven para hacer una operacin de transformacin. Se especifica con la
funcin glMatrixMode que tiene como argumento una de las tres constantes enumeradas. Se
comporta como un estado, por tanto, hasta que se especifique un nuevo estado todas las
transformaciones se realizan sobre la ltima matriz especificada.

CODIGO DE EJEMPLO
void reshape(int width, int height) {
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60.0, (GLfloat)height / (GLfloat)width, 1.0, 128.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0.0, 1.0, 3.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
}

Se observa que se utiliza la funcin glMatrixMode() dos veces, la primera con


GL_PROJECTION y la segunda con GL_MODELVIEW .
Despues de la primera llamada a glMatrixMode(), la matriz sobre la que se
realizarn
las transformaciones es GL_PROJECTION, la primera operacin es inicializar la
matriz con la funcin glLoadIdentity() que carga la matriz identidad y se define
una proyeccin perspectiva con la funcin gluPerspective().
Luego de la segunda llamada a glMatrixMode(), la matriz sobre la que se
realizarn
las transformaciones es GL_MODELVIEW, igualmente, la primera operacin es
inicializar la matriz con la funcin glLoadIdentity() y a continuacin se establece la
posicin de la cmara con gluLookAtAl comportarse OpenGL como una mquina
de estados, las siguientes operaciones de transformacin que se realicen en el
cdigo, que estarn fuera de la funcin resaphe(), se realizarn sobre la ltima
matriz especificada, es decir sobre GL_MODELVIEW.

glPushMatrix() y glPopMatrix()

glPushMatrix() realiza una copia de la matriz superior y la pone encima de la pila, de


tal forma que las dos matrices superiores son iguales, al llamar a la funcin
glPushMatrix() se duplica la matriz superior. Las siguientes transformaciones que se
realizan se aplican slo a la matriz superior de la pila, quedando la anterior con los
valores que tena en el momento de llamar a la funcin glPushMatrix().
glPopMatrix() elimina la matriz superior, quedando en la parte superior de la pila la
matriz que estaba en el momento de llamar a la funcin glPushMatrix().

glBegin() - glEnd()

Para crear cualquier figura geomtrica en OpenGL hay que definir los vrtices entre
un par de llamadas a las funciones glBegin() y glEnd(). A la funcin glBegin se le
puede pasar un argumento que determina qu tipo de figura geomtrica se va
construir. Despus se definen los vrtices mediante llamadas a la funcin glVertex.
A continuacin vemos un ejemplo en el que se define el polgono.

glBegin (GL_POLYGON);
glVertex2f (0.0, 0.0);
glVertex2f (0.0, 3.0);
glVertex2f (3.0, 3.0);
glVertex2f (4.0, 1.5);
glVertex2f (3.0, 0.0);
glEnd ();

glClearColor() - glClear()

void glClearColor (GLclampf red, GLclampf green, GLclampf


blue, GLclampf alpha);
Activa el color de fondo actual, siguiendo el modelo de
representacin RGB. Cada argumento representa la cantidad del
color indicado que tiene el color de fondo, y toma valores en el
intervalo [0, 1 . El valor por defecto es el color NEGRO que se
representa por el valor: (0, 0, 0, 0).

glutInit - glutDisplayFunc
glutInit(&argc, argv); que inicializa la GLUT, y negocia con el sistema de ventanas
para abrir una. Los parmetros deben ser los mismos argc y argv sin modificar de la
main(). Glut entiende una serie de parmetros que pueden ser pasados por lnea de
comandos.
glutDisplayFunc( void (*func) (void)) La funcin func() se llamar cada vez que haya
que redibujar la ventana. Inicializa el buffer de la pantalla inicial, esn este caso es el
modo y tipo de colores en la pantalla(RGB/RGBA)

glutReshapeFunc - glutInitDisplayMode
glutReshapeFunc (void (*func) (int width, int height)) La funcin func(width, height) se
llamar cada vez que la ventana cambie de tamao, y recibir como parmetros la
nueva anchura y altura.
glutInitDisplayMode Inicializar el modo de visualizacin. En este caso, estamos
activando el buffer de profundidad (GLUT_DEPTH), el doble buffering
(GLUT_DOUBLE) y la renderizacin en RGB (GLUT_RGB).

glutInitWindowSize (anchura, altura). Inicializar el tamao de la ventana.


glutInitWindowPosition(x, y). Inicializar la posicin de la ventana en el escritorio.
glutCreateWindow (char* titulo). Crear la ventana. Esta funcin muestra una ventana
del tamao y posicin definidas y con el ttulo que le hayamos puesto.
glutKeyboardFun (void (*func)(unsigned char key, int x,int y)): Se encarga de la
interaccin de eventos en el teclado. maneja el control del teclado, haciendo un
transicin ente ASCII y GLUT
glutMainLoop(); es el bucle principal de la visualizacin, se encarga de interaccionar
con eventos. esta funcin inicializa el framework running de GLUT, y procesa los
mensajes de sistema operativo

Modelado Geomtrico
Es una tcnica que puede generar distintos tipos de objetos.
Los modelos pueden clasificarse en: lineas, superficies (planas o curvas) y slidos.
Los modelos de superficies curvas se dividen en:
Paramtricas: analticas y sintticas
No paramtricas: explcitas e implcitas
Los modelos slidos ms importantes son: semi-espacios,frontera,CSG, barrido, enumeracin
espacial,etc.
Entre los modelos no convencionales se encuentran: los fractales, los de gramticas, los
sistemas de partculas, los blobs, y los basados en propiedades fsicas.

Você também pode gostar