• Nenhum resultado encontrado

Ray Tracing Modelo de Iluminação Global e Grids

N/A
N/A
Protected

Academic year: 2022

Share "Ray Tracing Modelo de Iluminação Global e Grids"

Copied!
7
0
0

Texto

(1)

Processamento, An´alise e S´ıntese de Imagens II PSI-2652

Prof. Marcio Lobo Netto

Ray Tracing

Modelo de Ilumina¸c˜ ao Global e Grids

Silvia Esparrachiari Ghirotti No. USP 3682567 27 de novembro de 2005

Resumo

Many methods were developed to reflect the global illumination effects that several objects in a scene produce against each other. Here, we’ll abord the ray-tracing technique which calculates a few global special effects, like specular reflectance and refrac- tion of light through transparent objects, and con- sider some recursive method to calculate the dif- fuse ambient light reflection of objects against each other. Depending on the number of objects in the scene, the ray-tracing algorithm might become too slow. At the end of the paper, we shall explain the Grid technique, which helps to improve the rende- rization of a scene by sub-dividing it into cells.

Keywords: Ray tracing, Global Illumination, 3D Scene, Grid

1 Introdu¸ c˜ ao

[1]

Na natureza, os raios de luz viajam a partir de suas fontes de luz at´e que atinjam, eventualmente, uma superf´ıcie que interrompa seu processo. Este raio de luz pode ser considerado como um feixe de f´otons viajando todos na mesma trajet´oria. Ao alcan¸car um objeto (superf´ıcie) qualquer combina¸c˜ao de trˆes coisas pode ocorrer ao raio de luz: absor¸c˜ao, re- flex˜ao e refra¸c˜ao. A superf´ıcie pode refletir o raio total ou parcialmente, em uma ou mais dire¸c˜oes, com um intensidade menor ou igual.

A t´ecnica do ray tracing permite a renderiza¸c˜ao de imagens realistas a partir de cenas definidas em trˆes dimens˜oes. O algoritmo determina a visibi- lidade das superf´ıcies tra¸cando raios de luz ima- gin´arios a partir do olho do observador at´e os ob- jetos na cena. No caminho do raio de luz, pode ser necess´ario calcular reflex˜oes, refra¸c˜oes e absor¸c˜oes do raio enquanto este intercepta objetos na cena.

Figura 1: O processo de tra¸camento de raios atrav´es do plano de vis˜ao.

Como o ˆangulo de vis˜ao do observador (horizontal e vertical) ´e limitado, pode-se limitar a ´area rende- rizada escolhendo-se uma regi˜ao no plano de vis˜ao para servir de “janela” para o algoritmo. Esta ja- nela ´e ent˜ao subdividida em regi˜oes de modo a cor- responder a resolu¸c˜ao em pixels da imagem final.

Para cada ponto da malha ´e disparado um raio a partir do olho do observador at´e o centro do pixel e, depois, este continua “caminhando” por dentro da cena 3D. A cor do pixel ´e definida principal- mente pelo objeto mais pr´oximo interceptado pelo raio. O pseudo-c´odigo deste algoritmo ´e descrito na pr´oxima se¸c˜ao.

1.1 Perspectiva Hist´ orica

A t´ecnica do ray tracing foi primeiramente desen- volvida por Appel e por Goldstein e Nagel. Appel utilizou uma malha esparsa de raios para determi- nar as sombras na cena. Goldstein e Nagel origi- nalmente utilizaram seu algoritmo para simular a trajet´oria bal´ıstica de proj´eteis e part´ıculas nuclea- res. Foi s´o posteriormente que eles aplicaram o al- goritmo para gr´aficos. Appel foi o primeiro a tra¸car

(2)

raios para determina¸c˜ao de sombras, enquanto que Goldstein e Nagel foram pioneiros no uso de ray trace para calcular opera¸c˜oes booleanas. Whitted e Kay estenderam o ray trace para lidar com reflex˜oes especulares e refra¸c˜oes. Posteriormente, ser˜ao dis- cutidas sombras, reflex˜oes e refra¸c˜oes – os efeitos pelos quais a t´ecnica do ray trace ´e mais conhecida.

2 Calculando Intersec¸ c˜ oes

[2]

O pseudo-c´odigo para o algoritmo de ray tracing mais simples, tamb´em denominado ray casting, ´e definido da seguinte forma:

selecione o centro de proje¸c~ao e a janela no plano de vis~ao;

for(cada linha da imagem){

for(cada pixel de uma linha){

determine o raio que parte do centro de proje¸c~ao e passa pelo centro do pixel;

for(cada objeto da cena){

if(objeto ´e interceptado e o ponto ´e o mais pr´oximo analisado at´e o momento)

armazene o ponto de intersec¸c~ao e a

identifica¸c~ao do objeto;

}

defina a cor do pixel baseada nas propriedades do material do objeto interceptado mais pr´oximo;

} }

O princ´ıpio b´asico e delimitante do desempenho de um algoritmo de ray trace ´e a determina¸c˜ao do ponto de intersec¸c˜ao de um raio com os objetos na cena. Quanto mais variadas as formas aceitas (triˆangulos, esferas, cilindros, toros), mais realis- tas se tornam as cenas, por´em, mais complexo o c´odigo. O ponto inicial do algoritmo constitui na defini¸c˜ao do raio. A mais usada ´e a defini¸c˜ao pa- ram´etrica. Cada ponto (x, y, z) ao longo do raio de P0 = (x0, y0, z0) a P1 = (x1, y1, z1) ´e definido por um valorttal que:

P =P0+t(P1−P0) Lembrando que:

Px=P0x+t(P1x−P0x) Py=P0y +t(P1y−P0y)

Py =P0z+t(P1z−P0z)

Agora, para obtermos um ponto de intersec¸c˜ao com um objeto da cena, s´o precisamos da equa¸c˜ao que o representa.

2.1 Esferas

[1]

Daremos aqui um exemplo de c´alculo de intersec¸c˜ao utilizando o caso de uma esfera. Uma esfera cen- trada no pontoECe de raioER, tem uma equa¸c˜ao que a descreve no espa¸co igual a:

(x−ECx)2+ (y−ECy)2+ (z−ECz)2=ER2 Para encontrarmos o ponto de intersec¸c˜ao do raio com a esfera (se ele existir), basta substituirmos o ponto (x, y, z) pela defini¸c˜ao dos pontos pertencen- tes ao raioP =P0+t(P1−P0).

x2+ 2ECxx+EC2x+y2+ 2ECyy+EC2y+ z2+ 2ECzz+EC2

z =ER2 Considerando:

Rx=P1x−P0x

Ry=P1y −P0y

Rz=P1z −P0z

(P0x+tRx)2+ 2ECx(P0x+tRx) +EC2x+ (P0y +tRy)2+ 2ECy(P0y +tRy) +E2C

y+ (P0z+tRz)2+ 2ECz(P0z +tRz) +EC2

z =ER2

t2(R2x+Ry2+R2z) + 2t(P0xRx+P0yRy+P0zRz+ ECxRx+ECyRy+ECzRz) +EC2x+EC2y +EC2z+ P02x+P02y+P02z+ 2(ECxP0x+ECyP0y+ECzP0z) =

ER2 Reagrupando os termos:

t2(R·R) + 2t(P0·(R+EC)) +EC·EC+P0·P0+ 2EC·P0−ER2 = 0

E considerando:

A=R·R

B= 2(P0·(R+EC))

C=EC·EC+P0·P0+ 2EC·P0−ER2

(3)

Temos:

t=−B±√

B2−4AC

2A (1)

Se ∆ = B2 −4AC > 0 dois pontos de inter- sec¸c˜ao s˜ao definidos, ent˜ao ´e preciso escolher o mais pr´oximo, ou seja, definido pelo menor t;

Se ∆ =B2−4AC = 0 apenas um ponto ´e defi- nido;

Se ∆ =B2−4AC <0 n˜ao h´a intersec¸c˜ao com a esfera.

3 Definindo a cor do pixel

[3]

Ap´os encontrarmos o ponto de intersec¸c˜ao mais pr´oximo do observador, para um dado raio, pre- cisamos calcular a cor do pixel correspondente.

Esta propriedade est´a diretamente relacionada com as caracter´ısticas do material do objeto e com a posi¸c˜ao das fontes de luz na cena. Podemos basear a modelagem das reflex˜oes numa superf´ıcie nas se- guintes componentes:

Reflex˜ao Difusa: Reflex˜ao que ocorre em ob- jetos opacos, ou foscos, tais como borracha ou tecido.

Reflex˜ao Especular: Regi˜oes brilhantes que aparecem em objetos polidos (metais ou su- perf´ıcies envernizadas). Este modelo de re- flex˜ao n˜ao ´e o mesmo que ocorre em espelhos.

Espelhos e materiais transparentes requerem um tratamento recursivo e ser˜ao vistos poste- riormente.

Reflex˜ao espelhada: objetos cromados ou espelhados.

Transmiss˜ao: objetos transparentes tais como garrafas e janelas.

Reflex˜ao ambiente: Reflex˜ao difusa prove- niente de outros objetos na cena. Neste do- cumento, tratamos a ilumina¸c˜ao ambiente de forma simples, dando mais ˆenfase `a intera¸c˜ao entre os objetos da cena por meio da reflex˜ao total e da refra¸c˜ao (transmiss˜ao).

Seja L= (LR, LG, LB) uma fonte de luz e C = (CR, CG, CB) a cor de um objeto definidos pelas suas trˆes intensidades na faixa do vermelho, verde e azul, respectivamente. Os objetos da cena possuem um coeficiente para cada tipo de reflex˜ao, trans- miss˜ao e espelhamento descritos acima: Cd,Cseα, Cr,CteCa. A fonte de luz, por sua vez, deve con- ter um vetor de componentes para reflex˜ao difusa e outro para a especular: Ld eLs. Cada componente

Figura 2: Vetores utilizados no c´alculo do pixel ob- sercado pelo raio tra¸cado.

de C e L devem estar no intervalo de [0,1] e repre- senta a porcentagem de luz refletida. Por exemplo, seC= (0.5,0.2,0.2) eL= (1.0,0.0,1.0), a cor final do objeto ser´a:

LC = (0.5,0.0,0.2), note que o produto ´e feito componente a componente.

3.1 Analisando as reflex˜ oes

Conforme dito anteriormente, o sombreamento de um ponto numa superf´ıcie ´e feito em fun¸c˜ao do rela- cionamento entre a posi¸c˜ao do observador, as fontes de luz, a superf´ıcie em quest˜ao e os demais objetos da cena. Os seguintes vetores s˜ao importantes na defini¸c˜ao do sombreamento:

Vetor Normal: ~n´e perpendicular `a superf´ıcie e direcionado para o lado externo do objeto.

Cada superf´ıcie possui um modo particular de ter sua normal calculada. Por exemplo, para a esfera:

~n=normalize(Pt−EC) (2) Vetor do observador: ~v aponta na dire¸c˜ao do observador~v=P0−Pt.

Vetor de ilumina¸c˜ao: ~laponta na dire¸c˜ao da fonte de luz.

Vetor de reflex˜ao: ~rindica a dire¸c˜ao da re- flex˜ao pura do vetor de ilumina¸c˜ao.

~r= 2(~n·~l)~n−~l (3) Vetor de meio caminho: ~h´e definido como estando exatamente no meio entre~le~v:

~h=normalize(~l+~v) (4) Reflex˜ao Difusa A reflex˜ao difusa se baseia no fato de que a luz vinda de qualquer dire¸c˜ao ´e re- fletida uniformemente em todas as dire¸c˜oes. Tal tipo de reflex˜ao tamb´em ´e conhecido comoRefletor Lambertiano. A explica¸c˜ao f´ısica para tal processo

(4)

´e que os objetos, num n´ıvel microsc´opico apresen- tam sua superf´ıcie micro-facetada e altamente irre- gular. Estas irregularidades espalham a luz unifor- memente em todas as dire¸c˜oes.

A raz˜ao pela qual um refletor Lambertiano pa- rece ser mais brilhante em algumas regi˜oes que em outras ´e devida ao fato daquela regi˜ao estar vol- tada diretamente para luz, ent˜ao, a energia ´e espa- lhada por uma ´area menor, aumentando o brilho.

Conforme o ˆangulo de inclina¸c˜ao aumenta, menor a intensidade da luz refletida.

Seja Id a componente difusa da fonte de luz e Cd o coeficiente de reflex˜ao difusa do objeto. Se assumirmos que ~n e~l est˜ao ambos normalizados, temos cosθ =~n·~l. Se~n·~l < 0 o ponto est´a vol- tado para o lado oposto `a fonte de luz. Se n˜ao for o caso, Precisamos verificar se n˜ao h´a nenhum objeto entre o ponto e a fonte de luz. Utilizamos nova- mente o algoritmo do ray trace para percorrermos o raio: R=Pt+t(L0−Pt), ondePt´e o ponto em quest˜ao eL0 ´e a posi¸c˜ao da fonte de luz. Se n˜ao houver nenhum objeto no caminho, armazenamos esta informa¸c˜ao (para ser usada nos demais passos) e calculamos a componente difusa da cor como se segue:

Id=Cdmax{0, ~n·~l}LdC (5) OndeCd´e o coeficiente de reflex˜ao da luz difusa, Ld´e a componente difusa da luz e C ´e a cor do ob- jeto. Caso haja um objeto bloqueando a fonte de luz, armazenamos qual o objeto mais pr´oximo inter- ceptado e o ponto de intersec¸c˜ao (esta informa¸c˜ao ser´a usada na composi¸c˜ao da luz ambiente) e defi- nimosId= 0. Caso o ponto n˜ao esteja voltado para a luz tamb´em definimosId= 0.

Reflex˜ao especular Muitos objetos n˜ao s˜ao re- fletores Lambertianos perfeitos. Um bom exemplo

´e o caso das superf´ıcies polidas ou met´alicas. Estas costumam ter pontos ou ´areas mais brilhantes e de destaque. Teoricamente, estes realces s˜ao gerados num n´ıvel microsc´opico, onde a luz n˜ao est´a sendo espalhada uniformemente em todas as dire¸c˜oes, e sim numa dire¸c˜ao preferencial, que condiz com a regra “ˆangulo de incidˆencia igual ao ˆangulo de re- flex˜ao”. Por outro lado, as micro-facetas n˜ao s˜ao t˜ao suaves ao ponto de se assemelharem a um es- pelho.

Quanto mais pr´oximo da dire¸c˜ao de reflex˜ao ab- soluta est´a o observador, mais brilhante ser´a o ponto observado. Os parˆametros da superf´ıcie que controlam a reflex˜ao especular s˜aoCs, o coeficiente de reflex˜ao especular e α, o coeficiente de brilho.

Quanto maior o α, menor os focos brilhantes na superf´ıcie. Os valores de brilho costuma variar en-

tre [1,1000]. A componente especular s´o deve ser computada se o ponto ´e iluminado diretamente pela fonte de luz. A componente de reflex˜ao especular final ´e:

Is=Csmax{0, ~r·~v}αLs (6) Decaimento da intensidade da luz Para acen- tuarmos a sensa¸c˜ao de profundidade, podemos adi- cionar um efeito de atenua¸c˜ao da intensidade da fonte de luz de acordo com a distˆancia do ponto

`a fonte. Dessa forma, duas superf´ıcies idˆenticas (mesmo material, inclina¸c˜ao, tamanho), mas a distˆancias diferentes do observador, poder˜ao con- tar, al´em do efeito de perspectiva, com uma ate- nua¸c˜ao na ilumina¸c˜ao: se a fonte est´a mais pr´oxima do observador, a superf´ıcie mais distante ser´a ligei- ramente sombreada.

Uma equa¸c˜ao que permite uma s´erie de efeitos de ilumina¸c˜ao ´e:

f =min

µ 1

ad2+bd+c,1

(7) Quando a = 1, b = c = 0, temos o decaimento tradicional referente ao inverso do quadrado da distˆancia. Os parˆametros a, b e c podem ser com- binados de diversas maneiras at´e se obter o efeito desejado.

Reflex˜ao espelhada Este tipo de reflex˜ao ´e aquela observada em espelhos, superf´ıcies cromadas ou espelhos d’´agua. Objetos espelhados possuem seu coeficiente de reflex˜ao no intervalo ]0,1]. Seja

~v = normalize(Pt−P0), o que vemos ´e o objeto atingido pelo vetor de vis˜ao refletido:

~rv= 2(~v·~v)~n−~v (8) Utilizando o vetor ~rv, tra¸camos um novo raio e verificamos qual o primeiro objeto interceptado.

Calculamos a cor naquele ponto e atribu´ımos esta cor `a componente Ir. Caso nenhuma objeto seja interceptado, atribu´ımos a cor de fundo a Ir. Pre- cisamos tomar um cuidado especial quando tenho muitos objetos espelhados numa cena, sen˜ao, pode- mos gerar uma situa¸c˜ao de um la¸co infinito. Para tal, precisamos definir o grau m´aximo de recurs˜ao de uma determinada cena. Al´em do mais, como os coeficientes de reflex˜ao est˜ao sempre num intervalo ]0,1], para objetos espelhados, a partir de um certo grau de recurs˜ao, a contribui¸c˜ao do objeto passa a ser desprez´ıvel.

Transmiss˜ao O modelo de transmiss˜ao, tamb´em conhecido comorefra¸c˜ao, ´e determinado pelo coefi- ciente de transmiss˜aoCtdiferente de zero. Tamb´em

(5)

Figura 3: Efeitos de refra¸c˜ao gerados pelo ray- tracing.

Figura 4: A lei de Snell, o raio incide de um meio com um ´ındice de refra¸c˜ao menor para um com o

´ındice de refra¸c˜ao maior.

´e necess´ario determinar outros dois parˆametros, os

´ındices de refra¸c˜ao para o meio interno ηi e para o meio externo ηi. Relembrando o modelo f´ısico, o ´ındice de refra¸c˜ao representa a raz˜ao entre a ve- locidade da luz no v´acuo e a velocidade da luz no meio.

A lei deSnelldiz que um raio incidente com um ˆangulo θi ( relativo `a normal da superf´ıcie) ser´a transmitido com um ˆangulo θt (relativo `a normal oposta) tal que:

sinθi

sinθt

t

ηi (9)

Com um pouco de geometria e com a equa¸c˜ao 9, podemos concluir que o raio refratado ´e:

~t= µηi

ηt

cosθi−cosθt

~n−ηi

ηt

~v (10) Sendo cosθi = (~v·~n) e

cosθt= s

1− µηi

ηt

2³

1−(~n·~n)2´

(11) Note que o termo dentro da ra´ız quadrada pode ser negativo seηit>1, ou seja, se j´a nos encon- tramos no meio de maior refra¸c˜ao. Neste caso, n˜ao ocorrer´a refra¸c˜ao, e sim reflex˜ao.

Um raio pode, portanto, percorrer um vasto ca- minho at´e que tenha sua cor definida. Enquanto percorre a cena e interage com objetos espelhados ou com transparˆencia, sua dire¸c˜ao muda, e ele de- fine uma ´arvore hier´arquica de objetos pelos quais passou. A profundidade m´axima desta ´arvore deve ser definida a fim de evitar-se loops infinitos. Um raio determinar´a uma componente de cor ao atingir um objeto opaco, o limite m´aximo da ´arvore ou ad- mitir´a a cor de fundo quando n˜ao interceptar mais nenhum objeto da cena.

Figura 5: O caminho percorrido por um raio con- forme vai sendo refratado e refletido pelos objetos em meio a uma cena.

Reflex˜ao ambiente Num modelo simples de re- flex˜ao, ´e definido um coeficiente de reflex˜ao da luz ambiente e todos os objetos, mesmo aqueles n˜ao iluminados, ou as faces n˜ao iluminadas diretamente pela fonte de luz, possuem sua cor influenciada por esta componente da luz. Como esta componente n˜ao interage nem depende dos demais objetos na cena, ela ´e definida simplesmente como:

Ia=CaLaC (12) Juntando tudo Depois que calculamos as com- ponentes diretas no ponto difusa, ambiente e espe- culares de cor, e as componentes recursivas de re- flex˜ao e refra¸c˜ao, calculamos a distˆancia do ponto at´e a fonte de luz para obtermos o decaimento da intensidade nas componentes locais (difusa, espe- cular e ambiente). A cor final no pontoPt´e dada por:

I=CaLaC+

(6)

X

i

V is(P, i) Li

ad2i +bd+c[CdCmax(0,(~n·~l))+

Csmax(0,(~r·~v)α] +Crtrace(P, ~rv) +Cttrace(P, ~t) (13) Onde: V is(P, i) indica se a i-´esima fonte de luz ´e vis´ıvel pelo ponto. CasoCreCtsejam zero, a cha- mada para o ray trace (trace(P, ~rv)) n˜ao precisa ser feita. Perceba que a atenua¸c˜ao do raio de luz n˜ao

´e aplicado as componentes refletida ou atenuadas.

Isto tem se mostrado uma boa aproxima¸c˜ao para um modelo de ilumina¸c˜ao, mesmo para os objetos pr´oximos o observador.

4 Grids

[4]

Nos m´etodos que utilizam recurs˜ao, tais como c´alculo de reflex˜ao e refra¸c˜ao, a verifica¸c˜ao da in- tersec¸c˜ao do raio com cada objeto da cena pode consumir um tempo consider´avel. Mesmo em ce- nas com poucos objetos reflexivos ou transparentes, mas com uma grande quantidade de objetos opacos,

´e necess´ario verificar cada um deles na busca pela intersec¸c˜ao mais pr´oxima do observador.

Um m´etodo simples para reduzir o n´umero de objetos consultados ´e denominado grid (grade), e consiste na subdivis˜ao do espa¸co em c´elulas, e na associa¸c˜ao dos objetos da cena a elas.

As c´elulas costumam ser geradas a partir da di- vis˜ao da cena nos planos paralelos a um ou mais eixos. A cada c´elula ´e associada uma lista de obje- tos que ela cont´em total ou parcialmente.

Ao disparar um raio de luz do olho do observador em dire¸c˜ao `a cena, o raio come¸ca a percorrer algu- mas c´elulas do grid. A cada c´elula, s´o ´e necess´ario testar a intersec¸c˜ao do raio com os objetos associ- ados a ela, reduzindo consideravelmente o n´umero de testes.

E necess´ario escolher um algoritmo que defina´ como as c´elulas ser˜ao percorridas. O algoritmo des- crito aqui ´e o de Amanatides, Woo (1987). Os tes- tes de intersec¸c˜ao do raio com a lista de objetos de cada c´elula ou com os limites da grade s˜ao os respons´aveis pela interrup¸c˜ao do algoritmo de var- redura.

Mesmo que o raio intercepte um objeto, deve-se continuar com os testes de intersec¸c˜ao para todos objetos da lista, a fim de se obter um ponto de intersec¸c˜ao mais pr´oximo `a origem do raio.

Uma vez que as c´elulas cont´em uma lista de obje- tos, inclusive os parcialmente contidos, nota-se que um objeto pode ter seu volume ocupando em mais de uma c´elula. Isto pode ocasionar repetidos testes de intersec¸c˜ao entre um raio e um objeto e, ainda assim, n˜ao ocorrer intersec¸c˜ao alguma entre eles.

Para evitar um rec´alculo do teste de intersec¸c˜ao do raio com um mesmo objeto, adota-se o que ´e conhecido como mail boxing. Quando um raio ´e testado contra um objeto qualquer, pode-se arma- zenar temporariamente o resultado da intersec¸c˜ao do raio com o objeto, e reaproveit´a-lo posterior- mente. Quando uma rotina de teste de intersec¸c˜ao

´e chamada, ela verifica primeiramente se o objeto j´a n˜ao foi testado para aquele raio. Se o foi, ela retorna os dados armazenados previamente.

Uma vez que objetos grandes podem ocupar mais de uma c´elula, pode acontecer de uma intersec¸c˜ao ocorrer fora da c´elula em quest˜ao. A conseq¨uˆencia disto pode ser desastrosa: ao retornar desta inter- sec¸c˜ao, os testes das pr´oximas c´elulas ser˜ao supri- midos, o que pode omitir pontos de intersec¸c˜ao com outros objetos mais pr´oximos.

Para ilustrar a situa¸c˜ao, imagine uma cena com- posta por algumas esferas de tamanho variado, ma- peadas em uma grade. Um raio atravessa a cena, chegando a uma c´elula que cont´em parte de uma esfera grande. Um teste de intersec¸c˜ao entre o raio e a esfera grande ´e realizado, e descobre-se que o raio intercepta a esfera. O algoritmo de varredura de grade retorna o ponto interceptado com a es- fera grande, parando de varrer as c´elulas da grade.

Por´em, nota-se que na pr´oxima c´elula a ser varrida, o raio intercepta a esfera pequena em um ponto mais pr´oximo em rela¸c˜ao ao ponto interceptado na esfera grande. Como o mesmo ocorre para outros raios semelhantes, o efeito resultante ´e o “desapa- recimento” da esfera pequena.

Da mesma forma, esse problema n˜ao se limita a

“apagar” objetos pequenos da cena, como tamb´em pode levar a erros no c´alculo de sombras ao dis- parar raios secund´arios de objetos a fontes de luz e acumular erros grosseiros em cenas com muitos objetos espelhados.

A corre¸c˜ao deste problema consiste em verificar se o ponto de intersec¸c˜ao obtido encontra-se dentro da c´elula atual, o que aumenta o custo computacio- nal, dado que a verifica¸c˜ao ´e feita toda vez que um teste de intersec¸c˜ao entre raio e objeto retorna um resultado positivo.

A fim de reduzir o n´umero de intersec¸c˜oes entre os raios e sua caixa envolt´oria, uma boa pr´atica ao criar uma grade ´e minimizar o seu volume. De- pois de definido o volume, ´e necess´ario divid´ı-la em c´elulas num tamanho adequado.

C´elulas com tamanho reduzido podem aumentar o custo computacional do algoritmo de varredura, mas tamb´em diminuem o n´umero de objetos conti- dos, o que ´e vantajoso em cenas com alta densidade de primitivas cujo custo do teste de intersec¸c˜ao seja muito alto. C´elulas de tamanho maior s˜ao mais adequadas a cenas com baixa densidade de objetos

(7)

(cujos testes de intersec¸c˜ao n˜ao sejam muito custo- sos).

Outro fator importante ´e n˜ao inserir objetos mal distribu´ıdos em uma mesma grade. Por um lado, a concentra¸c˜ao de objetos beneficia raios que atra- vessam a cena cruzando as grades vazias, por outro, os raios acabam caindo em c´elulas com uma longa lista de objetos, praticamente inutilizando o uso da grade em determinadas situa¸c˜oes. Esse ponto fraco encontrado ao se utilizar grades foi uma das mo- tiva¸c˜oes para o desenvolvimento de outras subdi- vis˜oes espaciais com v´arios n´ıveis de profundidade, n˜ao abordados neste artigo.

5 Bibliografia Referˆ encias

[1] Foley, J.D., van Dam, A., Feiner, S.K., Hughes, J.F., Computer Graphics, principles and pra- tice, Addison-Wesley, 2a edi¸c˜ao, USA, 09/2004, pp 701-711.

[2] Kim, H.Y.,S´ıntese de Imagem e Rastreamento de Raio, S˜ao Paulo, 07/1992, pp 131-141.

[3] Mount, D.M., Computer Graphics, CMSC 427, notas de aula, primavera/2004, Maryland, USA, pp 58-66.

[4] Balciunas, D.A., Uso de Subdivis˜oes Espaciais em Objetos Complexos em Tra¸cado de Raios - Tese de Mestrado a ser publicada, 1o semestre de 2006.

Referências

Documentos relacionados

Este desafio nos exige uma nova postura frente às questões ambientais, significa tomar o meio ambiente como problema pedagógico, como práxis unificadora que favoreça

Curvas de rarefação (Coleman) estimadas para amostragens de espécies de morcegos em três ambientes separadamente (A) e agrupados (B), no Parque Estadual da Ilha do Cardoso,

3 O presente artigo tem como objetivo expor as melhorias nas praticas e ferramentas de recrutamento e seleção, visando explorar o capital intelectual para

Discussion The present results show that, like other conditions that change brain excitability, early environmental heat exposure also enhanced CSD propagation in adult rats.. The

Pode haver alguns acordos prévios, como visto na classificação proposta em trabalho anterior (GUERRERO, 2006), mas estes são propostos sempre mantendo elevado

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

Almanya'da olduğu gibi, burada da bu terimin hiçbir ayrım gütmeden, modern eğilimleri simgeleyen tüm sanatçılar için geçerli olduğu anlaşılıyor.. SSCB'de ilk halk

A Lista de Fauna Ameaçada de Extinção e os Entraves para a Inclusão de Espécies – o Exemplo dos Peixes Troglóbios Brasileiros.. The List of Endangered Fauna and Impediments