Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Eduardo Fernndez
Determinacin de superficies
visibles
Basado en:
Captulo 13
2 mtodos fundamentales
Diferencias
En precisin de objeto no se considera la resolucin de la
pantalla para los clculos => el dibujo en pantalla es el
ltimo paso.
En precisin de imagen, al ampliar una imagen hay que
rehacer todos los clculos.
Los algoritmos de precisin de objeto se hicieron
inicialmente para sistemas grficos vectoriales.
Los algoritmos de precisin de imagen se hicieron para
sistemas grficos de barrido.
Los algoritmos ms recientes combinan la precisin de
imagen y la precisin de objeto.
Tcnicas generales
para algoritmos eficientes
1. Coherencia
2. Transformacin en perspectiva
3. Extensiones y volmenes acotantes
4. Eliminacin de caras posteriores
5. Particin espacial
6. Jerarqua
1.- Coherencia
Coherencia = similitud local, continuidad, etc.
Motivacin de la coherencia: ahorrar clculos.
Hay 8 tipos de coherencia identificados:
1. Coherencia de objetos
2. Coherencia de caras
3. Coherencia de aristas
4. Coherencia de aristas implicadas
5. Coherencia de lneas de barrido
6. Coherencia de reas
7. Coherencia de profundidad
8. Coherencia de cuadros
1.- Coherencia
1.
Coherencia de objetos
Si un objeto A est separado de otro B, no es
necesario fijarse en la superposicin de cada
parte de A con cada parte de B
1.
Coherencia de caras
Las propiedades de las superficies varan
suavemente sobre una misma cara. Se pueden
hacer clculos incrementales.
1.
Coherencia de aristas
Una arista cambia de visibilidad slo cuando cruza
detrs de otra arista (visible) o penetra en una
cara visible.
1.- Coherencia
4.
4.
4.
Coherencia de reas
Pxeles adyacentes en general se corresponden
con una misma cara visible.
1.- Coherencia
7.
Coherencia de profundidad
Partes cercanas de una misma superficie estn
muy cerca en profundidad.
Superficies distintas en el mismo lugar de la
pantalla estn a mayor separacin de
profundidad.
8.
Coherencia de cuadros
Las imgenes del mismo ambiente en dos instantes
sucesivos en el tiempo casi siempre sern
bastante similares. Los calculos realizados para
una imagen se pueden reutilizar en la siguiente.
x2
x1
z1
z2
(-1,1,-1)
z
x (a,-a,-a)
x
(1,-1,0)
-a=zmin
Volumen en perspectiva
normalizado (Cap. 6)
(-1,1,-1)
1
0
M=
0
0
1
0
0
1
0
1 + z min
0
1
zmin -1
0
z min
1 + z min
0
y
z
z
x
Prueba minmax
No hay superposicin si:
( ((xmax2<xmin1) or (xmax1<xmin2)) and
((ymax2<ymin1) or (ymax1<ymin2)) )
T = bB + oO
T= Costo de los test de interseccin de un objeto.
b= Nmero de veces que el volumen acotante es testeado.
B= Costo de calcular un test de interseccin entre 2 v.a.
o= Nmero de veces que el objeto es testeado.
O= El costo de calcular una interseccin entre 2 objetos.
Paralela
6.- Jerarqua
Edificio
Pisos 1
Aptos 1
ALGORITMOS
Algoritmo de z-buffer
x=1
Y
Lnea de barrido
ys
zi
zi+1
xi
xi
+1
=x
+1
Algoritmo de z-buffer
Clculo de profundidad de un plano.
Ax + By + Cz + D = 0
zi = (- D - Bys)/C xi A/C
Algoritmo de z-buffer
void memoria_z
int pz;
/*la z del polgono en las coord de pxel(x,y)*/
{
for (y = 0; y< YMAX; y++){
for (x = 0; x < XMAX; x++) {
Se inicializan
escribir_pxel(x,y,valor_fondo);
las matrices
escribir_Z(x,y,0);
}
}
for (cada poligono) {
for (cada pxel en la proyeccion del poligono){
pz = valor z del polig. En las coord. (x,y);
if (pz>= leer_Z(x,y)){
escribir_Z(x,y,pz);
escribir_pxel(x,y, color del polig en (x,y));
} } } }
Algoritmo de z-buffer
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5 5 5 5
5 5 5
5 5
5
5
0
0
5
0
5
0
5
0
5
0
5
0
5
0
5
0
0
5
0
5
0
5
0
5
0
5
0
0
5
0
0
5
0
5
0
5
0
5
0
0
0
5
0
0
5
0
5
0
5
0
0
0
0
5
0
0
5
0
5
0
0
0
0
0
5
0
0
5
0
0
0
0
0
0
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Algoritmo de z-buffer
5
0
0
5
0
5
0
5
0
5
0
5
0
5
0
5
0
0
5
0
5
0
5
0
5
0
5
0
0
5
0
0
5
0
5
0
5
0
5
0
0
0
5
0
0
5
0
5
0
5
0
0
0
0
5
0
0
5
0
5
0
0
0
0
0
5
0
0
5
0
0
0
0
0
0
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
4
5
6
7
8
3
4
5
6
7
3
4 3
5 4 3
6 5 4 3
5
0
0
5
0
5
0
5
0
5
6
0
5
7
0
5
8
0
5
0
0
5
0
5
0
5
0
5
0
5
6
0
7
0
5
0
0
5
0
5
0
5
0
5
0
5
0
6
0
5
0
0
5
0
5
0
5
0
3
0
4
0
5
0
5
0
0
5
0
5
0
0
0
3
0
4
0
5
0
0
5
0
0
0
0
0
3
0
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Algoritmo de z-buffer
Y
y1
ys
y2
y3
z2
zp=zb-(zb-za)(xb-xp)/(xb-xa)
z3
X
C
F
y=
C
A
C
F
A
J
G
R
M
K
Ventana
Centro de
Proyeccin
Clculo de Intersecciones
Rayo que pasa por (x0,y0,z0) y (x1,y1,z1)
se determina por:
x=x0 + t(x1-x0),
Si x= x1 - x0 =>
y=y0 + t(y1-y0),
z=z0 + t(z1-z0)
x=x0 + t x
y=y0 + t y,
z=z0 + t z
Clculo de Intersecciones
Esfera con centro (a,b,c) y radio r:
(x-a)2 + (y-b)2 + (z-c)2 = r2 .
Clculo de Intersecciones
Plano :
Ax + By + Cz + D = 0
Clculo de Intersecciones
y
Conviene proyectar sobre el
plano que d la proyeccin
ms larga. Este es el
correspondiente a la variable
cuyo coeficiente en la
ecuacin del plano del
polgono tenga el mayor
valor absoluto
Rayo
P
Consideraciones de eficiencia
La versin sencilla del algoritmo determina la
interseccin de cada rayo con cada polgono
=> 1024pxeles x 1024pxeles x 100objetos=
100M clculos de interseccin
Entre 75% al 95% del tiempo est dedicado al clculo
de las intersecciones.
=> es importante dar estratgias que aceleren los
clculos
Consideraciones de eficiencia:
Consideraciones de eficiencia:
Jerarqua
Pisos 1
Aptos 1
Edificio
Consideraciones de eficiencia:
Particin Espacial
Consideraciones de eficiencia:
Particin Espacial
F
E
C
G
A
Consideraciones de eficiencia:
Particin Espacial
2
B
Menor coordenada z
y
P
Q
x
z
P
x
S
T
Pol. Circundante
Pol. Intersecante
Pol. Contenido
Algoritmo de Warnock
Para decidir sobre pintar o subdividir un rea hay 4 casos:
1.- Tdos los polgonos son disjuntos respecto al rea. Con el
color de fondo se puede pintar el rea.
2.- Slo hay un polgono intersecante o contenido.
3.- Hay un solo polgono que intersecta al rea y es
circundante.
4.- Hay vrios polgonos intersecantes, uno de ellos es
circundante y est enfrente de los dems polgonos. Esto
se controla con los valores z de los polgonos en los 4
vrtices del rea.
Algoritmo de Warnock
y
x
x
z
z
Algoritmo de Warnock
x
Algoritmo de Warnock
2.- Slo hay un
polg. intersec. o
contenido.
4.- Hay varios polg.
intersec., uno de ellos
es circundante y est
enfrente de los dems
polg. Esto se controla
con los valores z de los
polg. en los 4 vrtices
del rea.