Você está na página 1de 28

2010

OCULTAMIENTO DE SUPERFICIES

Montero Onofre Alex


Alfaro Yangaly Hugo
Zarate Castaeda Etmee
Jimenez Aguado Pablo

2010 - I
01/06/2010
Universidad Nacional Mayor de San Marcos FISI 2

Indice

1. INTRODUCCION 3

2. CONCEPTO DE COHERENCIA 4

3. CLASIFICACION DE LOS ALGORTIMOS DE OCULTAMIENTO 5

PRECISION A LA IMAGEN 6

PRECISION AL OBJETO 7

4. ALGORITMO DE BACK-FACE CULLING 8

5. ALGORITMO DE WARNOCK 14

6. ALGORITMO DE Z-BUFFER 17

7. ALGORITMO DEL PINTOR 21

8. ALGORITMO DE RBOL BSP 23

9. CONCLUSIONES 27

10. BIBLIOGRAFIA 28 2
P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 3

Introduccin

Hasta el momento hemos aprendido como construir y proyectar objetos tridimensionales,


pero siempre se ven todas las partes del objeto. Esto da a nuestros dibujos una cierta calidad
de transparencia. Las figuras que se obtienen de esta forma reciben el nombre de modelos
almbricos ya que slo presentan los contornos de objetos supuestamente slidos. Los
objetos complejos se pueden convertir rpidamente en un enredo de segmentos y curvas sin
sentido. Es difcil identificar que lneas pertenecen a la parte frontal de objeto y cuales estn
situadas detrs.

Otra consideracin a tomar en cuenta cuando queremos lograr una simulacin de carcter
real es que en el mundo real un objeto puede obstaculizar la visualizacin de otro objeto, es
decir, los objetos pueden interponerse, ocultando la visin de otros.

El problema general consiste en hacer que los objetos se vuelvan opacos en el mundo de los
grficos tridimensionales y a esto se le denomina eliminacin de superfcies ocultas.

Este problema no es tan sencillo como cabra pensar en un principio. De hecho, es el ms


complejo en trminos de programacin. Lo que la naturaleza hace con facilidad (y una gran
cantidad de procesamiento paralelo) debemos hacerlo nosotros con un nmero elevado de
clculos. Existen varias soluciones para el problema de las superficies y lneas ocultas.

En este apartado veremos las tcnicas para eliminar aquellas lneas, curvas o superficies que
estaran ocultas en una escena y as aumentar el realismo de sta, es decir, veremos
diferentes algoritmos que pueden solucionar este problema y determinar qu curvas o
superficies pueden ser observadas desde un punto de vista dado y cuales no.
3
P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 4

Concepto de Coherencia
Podemos definir la coherencia como el grado en el cual las partes de un entorno muestran
similitudes locales. Esta propiedad se puede aprovechar para aumentar la eficiencia de los algoritmos
ya que permite ahorrar clculos cuando las propiedades de un objeto varan suavemente. Se han
identificado distintas clases de coherencia:

Coherencia de objeto. Si un objeto est completamente separado de otro, no es necesario


comparar sus componentes (caras, aristas...) entre s para comprobar si se solapan.

Coherencia de arista. La visibilidad o no de una arista cambia slo si se cruza con un objeto
visible.

Coherencia de arista implcita. No es necesario calcular todos los puntos de la recta que se
forma cuando dos planos se cruzan, solo son necesarios dos.

Coherencia de lnea de barrido (scan-line). Los objetos definidos en el espacio deben ser
llevados a la pantalla en forma de pxeles (scan-conversion), esto se hace por medio de lneas que
barren la imagen (Scan-line). Pues bien, la coherencia reside en el hecho de que la variacin de una
lnea a otra es pequea, lo cual se puede tener en cuenta para simplificar las computaciones.

Coherencia de cara. Las propiedades de las caras de los objetos varan suavemente, lo que
permite hacer los clculos de modo incremental sin tener que hacer esfuerzos innecesarios.

De forma similar a esta ltima se definen otros tipos de coherencia como la de rea y la de
profundidad.
4 P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 5

Clasificacion de los algoritmos de Ocultamiento


Las tcnicas y algoritmos de ocultamiento se pueden dividir en dos grupos segn el enfoque
que se le d:
PRECISION A LA IMAGEN (image-precision): Determinar cual de los n objetos en la
imagen es el visible en cada pixel. Esto supone un esfuerzo computacional proporcional a
p*n; donde p representa el nmero de pxeles.

PRECISION AL OBJETO (object-precision): comparar directamente los objetos


eliminando las partes no visibles. De este modo el esfuerzo computacional es proporcional
2
a n . Aunque parece menor que en el caso anterior (habitualmente n es menor que p), los
algoritmos son ms difciles de implementar.

Otra diferencia entre ambas aproximaciones reside en el hecho de que los algoritmos de
precisin a la imagen son ejecutados directamente a la resolucin del dispositivo de salida
(pantalla, impresora, etc.), mientras que en los otros se realiza el clculo de modo
independiente, pero es necesario un paso posterior de traduccin a la resolucin deseada.
5

