La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Determinación de superficies ocultas

Presentaciones similares


Presentación del tema: "Determinación de superficies ocultas"— Transcripción de la presentación:

1 Determinación de superficies ocultas
Hidden Surface Determination

2 Definición Es el proceso usado para determinar que superficies y que partes de superficies son visibles desde un punto de vista. Fuente: Universidad de Sonora

3 Comparación de profundidades
El problema visibilidad se puede reducir a preguntar: dados 2 puntos, P1 (x1, y1, z1) y P2 (x2, y2, z2), ¿uno de los puntos oculta al otro? La respuesta se hace en dos pasos: ¿Están P1 y P2 en la misma línea de proyección? Si no, ningún punto oculta al otro. De otra forma, una comparación de profundidades indica que punto oculta al otro. Universidad de Sonora

4 Comparación de profundidades
La comparación depende del tipo de proyección. Si es una proyección paralela ortográfica en el plano xy, P1 y P2 están en el mismo proyector si x1 = x2 y y1 = y2. Comparando z1 con z2 se sabe si P1 oculta a P2 o viceversa. Si es una proyección en perspectiva el cálculo es más complejo. Se puede realizar haciendo una transformación “perspectiva a paralela” y aplicar el método anterior. Universidad de Sonora

5 Métodos para determinar superficies ocultas
Buffer Z (Z-buffer) Eliminación de caras ocultas (back face cull) Algoritmo del pintor (painter’s algorithm) Algoritmos scan-line (scan-line algorithms) Algoritmo de subdivisión (subdivision algorithm) Ray casting Universidad de Sonora

6 Z-Buffer El algoritmo registra la coordenada z (profundidad) menor para todos los puntos que son visibles desde el punto (x, y). Los valores se guardan en un buffer llamado buffer Z. El algoritmo sigue los siguientes pasos: Universidad de Sonora

7 Z-Buffer Inicializar la pantalla con el color del fondo.
Inicializar el buffer z con el valor del plano lejano (o infinito). Para cada polígono P en la escena: Proyectarlo en la pantalla. Calcular Z(x, y) para cada pixel dentro del polígono. Si Z(x, y) < Zbuf(x, y) hacer Zbuf(x, y) = Z(x, y) y pintar el pixel en (x, y) con el color de P en (x, y). Universidad de Sonora

8 Ejemplo de Z-Buffer Fuente: Al inicio: El buffer Z se inicializa a infinito Universidad de Sonora

9 Ejemplo de Z-Buffer Se coloca un línea. El buffer Z se actualiza.
Universidad de Sonora

10 Ejemplo de Z-Buffer Se agrega otra línea. El buffer Z se actualiza.
Universidad de Sonora

11 Algoritmo Z-Buffer Tomado de Joy, Kenneth I. The Depth Buffer Visible Algorithm Universidad de Sonora

12 Z-Buffer Ventajas: Funciona. Fácil de implementar. Desventajas:
No es eficiente. Puede pintar el mismo pixel varias veces. El buffer ocupa mucho espacio (una entrada por cada pixel de la pantalla). No maneja polígonos transparentes de forma adecuada. Universidad de Sonora

13 Eliminación de caras ocultas
Eliminar los polígonos cuyas caras frontales no están frente a la cámara. Los polígonos tienen dos caras: la de enfrente y la de atrás. Si un polígono tiene la cara de atrás frente a la cámara, entonces se elimina. Si los polígonos son triángulos, es fácil determinar si su cara de enfrente está o no frente a la cámara. Universidad de Sonora

14 Eliminación de caras ocultas
Un triángulo se elimina si el producto punto entre su normal y el vector de la cámara al triángulo es mayor o igual que cero. (V0 – P) ∙ N ≥ 0 P es la posición de la cámara. V0 es el primer vértice del triángulo. N es la normal, definida como: N = (V1 – V0) x (V2 – V0) Universidad de Sonora

15 Eliminación de caras ocultas
Limitaciones: Solo sirve para objetos modelados con una red (mesh) de polígonos. Funciona para objetos cóncavos pero no necesariamente para convexos. En el ejemplo no se elimina la cara gris Fuente: Universidad de Sonora

16 Algoritmo del pintor Algoritmo básico:
Ordenar los polígonos usando su coordenada z. Pintar los polígonos de atrás (z máxima) hacia delante (z mínima). Universidad de Sonora

17 Algoritmo del pintor Problemas: El ordenamiento no es siempre posible.
S tiene z mayor que S’. Sin embargo, S’ debe pintarse primero. Fuente: Universidad de Sonora

18 Algoritmo del pintor Solución 1:
Para cada polígono guardar su z mínima y máxima. Verificar que no haya traslapes entre polígonos con respecto a z. Universidad de Sonora

19 Algoritmo del pintor Si hay traslape en z se verifica que haya traslape en el plano xy. Universidad de Sonora

20 Algoritmo del pintor Universidad de Sonora

21 Algoritmo del pintor En los casos 1 y 2 no hay problema.
El caso 3 necesita procesamiento extra. Ningún procesamiento extra sirve para casos recursivos, por ejemplo: Universidad de Sonora

22 Algoritmo del pintor Solución 2:
Dividir los polígonos traslapados en nuevos polígonos. Solución práctica pero necesita procesamiento extra (tiempo). Universidad de Sonora


Descargar ppt "Determinación de superficies ocultas"

Presentaciones similares


Anuncios Google