Note que no exemplo acima o modelo usado como entrada para o algoritmo era formado apenas por dois triangulos. Apesar disso o metodo calculou uma boa distribuicao da energia luminosa no triangulo vertical (o triangulo horizontal nao apresenta variacao de energia luminosa, jah que estah emitindo luz de maneira uniforme).
Para conseguir isso o metodo da radiosidade
hierarquica subdivide os triangulos do modelo e entao calcula a iluminacao
em cada pequeno triangulo.
A primeira imagem mostra a subdivisao dos dois triangulos
iniciais em triangulos menores. A segunda imagem mostra o resultado
do calculo de iluminacao em cada pequeno triangulo. E a terceira
imagem mostra o resultado final, obtido fazendo-se uma suavizacao da segunda
imagem (interpolacao linear).
Uma caracteristica importante do algoritmo
eh que a subdivisao dos triangulos eh feita de forma adaptada. Nos
pontos onde a troca de energia luminosa eh mais intensa e, portanto,
sujeita a mais variacoes, os triangulos sao mais bem divididos. Nos
lugares onde ha pouca troca de energia, uma aproximacao mais grosseira
eh suficiente.
Alem disso, como a subdivisao
dos triangulos segue uma ordem hierarquica (ficamos com uma arvore de triangulos
para cada triangulo da entrada) a solucao obtida em um passo do programa
pode ser aproveitada no passo seguinte. Essas duas caracteristicas
sao fundamentais para rapidez do algoritmo e qualidade da solucao.
UTILIZACAO DO PROGRAMA
Para utilizar o programa eh necessario
o conhecimento dos arquivos que ele manipula :
O programa eh chamado no shell
atraves da linha de comando :
> rad <. par file >.
Sera entao exibida uma janela como mostrada na figura abaixo :
Do lado esquerdo dessa janela, na faixa cinza, estao os botoes de controle do programa. O lado direito contem informacoes sobre os parametros e o estado do programa.
Os botoes tem as seguintes funcoes
:
Essas novas informacoes incluem o numero de triangulos efetivamente visualizados (sao os nos-folha da hierarquia) ; o numero total de nos na arvore ; o numero de ligacoes estabelecidas entre os nos (para efetuar a troca de energia luminosa) ; a profundidade da arvore ; o residuo de radiosidade que restou apos a ultima iteracao e o tempo gasto pelo algoritmo para o calculo da radiosidade, em segundos.
A janela de parametros, chamada
a partir do botao SetPar da janela principal, permite a escolha e
o ajuste dos parametros do programa de visualizacao. A janela tem
o seguinte formato :
Os parametros sao :
Abaixo algumas imagens obtidas usando o programa :
Planos paralelos : o superior ilumina
o plano inferior.
Modelo com 4 triangulos.
Planos perpendiculares : o quadrilatero
vertical ilumina o horizontal.
Modelo com 4 triangulos
Caixa azul com esfera incandescente
no centro.
Modelo de um quarto vazio com uma
janela.
Modelo com 12 triangulos.
Esfera no interior de uma caixa
iluminada.
Esfera e cubo no interior de uma
caixa iluminada por uma esfera pendente do teto.
Calculo sem levar em conta a visibilidade
entre os objetos.
Tres esferas sobre um cubo no interior
de uma caixa iluminada por cima.
Conclusao :
A implementacao
e os testes mostraram que o metodo de radiosidade hierarquica depende de
dois pontos fundamentais : a maneira de subdividir o modelo e o metodo
para calcular a visibilidade entre os objetos.
O calculo da
visibilidade e' tratado de forma natural com o uso de tracado de raios.
Foi usado o tracado de raios disponivel na biblioteca do curso para a solucao
do calculo da visibilidade. A imagem resultante e' bastante
satisfatoria. No entanto, a complexidade do algoritmo cresce muito
com o uso ingenuo de tracado de raios. Para se conseguir um programa
que calcule cenas complexas em um tempo razoavel e' necessario um
algoritmo para acelerar o metodo de tracado de raios. Na implementacao
atual, este tem sido o ponto critico do desempenho.
A maneira de
subdividir adotada foi inspirada nas malhas semi-regulares 4-k. Cada
triangulo do modelo e' tratado como uma superficie de subdivisao.
Ficou evidente durante os testes que a maneira de subdividir tem impacto
direto na qualidade da solucao. O uso de malhas 4-k, por respeitar
a razao de aspecto dos triangulos originais, melhorou sensivelmente
a qualidade das imagens obtidas.
Mas o uso de
malhas 4-k teve tambem outra motivacao. Numa proxima etapa se pretende
que nao so' simples triangulos do modelo original sejam tratados como superficies
de subdivisao, mas que todo um objeto possa ser tratado como uma
malha 4-k de resolucao variavel. A mudanca necessaria para se alcancar
isso nao e' muito complicada, ja' que todo o tratamento
de malhas 4-k esta' implementado.
Com essa mudanca
se pode ir ainda alem do algoritmo de radiosidade hierarquica, implementando
o metodo introduzido por Paul Heckbert - Face Cluster Radiosity - que e'
o estado da arte em Radiosidade. Para algoritmos dessa natureza,
as malhas hierarquicas 4-k possuem propriedades bastante promissoras.