miércoles, noviembre 08, 2006

Capítulo 5: Viewing

Contenido
5.1 Clasificación de Proyecciones.
5.2 Posicionamiento de la Cámara.
5.3 Proyecciones Simples.
5.4 Eliminación de Superficies Ocultas.

Viewing

• En el modelo de la cámara sintética se distinguen 2 partes:
– definición de los objetos a observar.
– definición de la cámara para observar.

• Se debe considerar:
– posición de la cámara.
– tipo de proyección.
– volumen de visión (window 3D, clipping volume).

• Elementos: Objeto, observador, proyectores y plano de proyección.

• COP = Center of Projection (posición de cámara)

Centro de Proyección en Infinito
• Si se mueve el COP al infinito se obtiene una proyección paralela con DOP (direction of projection).

5.1 Clasificación de Proyecciones
• Proyecciones Geométricas Planas

Proyección Ortográfica
• Los proyectores son perpendicular al plano de proyección.

Proyecciones Ortográficas
Perfil, Planta y Elevación
• El plano de proyección es paralelo a una cara del objeto.
• Preservación de distancias y ángulos.
• Se utilizan en el dibujo técnico.

Proyección Axonométrica
• Los proyectores siguen perpendiculares sobre el plano de proyección, pero el plano de proyección no está paralelo a una cara del objeto.

Vistas Axonométricas
• Isométrica: plano está simétrico a las 3 principales caras. Los ángulos entre las proyecciones de los tres ejes son iguales.
• Dimétrica: plano está simétrico a 2 caras. Los ángulos entre dos de los ejes son iguales.
• Trimétrica: caso general. Los ángulos entre los tres ejes son diferentes.

Vista Oblicua
• Proyectores no son perpendiculares al plano de proyecciones

Vista Perspectiva
• Perspectiva clásica: observador se encuentra simétricamente con respecto al objeto.
• Se utiliza para obtener una impresión realista en 3 dimensiones del espacio (arquitectura y animación).

Proyecciones Perspectivas con cero, uno y dos Puntos
• A: 0 direcciones principales son paralelas al plano.
• B: 1 dirección principal es paralela al plano.
• C: 2 direcciones principales son paralelas al plano.

5.2 Posicionamiento de la Cámara

• Cámara en el Origen y Traslación de matriz Model-View.
– glTranslatef(0.0, 0.0, -5.0);
– mueve por defecto la cámara en dirección de +Z.

Posicionamiento de la Cámara
• glMatrixMode(GL_MODELVIEW);
• glLoadIdentity();
• glTranslatef(0.0, 0.0, -5.0);
• glRotatef(-90.0, 0.0, 1.0, 0.0);

Definir la Posición a través de la Función gluLookAt()
gluLookAt(eyex,eyey,eyez,atx,aty,atz,upx,upy,upz)

Otras formas de Viewing (1/2)
Roll, Pitch y Yaw

5.3 Proyecciones Simples

• Cámara
a. Fondo de la cámara perpendicular a la dirección Z.
b. Caso general, fondo de la cámara con cualquier orientación.

Proyección Perspectiva
• zp = -d
• x/z = -xp / d xp = -x /(z/d) x / (z/d)
• yp = -y / (z/d) y / (z/d)
• Nonuniform foreshortening.
• Transformación irreversible.

Proyección Perspectiva
• Coordenadas Homogéneas:
– (x, y, z) 􀃆 (x, y, z, 1)
• Suponer:
– (x,y,z) (wx, wy, wz, w), w != 0
- Para recobrar (x,y,z) dividimos por w.

Pipeline de Proyección

Etapas en la Transformación de Vértices
v’ = Mv
con v = ( x, y, z, w), vector columna.

En la Proyección Ortogonal toman valores x e y, z = 0.

5.4 Eliminación de Superficies Ocultas
• Algoritmos “hidden surface removal”.
• Algoritmos “visible surface”

Hidden Surface Removal
• Los algoritmos se dividen en 2 clases:
– Object-Space: ordena las superficies del objeto.
– Image-Space: trabaja en conjunto con la proyección para determinar la relación entre los puntos del objeto.
• Algoritmo Z-Buffer (Image-Space).

Hidden Surface Removal

Algoritmo Z-Buffer
• OpenGL:
– glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
– glEnable(GL_DEPTH_TEST);
– glClear(GL_DEPTH_BUFFER_BIT);

No hay comentarios: