hs/hl removal1 fundamentos de eliminaciÓn de superficies ocultas graficación fcc

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

Upload: iago-maza

Post on 24-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

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

HS/HL Removal 1

FUNDAMENTOS DE ELIMINACIÓN DE

SUPERFICIES OCULTAS

Graficación FCC

Page 2: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 2

HL / HSAlgorithms

Hybrid ObjectSpace

ImageSpace

HiddenLine

Hidden Surface

Taxonomy of Algorithms

Page 3: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 3

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)

Page 4: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 4

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

¿Cuál ?

Page 5: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 5

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.

Page 6: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 6

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

0 dczbyax

01,,,

d

c

b

a

zyx

0 dczbyax

),,( cba

back-face

normal pointing inside

Page 7: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 7

),Int()ˆ,ˆ,ˆ( Vzyx

0ˆˆˆ dzcybxa

01,ˆ,ˆ,ˆ

d

c

b

a

zyx

0

0

0 dczbyax

),,( cba

Inside a polygon V

Assuming, i.e.,

Furthermore,boundaryoutside

Back-Face Culling (Cont’)

Page 8: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 8

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.

Page 9: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 9

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.

Page 10: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 10

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

Page 11: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 11

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)

Page 12: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 12

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.

Page 13: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 13

6. Depth Sorting Algorithm(List Priority Algorithms)

C

B

A

y

x

z

CBA

z

x

sorting

painting

Painter’s Algorithm !!!

(A,B,C)

Page 14: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 14

Depth comparison

minz

maxz

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

Page 15: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 15

Establishing Depth Order

List: lists those triangles that are in front of itCounter: how many triangle are behind itTriangle: list of object triangles

triangle counter list1 0 3 5 22 33 2 2 5 64 0 3 55 4 26 1 5

Page 16: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 16

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.

Page 17: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 17

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.

Page 18: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 18

5. Depth-Buffer Algorithms

),( yx

(z-buffer algorithms)

Frame buffer intensity

Depth buffer depth

zx

y

Page 19: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 19

Page 20: HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC

HS/HL Removal 20

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 } }}