Debemos aadir que esta divisin de los algoritmos no es excluyente, ya que existen
P gin

algoritmos que combinan clculos de ambos grupos.

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 6

PRECISION A LA IMAGEN

Se realizan en el sistema de coordenadas de la imagen.


Se determina cual de los n objetos es visible en cada uno de los p pxeles de la imagen.
Algoritmo
PARA (cada pxel de la imagen) {
Determinar el objeto ms cercano al observador que
es atravesado por el rayo proyector a travs del
pxel;
Dibujar el pxel con el color apropiado;
}

Se observa que compara todos los objetos con cada pxel, su complejidad es O(n*p)

Este algoritmo depende del dispositivo utilizado y el tamao de la ventana. Al cambiar la


cantidad de pxeles se deben rehacer los clculos.

Algoritmos: Z Bufer, Warnock, Scan-Line , Back-Face Culling

Los algoritmos de precisin de imagen se hicieron para sistemas grficos de barrido.


6
P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 7

PRECISION AL OBJETO

Realizan el proceso de clculo en el sistema de coordenadas del objeto.


Se compara directamente cada objeto con el resto de los elementos, eliminando objetos enteros,
tambin partes no visibles del objeto.

Algoritmo
PARA (cada objeto de la escena) {
Determinar aquellas partes del objeto
cuya vista no esta obstruida por:
el mismo objeto;
otro objeto;
Dibujar esas partes con el color apropiado;
}

2
Vemos que cada objeto se compara con el resto, su complejidad es O(n ).
No se considera la resolucin de la pantalla para los clculos => el dibujo en pantalla es el ltimo
paso.
Algoritmos: algoritmo del Pintor, Algoritmo utlizando el rbol BSP

Los algoritmos de precisin de objeto se hicieron inicialmente para sistemas grficos vectoriales.
7
P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 8

ALGORITMOS DE OCULTAMIENTO DE SUPERFICIES

1. SUPERFICIES OCULTAS: BACK FACE RENOVAL (CULLING)

El objetivo de ste cdigo es eliminar superficies no visibles de un objeto y eliminar superficies


de un objeto ocultas por otros objetos.

Mtodo Back Face culling:

1. Sirve para determinar las caras de un objeto que estn detrs y no son visibles
a. Cada cara define un plano que divide el espacio en dos semiespacios, uno 'in' y
otro 'out'
b. El subespacio 'in' es aqul en que se encuentra el objeto (al menos la parte del
objeto que tiene a esta cara por frontera con el exterior)
c. La cara est detrs respecto de un centro de proyeccin CP si el CP est en el
semiespacio 'in' (el objeto tapa a la cara)
d. La cara est delante respecto del CP si ste se encuentra en el semiespacio 'out'
2. Prefiltro para resto de algoritmos de superficies ocultas: descarta caras que seguro que
no son visibles (culling)
a. Si back face indica que una cara est detrs, la cara no es visible
b. Si back face indica que una cara est delante, puede que est oculta si el objeto no
es convexo o si tiene otro objeto delante
3. Poco costoso.

Algoritmo back face:


8 P gin

1. Calcular la normal a cada cara que apunta hacia afuera del objeto (hacia el semiespacio
'out')

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 9

2. Estudiar signo del coseno del ngulo entre la normal a la cara y la direccin de proyeccin
(va del objeto hacia el centro de proyeccin):
a. Si es > 0, la cara est delante y no se descarta (puede que sea visible)
(el centro de proyeccin y estn en el mismo semiespacio: el 'out')
b. Si es < 0, la cara est detrs y se descarta (no visible)
(el centro de proyeccin est en semiespacio 'in' y est en semiespacio 'out')
c. Si es = 0, la cara est de canto y se descarta (si es visible, se reducir a una arista
que de todas maneras aparecer al proyectar una cara vecina)

Clculo de la normal:

1. En 2D
a. Se ordenan vrtices en direccin antihorario.
b. Normal a una arista se calcula como producto vectorial de vector de la arista con
vector unitario de eje OZ
c. Ejemplo: Si tenemos un polgono de vrtices A B C D (sentido antihorario), la
normal a la arista AB es:

2. En 3D
a. Se ordenan vrtices de cada cara en sentido antihorario vistos desde fuera del
objeto
b. Normal a la cara es el producto vectorial de dos aristas consecutivas
c. Ejemplo: Si una de las caras del objeto tiene los vrtices A B C (en sentido
antihorario vistos desde fuera del objeto), la normal a la cara ABC es, por ejemplo:

Clculo del signo del coseno del ngulo entre la normal y la direccin de proyeccin

1. Basta estudiar el signo del producto escalar :


9 P gin

2. Obtencin de la direccin de proyeccin a usar:

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 10

a. El vector va del objeto hacia el centro de proyeccin


b. Si el centro de proyeccin CP = (Cx,Cy,Cz,0) es un punto impropio, coincide con CP

