RADIOSIDADE



        Para se fazer a visualizaçao de uma cena virtual, uma vez definidos os objetos que compoe a cena e suas localizacoes e as fontes de luz,  eh necessario calcular como a luz se distribui no ambiente.  O metodo da radiosidade eh o metodo classico quando  se admite que os objetos que compoe a cena refletem a luz incidente em todas as direcoes,  independente do angulo de incidencia (denominadas objetos Lambertianos).  O metodo eh muito usado para a visualizacao de interiores como escritorios,  quartos, salas,  etc.
        Neste trabalho foi implementado um metodo para calcular a radiosidade usando um esquema hierarquico do modelo a ser iluminado.  Ou seja,  comecamos com uma aproximacao da solucao da equacao de iluminacao e essa solucao vai sendo refinada (assim com o modelo) ate que a solucao alcance um nivel estipulado.
        Um exemplo disso pode ser visto na figura abaixo,  onde o metodo foi aplicao num modelo bem simples : um triangulo (na vertical)  que eh iluminado por outro triangulo (na horizontal).
     
     


        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 :
     

    Quando a radiosidade da cena . SDL eh calculada (e portanto o arquivo . RAS eh gerado)  sao exibidas informacoes sobre o desempenho do algoritmo de radiosidade,  como mostra a figura abaixo :


     
     

        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.