La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC.

Presentaciones similares


Presentación del tema: "HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC."— Transcripción de la presentación:

1 HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

2 HS/HL Removal2 HL / HS Algorithms Hybrid Object Space Image Space Hidden Line Hidden Surface Taxonomy of Algorithms

3 HS/HL Removal3 ALGORITMOS DE ESTUDIO El método de la normal al plano El Algoritmo del Pintor El algoritmo de Z-Buffer El algoritmo Árboles de Partición del Espacio Binario (BSP Trees) (Tarea 5: investigar)

4 HS/HL Removal4 1. Introducción ¿Por qué eliminar HL/HS ? ¿Cuál ?

5 HS/HL Removal5 Introducción Para producir una visión realista de un cuerpo hemos de determinar qué curvas y superficies pueden ser observadas desde un punto de vista dado y cuáles no. El problema general que consiste en hacer que los objetos se vuelvan opacos en el mundo de los gráficos tridimensionales se denomina eliminación de las superficies ocultas o eliminación de líneas ocultas, puesto que implica eliminar aquellas superficies o líneas del dibujo que habitualmente permanecerían ocultas. A continuación ser verán algunos algoritmos que se dedican al tratamiento de dicho problema.

6 HS/HL Removal6 El Método de la normal al plano (Back-Face Culling) back-face normal pointing inside

7 HS/HL Removal7 Inside a polygon V Assuming, i.e., Furthermore, boundary outside Back-Face Culling (Cont’)

8 HS/HL Removal8 Back-Face Culling (Cont’) Summary Calculate a surface normal, N = (A,B,C). N = ( P2 - P1 ) x ( P3 - P2 ) Compute D in plane equation by substituting any polygon vertex into the plane equation. Plane(P) = Ax + By + Cz + D = 0 Calculate Plane(eyept) to determine if eye is above or below. This corresponds to checking the sign of D.

9 HS/HL Removal9 Back-face culling (Another way) Take a vector V from the eye to any point within the polygon (for example, from the eye to a vertex) Let A be the normal of the polygon Then, compute V*A. If it is positive then do not display. If it is negative, the face is facing the camera and might be seen. The back-face culling can be determined easily with dot product.

10 HS/HL Removal10 In other words. 1. V=(x 1 -e x, y 1 -e y, z 1 -e z ) 2. A= ( P2 - P1 ) x ( P3 - P2 ) 3. Calculate V · A If V · A > 0 then display If V · A < 0 then not display

11 HS/HL Removal11 ALGORITMO DEL PINTOR Se procede a dibujar todos los polígonos que aparecen en la escena de atrás hacia adelante, de manera que los polígonos situados en primer plano se dibujan sobre los polígonos situados en el fondo. De esta manera, los polígonos más cercanos obstaculizan la visión de los polígonos más lejanos. Los objetos que aparecen en primer plano (en este caso, las personas, pintados sobre los objetos del fondo)

12 HS/HL Removal12 ALGORITMO DEL PINTOR: Problema del solapamiento mutuo La clasificación se realiza sobre la coordenada z máxima de cada polígono. Existe una situación en la cual el algoritmo del pintor no es capaz de realizar una clasificación correcta de los polígonos que se pretenden dibujar. Se trata del denominado solapamiento mutuo que tiene lugar cuando tres o más polígonos se solapan entre sí de manera circular. Si dichos polígonos fuesen clasificados mediante el algoritmo del pintor, no habría un orden correcto en el cual clasificarlos. La única solución totalmente satisfactoria consistiría en dividir cada uno de los polígonos en dos.

13 HS/HL Removal13 6. Depth Sorting Algorithm (List Priority Algorithms) C B A y x z C B A z x sorting painting Painter’s Algorithm !!! (A,B,C)

14 HS/HL Removal14 Depth comparison min z max z A B Z XY-plane min(z-coord of A)> max(z-coord of B)  A behind B min(z-coord of B)> max(z-coord of A)  B behind A

15 HS/HL Removal15 Establishing Depth Order List: lists those triangles that are in front of it Counter: how many triangle are behind it Triangle: list of object triangles trianglecounterlist 103 5 2 23 322 5 6 403 5 542 615

16 HS/HL Removal16 EL ALGORITMO Z-BUFFER I El único sistema realmente exhaustivo para llevar a cabo una clasificación de profundidades implicaría determinar la profundidad de cada punto sobre la superficie de cada polígono en la pantalla y proceder a dibujar sólo los puntos que estén más cercanos con respecto al espectador. Afortunadamente, sólo es preciso clasificar aquellos puntos que van a ser dibujados, es decir, aquellos que corresponden a los pixels situados en el puerto de visualización. El algoritmo Z-buffer determina qué puntos situados sobre determinados polígonos están más cerca del espectador para cada píxel en el puerto de visualización. En cada posición del píxel x,y sobre el plano de visión, la superficie con la menor coordenada z en esa posición es visible.

17 HS/HL Removal17 EL ALGORITMO Z-BUFFER II Cada vez que un punto de la superficie de un polígono se dibuje, la coordenada z del punto es comparada con el valor actual de dicha posición en el buffer. Si la coordenada z en el buffer es menor que la del nuevo punto, el nuevo píxel no se dibuja, ya que dicho punto estaría más lejos que el punto anterior y formaría parte de una superficie oculta, en caso contrario el nuevo píxel se dibuja sobre la anterior y la coordenada z del nuevo píxel se coloca, reemplazando al anterior.

18 HS/HL Removal18 5. Depth-Buffer Algorithms (z-buffer algorithms) Frame buffer intensity Depth buffer depth z x y

19 HS/HL Removal19

20 HS/HL Removal20 Summary of Z-buffer algorithm: for all i,j { Depth[i,j] = MAX_DEPTH Image[i,j] = BACKGROUND_COLOUR } for all polygons P { for all pixels in P { if (Z_pixel < Depth[i,j]) { Image[i,j] = C_pixel Depth[i,j] = Z_pixel }


Descargar ppt "HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC."

Presentaciones similares


Anuncios Google