Docstoc

fundamentos de eliminacion de superficies ocultas

Document Sample
fundamentos de eliminacion de superficies ocultas Powered By Docstoc
					FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS

Graficación FCC
HS/HL Removal 1

Taxonomy of Algorithms
HL / HS Algorithms

Image Space

Hybrid

Object Space

Hidden Surface
HS/HL Removal

Hidden Line
2

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)

HS/HL Removal

3

1. Introducción
¿Por qué eliminar HL/HS ?

¿Cuál ?

HS/HL Removal

4

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.
HS/HL Removal 5

El Método de la normal al plano (Back-Face Culling)
back-face

normal pointing inside (a, b, c)
ax  by  cz  d  0 ax  by  cz  d  0
a   b x, y, z,1   0 c   d   
HS/HL Removal 6

Back-Face Culling (Cont’)
ˆ ˆ ˆ Assuming ( x, y, z )  Int(V ), ˆ ˆ ˆ ax  by  cz  d  0 , i.e., (a, b, c) Inside a polygon V
a   b ˆ ˆ ˆ x, y, z,1   0 c   d   

Furthermore,
ax  by  cz  d  0

0 0

boundary outside
7

HS/HL Removal

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.
HS/HL Removal 8

Back-face culling (Another way)
The back-face culling can be determined easily with dot product.

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.
HS/HL Removal 9

In other words.
1. V=(x1-ex, y1-ey, z1-ez) 2. A= ( P2 - P1 ) x ( P3 - P2 ) 3. Calculate V · A If V · A > 0 then display If V · A < 0 then not display

HS/HL Removal

10

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)

HS/HL Removal

11

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.
HS/HL Removal

12

6. Depth Sorting Algorithm
(List Priority Algorithms)
y x

sorting
A B C x

painting (A,B,C)
z

A B C

z

Painter’s Algorithm !!!
HS/HL Removal 13

Depth comparison
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 Z A

minz
maxz B XY-plane
HS/HL Removal 14

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
triangle 1 2 3 4 5 6 counter 0 3 2 0 4 1 list 352 256 35 2 5
HS/HL Removal 15

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.

HS/HL Removal

16

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.
HS/HL Removal 17

5. Depth-Buffer Algorithms
(z-buffer algorithms)
y

( x, y )

Frame buffer intensity
x

z

Depth buffer depth
HS/HL Removal 18

HS/HL Removal

19

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 } } }
HS/HL Removal 20


				
DOCUMENT INFO
Shared By:
Categories:
Stats:
views:1040
posted:12/13/2007
language:English
pages:20
Manuel  Arce García Manuel Arce García IT Systems E http://www.programmersheaven.com/
About Generally, boring and uninteresting devoted to work and learn new things about information technology. Always looking for new applications of technology in work and daily life. Sharing knowledge for a better world ...