c. Si el centro de proyeccin CP = (Cx,Cy,Cz,Cw) es un punto propio (Cw no es cero),


es el vector que va de uno de los vrtices de la cara (p.ej., el punto A) al centro
de proyeccin:

Observaciones:

1. Se puede hacer back face antes del prewarping: ahorra proceso de proyeccin
2. Si se hace prewarping, el signo del producto escalar es el signo de la coordenada Z de la
normal a la cara
(tras prewarping, la proyeccin es ortogrfica con direccin/CP (0,0,1,0))
3. No es preciso normalizar las normales (hacerlas unitarias), aunque este clculo viene bien
para otros algoritmos (iluminacin)
4. En el clculo de la direccin de proyeccin para CP propios, da igual el vrtice de la cara
escogido (relacin con distancia de punto a plano del producto )
5. Otra forma alternativa de clculo del signo:
1. Si Ax+By+Cz+D=0 es la ecuacin del plano de la cara y
2. (A, B, C) es un vector normal a la cara apuntando hacia afuera
3. entonces el signo a estudiar es el de ACx+BCy+CCz+DCw (relacin con distancia de
punto a plano)

Back face culling (tambin llamado eliminacin del enfrentamiento trasero)


La forma ms simple de eliminar polgonos innecesarios es eliminar todos aquellos que el
10

observador no puede ver. Esto se conoce como back face culling. Ya que la mayora de los
objetos 3D son completamente cerrados, los polgonos no enfrentados al observador estn
P gin

siempre bloqueados por polgonos que s lo estn, excepto cuando el observador est dentro del

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 11

objeto. El enfrentamiento de un polgono esta definido por el winding u orden en el que sus
vrtices se envan al renderizado. Un renderizado puede definir un winding en el sentido de las
agujas del reloj o contrario como enfrentamiento hacia el frente o hacia atrs. Una vez que un
polgono se transform a un espacio en la pantalla, su winding puede ser verificado y si esta en la
direccin opuesta, no es dibujado. Por su puesto, back face culling no puede ser usado con
volmenes abiertos o degenerados.

Estructuras de datos espaciales:


Tcnicas ms avanzadas usan estructuras de datos para eliminar objetos que estn fuera del
volumen visible o tapados por otros objetos. Las estructuras de datos ms comunes son
particionado binario del espacio, y eliminacin de celda y portal.

Mejoras posteriores:
Si bien el proceso de rasterizacin bsico hace dcadas que se conoce, las aplicaciones modernas
siguen haciendo optimizaciones y adiciones para aumentar el rango de posibilidades del motor
de rasterizacin.

Filtrado de texturas:
Las texturas son creadas a resoluciones especficas, pero ya que la superficie en donde estn
aplicadas puede estar a cualquier distancia del observador, estas pueden mostrarse en tamaos
arbitrarios en la imagen final. Como resultado, un pxel en la pantalla usualmente no
corresponde directamente a un texel. Alguna tcnica de filtrado debe ser aplicada para lograr
imgenes claras a cualquier distancia. Hay varios mtodos, con diferentes relaciones entre
calidad de imagen y complejidad computacional.

Environment mapping (mapeado del entorno):


El mapeado del entorno es una forma de mapeado de texturas en la cual las coordenadas de la
textura son dependientes de la vista. Una aplicacin comn, por ejemplo, es simular reflejo en
un objeto con brillo. Uno, por ejemplo, se puede mapear el entorno de un cuarto a una copa de
metal, como el observador se mueva alrededor de la copa, las coordenadas de la textura en los
vrtices de la copa se mueven proporcionalmente, dando la ilusin de metal reflectivo.

Bump mapping (mapeado de imperfecciones, golpes, rugosidad):


Bump mapping es otra forma de mapeado de textura que no provee a los pxeles de color sino de
profundidad. Especialmente con pxel shaders modernos, bump mapping crea la sensacin de
rugosidad dependiente de la luz y el punto de vista en una superficie para aumentar el realismo.
11

Nivel de detalle (LOD):


En muchas aplicaciones modernas, el nmero de polgonos en una escena puede ser
P gin

impresionante. Sin embargo, un observador en una escena solo podr discernir detalles de

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 12

objetos cercanos. Los algoritmos de nivel de detalle varan la complejidad de la geometra en


funcin de la distancia al observador. Los objetos justo enfrente del observador pueden ser
mostrados en su completa complejidad mientras que los objetos que estn ms lejos pueden ser
simplificados dinmicamente.

Sombras:
Los clculos de iluminacin en el tradicional proceso de rasterizacin no tienen en cuenta la
obstruccin de objetos. El mapeado de sombras y el mapeado de volmenes de sombras son dos
tcnicas comunes modernas para crear sombras.

Aceleracin por hardware:


Comenzando en los 90', la aceleracin por hardware para consumidores normales de
computadoras de escritorio se ha convertido en la norma. Mientras que los programadores
grficos se haban ms tempranamente basado en ensamblador codificado a mano para que sus
programas funcionen ms rpido, la mayora de los programas modernos estn escritos para
funcionar a travs de una de las existentes APIs grficas, las cuales manejan a la GPU.
Las ltimas GPUs poseen soporte para Pxel Shaders programables los cuales mejoran
drsticamente las posibilidades de los programadores. La tendencia est apuntada a la completa
programabilidad de la pipeline (tubera, conducto) grfica.

Procesador de imgenes rasterizadas:


Un procesador de imgenes rasterizadas, o RIP, es un dispositivo que se usa en los sistemas de
impresin para producir una imagen de mapa de bits. Posteriormente, el bitmap generado por el
procesador se enva a un dispositivo de impresin. La entrada de datos en el RIP puede ser una
pgina generada en un lenguaje de descripcin de pgina de de alto nivel como puede ser
PostScript, PDF (del acrnimo ingls portable Document Format) o XPS. Tambin puede ser otro
bitmap de un dispositivo cuya salida es enviada a la entrada del RIP. En ltima instancia, el
dispositivo RIP aplica algoritmos de interpolacin y suavizado sobre el bitmap de entrada para
generar el bitmap de salida.
La finalidad del procesamiento para el que se ha concebido un RIP es conseguir una imagen
rasterizada de alta resolucin a partir de una informacin digital vectorial. Inicialmente, los
dispositivos RIPs eran una etapa de la electrnica del hardware que reciba la descripcin de la
pgina a travs de una interfaz, (generalmente la RS232) y generaba una salida que
posteriormente se usaba para habilitar o deshabilitar cada pxel en tiempo real del dispositivo de
salida como pudiera ser el escner de una filmadora de fotolitos.
Inclusive, un RIP se puede implementar en un componente sofware del sistema operativo o
12

como un firmware ejecutado en un microprocesador del interior de la impresora. Ghostscript y


GhostPCL son ejemplos de software RIPs. Cada impresora PostScript contiene un RIP en su
P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 13

firmware. Los RIPs ms recientes guardan la compatibilidad hacia atrs con photosetters por eso
son capaces de soportar lenguajes ms antiguos.

Pasos de un RIP:
Interpretacin. Este es el paso donde el lenguaje de descripcin de pgina soportado se
transforma en una representacin de una pgina particular. Muchos RIPs procesan
pginas con tanta intensidad que el funcionamiento habitual de la mquina es solo para la
pgina en curso, es decir, se proceso una sola pgina cada vez. Una vez que la pgina se
ha generado se procesa la siguiente.
Renderizado. Proceso a travs del cual la representacin interna particular se transforma
en un bitmap de tono continuo. Hay que hacer notar que, en la prctica, la interpretacin
y el renderizado se hacen juntos con bastante frecuencia. Los lenguajes simples (en su
mayor parte los ms antiguos) se disearon para trabajar con mnimos requerimientos de
hardware, por eso tienden a ejecutar el renderizado directamente.
Proyeccin. Para que se imprima, un bitmap de tonos continuos se ha de transformar
previamente en otro de tonos medios (patrones de puntos). Hay dos mtodos o tipos
para este paso. La proyeccin por modificacin en la amplitud (AM) y la proyeccin
estocstica o por modulacin en la frecuencia (FM). En la proyeccin AM, la variacin del
tamao de los puntos depende de la densidad del objeto y sus valores tonales. Los puntos
se colocan en una cuadrcula fija pero son mayores si corresponden a un rea de la
imagen de alta densidad. En la proyeccin FM, el tamao de los puntos permanece
siempre constante y se ubican en un orden aleatorio para crear reas de imagen ms
claras u oscuras. El emplazamiento de los puntos, y la densidad de estos, se controla a
partir de un sofisticado algoritmo matemtico.
Los RIP se usan en las impresoras lser para comunicar las imgenes rasterizadas al lser de
barrido de la impresora.

13 P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 14

2. ALGORITMO DE WARNOCK
Ms complejo que Z-buffer, pero no requiere tanta memoria

Se suele usar con caras triangulares para simplificar comprobaciones de solapamiento

Idea es buscar reas rectangulares de la pantalla que tengan color uniforme: el del fondo o el
de una cara

Procedimiento interno
1. Preproceso semejante al de Z-buffer:
1. matrices de transformacin
2. back face
3. clipping
4. prewarping
2. Se transforman las caras a coordenadas de pantalla
3. Se calcula la ecuacin del plano correspondiente a cada cara transformada
4. Se tiene lista de rectngulos pendiente de estudio;
se comienza con rectngulo que cubra toda la pantalla
5. Se toma un rectngulo de la lista:
1. Si el rectngulo es del tamao de un pxel, se obtienen todas las caras
(triangulares) cuya proyeccin contiene al pxel (el pxel est dentro de su
proyeccin):
1. Si ninguna cara contiene al pxel, se pinta de color de fondo
2. Si al menos una cara contiene al pxel, se le da el color de la cara ms
cercana (|z| menor) en ese punto
2. Si el rectngulo es mayor que un pxel, se obtienen todas las caras cuya
proyeccin se solapa con el rectngulo:
1. Si ninguna cara se solapa, se rellena el rectngulo con el color de fondo
2. Si el rectngulo se encuentra completamente dentro de la proyeccin de
una cara, y esta cara es la ms cercana de las que se solapan con el
rectngulo, se rellena con el color de esta cara
3. Si no se da ninguno de estos casos, se subdivide el rectngulo
14 P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 15

Comprobciones de solpmiento
1. Cara P1P2P3, rectngulo dado por l(eft), r(ight), b(ottom), t(op)
1. b(ottom) tiene coordenada Y mayor que top en la pantalla
2. Se calculan xmin = min (x1,x2,x3) , etc.
2. Se realizan las siguientes comprobaciones hasta que se determine el tipo de
solapamiento:
1. Minimax test: Si se cumple alguna de las condiciones siguientes, no hay
solapamiento
1. xmax < l
2. xmin > r
3. ymin > b
4. ymax < t
2. Comprobacin de interseccin arista rectngulo (solapamiento parcial):
1. Para borde l(ef), si l no est entre x1 y x2, no hay interseccin; en caso
contario:
1. Se calcula la Y de interseccin con arista P1P2

2. Si la Y de interseccin est entre t(op) y b(ottom), hay interseccin


2. Si no hay interseccin, se repite proceso para resto de aristas y bordes del
rectngulo hasta encontrar interseccin
3. Si no hay ninguna interseccin, se contina con siguiente comprobacin
4. Si hay interseccin, no se comprueba ms.
3. Comprobacin de tringulo dentro (solapamiento parcial):
1. Si todos los vrtices del tringulo dentro de rectngulo, el tringulo est
dentro del rectngulo
2. Se comprueba si uno de los vrtices estn en zona 'in' respecto de todos
los bordes
4. Comprobacin de rectngulo dentro (solapamiento total):
1. Si todos los vrtices del rectngulo dentro de tringulo, el rectngulo est
dentro del tringulo
2. Se comprueba si uno de los vrtices estn en zona 'in' respecto de todas
las aristas
5. Si no, el tringulo y el rectngulo son disjuntos (no hay solapamiento)
15
P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 16

Comprobcio n de proximidd
1. Se realiza cuando rectngulo est completamente dentro de una cara
2. Se calcula distancia (Z) de las esquinas del rectngulo para los planos de todas las caras
cuya proyeccin se solapa con rectngulo
1. Si una de las caras tiene distancias menores que todas las dems (la mayor de sus
distancias es menor que cualquiera de las del resto de las caras), esta es la cara
ms cercana
2. Si esto no sucede, o si la cara ms cercana no incluye al rectngulo por completo,
se subdivide

Observciones
1. Comprobacin de si un punto est en zona 'in' de una arista se realiza de forma
semejante al algoritmo de back face removal: se sustituyen coordenadas del punto en
ecuacin de la recta y se ve el signo
(Ax+By+C > 0: out, < 0: in)
2. Clculo de distancias (coordenada z) se hace de forma semejante a algoritmo de Z-
bufer, a partr de ecuacin del plano de la cara
1. No hace falta pasar de coordenadas de pantalla a coordenadas de mundo real
2. Se puede ahorrar una divisin pasando a una ecuacin del plano del tipo (C=1):
Ax+By+z+D=0 ; z = -D-Ax-By
3. Se puede aprovechar informacin de comprobaciones previas:
1. Si tringulo es disjunto de un rectngulo, tambin lo es de todas sus subdivisiones
2. Si un tringulo tapa a un rectngulo, tambin tapa a todas sus subdivisiones
4. Se puede sofisticar la comprobacin de proximidad con tcnicas semejantes a las del
algoritmo del pintor
1. S' detrs de plano de S
2. S delante de plano S'
16
P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 17

3. El Algoritmo Z-Buffer

Es un mtodo de tipo espacio-imagen; que consiste en que cada vez que realiza el renderizado

verifica que no se haya dibujado antes en la posicin del pixel que est ms cerca de la posicin

respecto de la cmara.

A diferencia con algoritmo del pintor no es necesario clasificar un nmero infinito de puntos.

Solo es preciso especificar aquellos que van a ser dibujados, es decir aquellos que corresponden

a los pixeles ubicados en los puertos de visualizacin donde la magnitud del numero de pixeles es

finita a diferencia de los puntos que se encuentran en la superficie de un polgono.

Entonces lo que hace el Algoritmo Z-Buffer registra que se dibuja en cada pixel del puerto de

visualizacin, as podramos estar seguro que se muestran aquellos pixeles que representan los

puntos ms cercanos al espectador. Se estara entonces llevando a cabo una clasificacin de

profundidades separada de cada pixel en el rea de la pantalla correspondiente al puerto de

visualizacin.

17 P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 18

Para activarlo utilizando el OpenGL se har una llamada al:

glEnable (GL_DEPTH_TEST)

Esta llamada le dice al OpenGL que active el este de profundidad. Adems, cada vez que se

redibuje la escena, aparte de borrar el bufer de color, hay que borrar el bufer de profundidad, y

eso se realiza con la llamada a:

glClear (GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT).

Por ultimo, y no menos importante, al momento de inicializar OpenGL se le tiene que decir que

cree l buffer de profundidad. Esto se realiza al definir el modo visualizacin.

Sin Z- Buffer

Con Z-Buffer
1in
8

g
P

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 19

Cuando el Algoritmo Z-Buffer funciona correctamente, no aparecen superficies ocultas


transparentadas; Sin embargo, presentan dos inconvenientes: tiempo y memoria (debido a estos
detalles esta funcin viene implementada en las tarjetas graficas de hardware actuales).
Se requieren de dos areas de memoria para implementar el bufer de profundidad y el bufer de
renovacin. El buffer de profundidad se utiliza para almacenar los valores de Z para cada posicin
x, y a medida que se realizan las comparaciones en el segundo buffer se almacena los valores de
intensidad de cada posicin.

Valores Almacenados por el Z-Buffer

Las profundidades son representadas por los nmeros de cada celda de la matriz que representa
al puerto de visualizacin de tal manera que el 80 representa al pixel ms alejado del observador.
Inicialmente el Z-Buffer se encuentra vacio (cargados con ceros), luego aadimos un polgono de
profundidad constante al buffer vacio y observamos la matriz resultante , luego se aade un
polgono mas de profundidad constante tambin y con profundidades distintas y observamos los
cambios que sufre cada celda con respecto al valor inicial.
19

Una implementacin del algoritmo seria:


P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 20

Void z_Buffer(){ int x, y;


for(y=0;y<YMAX;y++){
for(x=0;x<XMAX;x++){
WritePixel(x,y,color);
WriteZ(x,y,0);
}
}
}
//Este metodo limpia el frame Buffer y el Z-Buffer
//en lo que respecta al eje Z

for (cada poligono){


for(cada pixel en la proyeccion del poligono){
double pz=valor de z en las coordenadas x,y
if(pz>=Read(x,y)){
Write(x,y,pz);
WritePixel(x,y,color del pixel en cordenadas x,y);
}
}
}
//este metodo actualiza el Buffer de renovacion con los valores
//ya comparados en el Z-Buffer

Si algn otro objeto se tiene que renderizar en el mismo pixel la tarjeta grafica realiza las
comparaciones y elije la ms cercano al observador. Entonces este valor es guardado en el Z-
Bufer, reemplazando al valor antiguo. Esto permitir la correcta representacin de los objetos.
LOS OBJETOS CERCANOS OCULTAN A LOS MAS LEJANOS
Ahora la distribucin de la distancia del Z-Buffer no es por igual, para esto existe una variacin
del Z-Buffer cuya precisin de los resultados estn mejor distribuidos, esta se llama W-Bufer.

Para dibujar una nueva escena, el Z-Buffer deber limpiarse a un valor definido, normalmente es
1.0 porque este valor es el lmite superior para una escala entre 0 y 1. Esto implica que no hay
objetos ms alejados en ese punto en el frustum de visin.

La invencin de este concepto de Z-Buffer se suele aplicar a Edwin Catmull. Realmente tambin a
20

Wolfgang Straber describi esta idea en su tesis doctoral de 1974.


P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 21

Algunas Desventajas y Ventajas:


La gran ventaja de este mtodo es que es infalible. No importa lo como sea la imagen,
siempre dar resultados impecables.
Los inconvenientes: la dificultad de programacin, la gran cantidad de memoria necesaria
para mantener el buffer de pantalla, y la excesiva lentitud del sistema.
En grandes ordenadores el proceso puede tomar algunos minutos , mientras que en
sistemas caseros , puede tomar horas e incluso das dependiendo de de la complejidad de
la imagen .
Para disminuir en medida la cantidad de memoria necesaria, se ideo el mtodo de la LINEA DEL
EXAMEN que es idntico al Z-Buffer solo que en vez de almacenar toda la pantalla, se almacena
solo una lnea de pixeles de cada vez, tratando nicamente los puntos cuya proyeccin
pertenecen a las coordenadas del Scan. Y repitiendo el mismo proceso para todas las lneas de
pantalla, se consiguen resultados como el sistema Z-Bufer ; ahora respecto a este mtodo se
requiere de mayor dificultad de programacin y tiempos de procesos.

4. Algoritmo del pintor


El algoritmo del pintor es una de las soluciones ms simples para el problema de visibilidad en
los grfcos 3D por computadora. Cuando se proyecta una escena de tres dimensiones en un
plano de dos es necesario determinar que polgonos son visibles y cules no.

El nombre "algoritmo del pintor" se refiere a un pintor que primero dibuja los elementos lejanos
de una escena y despus los cubre con los ms cercanos. El algoritmo del pintor ordena todos los
polgonos de una escena en funcin de su profundidad y despus los pinta en ese orden,
pintando encima de las partes que no son visibles y solucionando as el problema de la
visibilidad.
21 P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 22

