martes, 4 de septiembre de 2007

Previo práctica 3

Investigar el uso, parámetros y variables de los comandos OpenGL

Podemos dibujar puntos, líneas y polígonos. Para definir un punto en el espacio 3D, usaremos la función:
glVertex3f(x, y, z). Estos puntos se unen formando estructuras, como líneas y polígonos. La siguiente tabla muestra alguna de las opciones que tenemos:

Modo Descripción

GL_POINTS Puntos individuales aislados
GL_LINES Cada par de puntos corresponde a una recta
GL_LINE_STRIP Segmentos de recta conectados
GL_LINE_LOOP Segmentos de recta conectados y cerrados
GL_TRIANGLES Cada tres puntos un triángulo
GL_QUADS Cada cuatro puntos un cuadrado
GL_POLYGON Un polígono

glBegin(): Se va a empezar una secuencia de lo que haya en el argumento, p. ej. glBegin(GL_TRIANGLES) Se empieza una secuencia de triángulos.

glEnd(): para terminar el ciclo que definimos

void glBegin(GLenum mode);

Marca el inicio de una lista de vértices que describen una primitiva geométrica. El tipo de primitiva está indicado por modo, el cual puede tener uno de los siguientes valores.

Valores Significado

GL_POINTS Puntos individuales

GL_LINES Par de vértices interpretados como líneas de segmentos individuales

GL_POLYGON Límite de un polígono simple convexo

GL_TRIANGLES Trios de vértices interpretados como triángulos

GL_QUADS Cuádruples de vértices interpretados como polígonos de cuatro lados

GL_LINE_STRIP Series de líneas de segmentos conectados

GL_LINE_LOOP Igual que el anterior, pero con un segmento añadido entre el primer y el último vértice

GL_TRIANGLE_STRIP Enlazar tiras de triángulos

GL_TRIANGLE_FAN Enlazar abanicos de triángulos

GL_QUAD_STRIP Enlazar tiras de cuadriláteros

void glEnd(void);

Marca el final de una lista de vértices.

void glClear(Glbitfdield mask)
Limpia los buffers especificados asignándoles los valores actuales. El argumento mask puede tener los siguientes valores:

Buffer Nombre
Buffer de color GL_COLOR_BUFFER_BIT
Buffer de fondo GL_DEPTH_BUFFER_BIT
Buffer de acumulación GL_ACCUM_BUFFER_BIT
Buffer de patrón GL_STENCIL_BUFFER_BIT

void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
Establece el color actual que va a aparecer en el fondo de la ventana en modo RGBA. Los valores red, green, blue y alpha están restringidos entre los
valores [0,1]. El valor por defecto es (0,0,0,0) negro.

void glPushMatrix() y glPopMatrix()

Dado que las operaciones sobre las matrices son acumulativas, es necesario tener una manera de recuperar el estado anterior de la matriz.
OpenGL dispone de una pila para cada matriz; para la matriz ModelView el tamaño de esta pila es de al menos 32 matrices, mientras que para la matriz Projection es de al menos 2.
La función glPushMatrix nos permite guardar la matriz actual en la pila, mientras que la función glPopMatrix coge la matriz que se encuentre en el top de la pila y la asigna a la matriz actual.
La función 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.
La función glPopMatrix () elimina la matriz superior, quedando en la parte superior de la pila la matriz que estaba en el momento de llamar a la función glPushMatrix ().

No hay comentarios: