Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Opengl Part I
Opengl Part I
1. Visualización 3D
Cristina Cañero
Introducción
Tres librerías:
OpenGL Funciones básicas
GLU Funciones adicionales
GLUT Funciones de interfícies de ventanas
Formato de las funciones
Projection transform
Coordenadas de recorte
Perspective division
Coordenadas del dispositivo
Viewport transform
Coordenadas de ventana (x, y)
De vértices a píxeles
Projection transform
Coordenadas de recorte
Perspective division
Coordenadas del dispositivo
Viewport transform
Coordenadas de ventana (x, y)
Coordenadas del objeto
z
x
Primitivas geométricas básicas
Wire Solid
Primitivas geométricas básicas
(0, 1, 0) (1, 1, 0)
glBegin(GL_POINTS);
glVertex3f(0, 0, 0);
glVertex3f(0, 1, 0);
glVertex3f(1, 1, 0);
glVertex3f(1, 0, 0);
glEnd();
(0, 0, 0) (1, 0, 0)
Primitivas geométricas básicas
(0, 1, 0) (1, 1, 0)
glBegin(GL_LINES);
glVertex3f(0, 0, 0);
glVertex3f(0, 1, 0);
glVertex3f(1, 1, 0);
glVertex3f(1, 0, 0);
glEnd();
(0, 0, 0) (1, 0, 0)
Primitivas geométricas básicas
(0, 1, 0) (1, 1, 0)
glBegin(GL_LINE_STRIP);
glVertex3f(0, 0, 0);
glVertex3f(0, 1, 0);
glVertex3f(1, 1, 0);
glVertex3f(1, 0, 0);
glEnd();
(0, 0, 0) (1, 0, 0)
Primitivas geométricas básicas
(0, 1, 0) (1, 1, 0)
glBegin(GL_LINE_LOOP);
glVertex3f(0, 0, 0);
glVertex3f(0, 1, 0);
glVertex3f(1, 1, 0);
glVertex3f(1, 0, 0);
glEnd();
(0, 0, 0) (1, 0, 0)
Primitivas geométricas básicas
(0, 1, 0) (1, 1, 0)
glBegin(GL_TRIANGLES)
;
glVertex3f(0, 1, 0);
glVertex3f(1, 1, 0);
glVertex3f(1, 0, 0);
glEnd();
(1, 0, 0)
Primitivas geométricas básicas
(0, 1, 0) (1, 1, 0)
glBegin(GL_QUADS);
glVertex3f(0, 0, 0);
glVertex3f(0, 1, 0);
glVertex3f(1, 1, 0);
glVertex3f(1, 0, 0);
glEnd();
(0, 0, 0) (1, 0, 0)
Primitivas geométricas básicas
(0.5,1.5,0)
glBegin(GL_QUADS);
glVertex3f(0, 0, 0); (-0.5,1,0) (1.5,1, 0)
glVertex3f(-0.5, 1, 0);
glVertex3f(0.5, 1.5, 0);
glVertex3f(1.5, 1, 0);
glVertex3f(0, 1, 0); (0, 0, 0) (1, 0, 0)
glEnd();
De vértices a píxeles
Projection transform
Coordenadas de recorte
Perspective division
Coordenadas del dispositivo
Viewport transform
Coordenadas de ventana (x, y)
De vértices a píxeles
Coordenadas del objeto (x, y, z, w)
glMatrixMode(GL_MODELVIEW).
glRotatef(alpha, x, y, z)
glRotatef(-90, 1, 0, 0)
Transformación de
translación
La función:
glTranslatef(x, y, z)
glTranslatef(0, 1, 0)
Transformación de
escalado
La función:
glScalef(1, 2.5, 1)
Pila de matrices
glPushMatrix()
glPopMatrix()
glMatrixMode(GL_MODELVIEW);
3
glLoadIdentity();
2
glTranslatef(0.0f,0.25f,0.0f);
glutSolidSphere(0.1,30,30); 1
glTranslatef(0.0f,0.5f,0.0f);
1
glutSolidCube(0.15); 2
glTranslatef(0.0f,0.25f,0.0f);
glutSolidCube(0.15);3
Ejemplos
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glPushMatrix();
glTranslatef(0.0f,0.25f,0.0f); 3
glutSolidSphere(0.1,30,30); 1 2
glPopMatrix(); 1
glTranslatef(0.0f,0.5f,0.0f);
glutSolidCube(0.15);2
glTranslatef(0.0f,0.25f,0.0f);
glutSolidCube(0.15); 3
De vértices a píxeles
Coordenadas del objeto (x, y, z, w)
void gluLookAt (
eyeX, eyeY, eyeZ,
cenX, cenY, cenZ,
vp_X, vp_Y, vp_Z);
Projection transform
Coordenadas de recorte
Perspective division
Coordenadas del dispositivo
Viewport transform
Coordenadas de ventana (x, y)
Coordenadas de recorte
glMatrixMode(GL_PROJECTION).
Projection transform
Coordenadas de recorte
Perspective division
Coordenadas del dispositivo
Viewport transform
Coordenadas de ventana (x, y)
Coords. de dispositivo
Son el resultado de la selección de las coordenadas que caen dentro del volumen de visualización normalizado.
Projection transform
Coordenadas de recorte
Perspective division
Coordenadas del dispositivo
Viewport transform
Coordenadas de ventana (x, y)
Coords. de ventana
cy
Donde (x, y) corresponde a
la posición del viewport y
(cx, cy) a su tamaño.
Definición del viewport
BIEN MAL
Resumiendo...