Se pintan primero las montaas lejanas, seguidas por el prado; finalmente se dibujan los objetos
ms cercanos, los rboles.

Los polgonos superpuestos pueden provocar que el algoritmo falle.

El algoritmo puede fallar en determinados casos. En este ejemplo, los polgonos A, B y C estn
superpuestos. No es posible determinar qu polgono est por encima de los otros o cundo dos
se intersecan en tres dimensiones. En este caso, los polgonos en cuestin deben ser cortados de
alguna manera para permitir su ordenacin. El algoritmo de Newell propuesto en 1972 da una
solucin para cortar dichos polgonos. Tambin se han propuesto numerosos mtodos en el
campo de la geometra computacional.

En las implementaciones ms bsicas, el algoritmo del pintor puede ser poco eficiente, ya que
fuerza al sistema a renderizar cada punto de todos los polgonos visibles, incluso si estos
polgonos estn ocultos en la escena final. Esto implica que, en las escenas detalladas, el
algoritmo del pintor puede consumir demasiados recursos.

Estas y otras causas llevaron al desarrollo de las tcnicas que emplean el Z-Buffer, que puede ser
vistas como un desarrollo del algoritmo del pintor que resuelve los conflictos de profundidad
pxel por pixel, reduciendo la necesidad de una ordenacin por profundidad. Incluso en estos
sistemas, a veces se emplea una variante del algoritmo del pintor. Como las implementaciones
del Z-Buffer generalmente se basan en un buffer limitado de profundidad implementado por
hardware pueden producirse problemas de visibilidad debido a los errores de redondeo,
provocando la superposicin en la unin de dos polgonos. Para evitarlo, algunos motores
grficos implementan el "sobrerenderizado", dibujando los bordes de ambos polgonos en el
orden impuesto por el algoritmo del pintor. Esto significa que algunos pixeles se dibujan dos
veces (como en el algoritmo del pintor normal), pero slo ocurre en pequeas zonas de la
imagen y apenas afecta al rendimiento.
22 P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 23

5. Algoritmo BSP (Particion Binaria del Espacio)


Binary space partitoning o Particin Binaria del Espacio (BSP) es un mtodo para subdividir
recursivamente un espacio en elementos convexos empleando hiperplanos. Esta subdivisin da
lugar a una representacin de la escena por medio de una estructura de datos del rbol conocida
como rbol de BSP

En diseo por ordenador es deseable que el dibujo de una escena sea correcta y rpida. Una
manera sencilla de dibujar una escena correctamente es el algoritmo del pintor: dibujar primero
lo ms lejano y despus lo ms cercano. Sin embargo, este sistema es muy limitado ya que se
pierde tiempo pintando objetos que ms tarde sern tapados por otros.

La tcnica del Z-Bufer puede asegurar que las escenas se dibujarn correctamente y que se
eliminar la necesidad de seguir un orden como en el algoritmo del pintor, pero es poco eficiente
en trminos de memoria. Los rboles BSP dividen los objetos de forma que el algoritmo del
pintor los dibujar correctamente sin necesidad de emplear un Z-buffer ni de ordenar los objetos
como un simple rbol transversal que los mantenga en el orden adecuado. Tambin sirve como
base para otros algoritmos, como las listas de visibilidad, que buscan evitar dibujar sin necesidad.

El problema es que necesita un pre-procesamiento de la escena, lo que hace difcil e ineficiente


insertar los objetos mviles directamente en el rbol BSP. Esto se suele solucionar empleando
conjuntamente un Z-Buffer, usndolo para unir correctamente los objetos mviles como puertas
y enemigos con el resto de la escena.

Los rboles BSP se emplean normalmente en los videojuegos, especialmente en los de accin en
primera persona y en los que tienen entornos de interior. Probablemente el primer juego que
emple esta tcnica fue Doom (ver motor de Doom para ms informacin sobre la
implementacin). Otros usos incluye el Ray tracing y la deteccin de colisiones
23
P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 24

Definicin recursiva del rbol binario

T(S):

Si card(S) = 1:
o T(S) es un hoj, v;
o En l hoj se lmcen el objeto (si existe), S(v).
Si card(S) > 1:
o L rz v de T(S) lmcen:
un rect (plno) hv,
conjunto S(v) de objetos contenidos en hv.
o Hijo izquierdo de v: rz de un rbol T(S-), con S = {hv- instp S : s ? S}.
o Hijo derecho de v: rz de un rbol T(S+), con S + = {hv+ instp S : s ? S}.

instp: interceptdo

La particin binaria del espacio es un proceso genrico que divide una escena recursivamente en
dos hasta que satisface uno o ms requisitos. El mtodo especfico empleado vara dependiendo
del objetivo final. Por ejemplo, en un rbol BSP empleado para la deteccin de colisiones el
objeto original sera dividido hasta que cada parte sea lo suficientemente sencilla como para ser
individualmente comprobada, y en el renderizaje interesa que cada parte sea convexa, de forma
que el algoritmo del pintor pueda ser usado.

El nmero final de objetos crecer inevitablemente ya que las lneas y caras que se crucen con el
plano de particin sern divididas en dos, y tambin es deseable que el rbol final est
razonablemente balanceado. De hecho, el algoritmo para crear un rbol BSP correcta y
eficientemente es la parte ms difcil de implementar. En un espacio de tres dimensiones, se
emplean planos para dividir las caras de un objeto; en un espacio de dos se emplean lneas.

La siguiente imagen ilustra el proceso de particin de un polgono irregular en una serie de


polgonos convexos. Destacar cmo cada paso produce polgonos con menos segmentos hasta
que se llega a F y G, que son convexos y no necesitan mayor particin. En este caso en particular,
24

la lnea de particin se ha tomado empleando vrtices existentes del polgono y no se


P gin

intersecciona con ninguno de sus segmentos. Si la lnea de particin se intersecciona con un

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 25

segmento, o una cara en un modelo tridimensional, el/los segmento/s o cara/s tienen que ser
divididas en dos dado que cada particin debe ser un objeto completo e independiente.

1. A es la raz del rbol y de todo el polgono.


2. Se divide A en B y C
3. Se divide B en D y E.
4. Se divide D en F y G, que son convexos y se convierten en hojas del rbol.

Dado que la utilidad de un rbol BSP depende de cmo se gener, un buen algoritmo es esencial.
La mayora de los algoritmos prueban muchas posibilidades para cada particin hasta que se
encuentra un resultado lo suficientemente bueno, y tambin mantienen la informacin necesaria
en memoria para poder retroceder en caso de que una rama del rbol no sea satisfactoria y
probar otras opciones. Por eso generar un rbol necesita mucho tiempo de computacin.

A rbol que corresponde l BSP. Cd hoj corresponde un cr de l subdivisio n


finl, y el frgmento que hy en es cr se lmcen en l hoj. Cd nodo interno
25

corresponde un line divisori, lmcend en el nodo


P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 26

Inicialmente, esta idea se propuso para los grficos 3D por ordenador para incrementar la
eficiencia de renderizado. Otros usos son el procesamiento geomtrico con formas, Constructive
Solid Geometry en herramientas CAD, deteccin de colisiones en robtica y videojuegos 3D, y
otras aplicaciones informticas que incluyen el manejo de estructuras espaciales complejas. la
eliminacin de caras ocultas ya que gracias a los planos divisorios del rbol conoceramos qu
polgonos estn detrs o delante, teniendo solamente que considerar determinadas ramas del rbol
a travs de la posicin desde la que nos estemos posicionando en l.

El uso ms comn de los rboles de BSP es probablemente retiro superficial ocultado en tres
dimensiones. Los rboles de BSP proporcionan un mtodo elegante, eficiente para clasificar
polgonos va una primera caminata del rbol de la profundidad: algoritmo del pintor delantero o
Algoritmo del pintor

26 P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 27

Conclusiones

Con las tcnicas presentadas podremos representar objetos en tres dimensiones hasta
lograr una visin realista del objeto.

Estos mtodos sirven para hacer que en la ventana de visualizacin no aparezcan los
objetos o las caras que no seran visibles desde el punto de vista del observador.

Antes de elegir el mtodo a realizar se tiene que hacer un anlisis del objeto a mostrar.

Se pueden reducir los tiempos de las operaciones de los algoritmos con tcnicas de
aceleracin.

Concluimos en que el Z-Bufer es el algoritmo ms apropiado (eficiencia) cuando tratamos


de dibujar una mayor cantidad de figuras en un determinado escenario. Pero requiere mas
espacio en memoria
27
P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies


Universidad Nacional Mayor de San Marcos FISI 28

Bibliografa

http://es.wikipedia.org/wiki/Rasterizaci%C3%B3n
http://arantxa.ii.uam.es/~pedro/graficos/teoria/BackFace/BackFace.htm
http://www.scribd.com/doc/22112172/Ocultamiento
http://www.mieres.uniovi.es/egi/dao/apuntes/ocultamiento.html
http://www.google.com.pe/url?sa=t&source=web&cd=2&ved=0CBgQFjAB
&url=http%3A%2F%2Fseccperu.org%2Ffcatho%2Flib%2Fexe%2Ffetch.php%
3Fid%3Dimage_processing_and_computer_graphics%26cache%3Dcache%2
6media%3Docultamiento_y_relleno.pdf&ei=Oq0zTK7vLYG88gbo0MmjAw&
usg=AFQjCNFNpRW6DpSNISZ-sF_Q7QCwnQukpA
http://arantxa.ii.uam.es/~pedro/graficos/teoria/
http://es.wikipedia.org/wiki/Z-buffer
http://arantxa.ii.uam.es/~pedro/graficos/teoria/ScanZBufer/ScanZBufer.h
tm
http://es.wikipedia.org/wiki/Algoritmo_del_pintor
http://es.wikipedia.org/wiki/%C3%81rbol_BSP
28P gin

COMPUTACION GRAFICA - Ocultamiento de Superficies

Você também pode gostar