Determinacin de superficies ocultas Hidden Surface Determination Definicin

  • Slides: 22
Download presentation
Determinación de superficies ocultas Hidden Surface Determination

Determinación de superficies ocultas Hidden Surface Determination

Definición �Es el proceso usado para determinar que superficies y que partes de superficies

Definición �Es el proceso usado para determinar que superficies y que partes de superficies son visibles desde un punto de vista. Fuente: https: //www. siggraph. org/education/materials/Hyper. Graph/scanline/visibility/vsible 0. htm Universidad de Sonora 2

Comparación de profundidades �El problema visibilidad se puede reducir a preguntar: dados 2 puntos,

Comparación de profundidades �El problema visibilidad se puede reducir a preguntar: dados 2 puntos, P 1 (x 1, y 1, z 1) y P 2 (x 2, y 2, z 2), ¿uno de los puntos oculta al otro? �La respuesta se hace en dos pasos: 1. ¿Están P 1 y P 2 en la misma línea de proyección? 2. 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 3

Comparación de profundidades �La comparación depende del tipo de proyección. �Si es una proyección

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, P 1 y P 2 están en el mismo proyector si x 1 = x 2 y y 1 = y 2. �Comparando z 1 con z 2 se sabe si P 1 oculta a P 2 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 4

Métodos para determinar superficies ocultas �Buffer Z (Z-buffer) �Eliminación de caras ocultas (back face

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 5

Z-Buffer �El algoritmo registra la coordenada z (profundidad) menor para todos los puntos que

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 6

Z-Buffer �Inicializar la pantalla con el color del fondo. �Inicializar el buffer z con

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 7

Ejemplo de Z-Buffer �Fuente: http: //www. idav. ucdavis. edu/education/Graphics. Notes/Z-Buffer. Algorithm/Z-Buffer-Algorithm. html �Al inicio:

Ejemplo de Z-Buffer �Fuente: http: //www. idav. ucdavis. edu/education/Graphics. Notes/Z-Buffer. Algorithm/Z-Buffer-Algorithm. html �Al inicio: �El buffer Z se inicializa a infinito Universidad de Sonora 8

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

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

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

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

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

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

Z-Buffer �Ventajas: �Funciona. �Fácil de implementar. �Desventajas: �No es eficiente. Puede pintar el mismo

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 12

Eliminación de caras ocultas �Eliminar los polígonos cuyas caras frontales no están frente a

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 13

Eliminación de caras ocultas �Un triángulo se elimina si el producto punto entre su

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. �(V 0 – P) ∙ N ≥ 0 �P es la posición de la cámara. �V 0 es el primer vértice del triángulo. �N es la normal, definida como: �N = (V 1 – V 0) x (V 2 – V 0) Universidad de Sonora 14

Eliminación de caras ocultas �Limitaciones: �Solo sirve para objetos modelados con una red (mesh)

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: https: //www. siggraph. org/education/materials/Hyper. Graph/scanline/visibility/backface. htm Universidad de Sonora 15

Algoritmo del pintor �Algoritmo básico: 1. Ordenar los polígonos usando su coordenada z. 2.

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

Algoritmo del pintor �Problemas: �El ordenamiento no es siempre posible. �S tiene z mayor

Algoritmo del pintor �Problemas: �El ordenamiento no es siempre posible. �S tiene z mayor que S’. Sin embargo, S’ debe pintarse primero. Fuente: https: //www. siggraph. org/education/materials/Hyper. Graph/scanline/visibility/painter. htm Universidad de Sonora 17

Algoritmo del pintor �Solución 1: �Para cada polígono guardar su z mínima y máxima.

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 18

Algoritmo del pintor �Si hay traslape en z se verifica que haya traslape en

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

Algoritmo del pintor Universidad de Sonora 20

Algoritmo del pintor Universidad de Sonora 20

Algoritmo del pintor �En los casos 1 y 2 no hay problema. �El caso

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 21

Algoritmo del pintor �Solución 2: �Dividir los polígonos traslapados en nuevos polígonos. �Solución práctica

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 22