Como funciona o processo de Ray tracing e Photon Mapping?

Depois de algum tempo usando ferramentas gráficas, principalmente com tanta freqüência como eu uso, seria normal que me interessasse pelos mecanismos que fazem as coisas acontecerem. Principalmente no meu caso, em que preciso ministrar aulas sobre esses softwares, explicar a função de um botão é fácil. Mas contextualizar a lógica matemática e códigos por trás dele é mais complicado. Apesar de vários artistas 3d, torcerem o nariz para esse tipo de explicação, conhecer a fundo o código fonte desses processos pode ajudar, na personalização de ferramentas.

Sendo o Blender, uma ferramenta que disponibiliza o código fonte, para qualquer pessoa consultar e eventualmente alterar. Seria utópico, imaginar que alguém sem experiência em programação iria abrir o código fonte do Blender e automaticamente, entender e alterar as suas funcionalidades.

Mas, para quem está interessado em aprender ou ter um conhecimento básico, sobre como funcionam processos como o Ray tracing, e até mesmo programar um protótipo de software, usando a base matemática do Ray tracing, existe o processing.

Recebo várias mensagens de estudantes que gostariam de usar o Blender, como tema para os seus trabalhos de graduação. Como alguns desses alunos, tinham dificuldades em identificar e usar códigos escritos em C. Para facilitar a vida desses alunos, estava pesquisando por algo mais simples e que pudesse ser usado para fins de pesquisa, foi quando encontrei o processing, que é uma linguagem e ambiente de desenvolvimento, direcionada para artistas e pessoas sem experiência com programação. Não entendeu? Pois visite esse exemplo, em que um estudante chamado Grant Schindler.

Processing - Cornell Box

Ele conseguiu recriar um ambiente interativo, usando um Cornell Box com um ponto de luz e duas esferas. O ambiente é uma simulação interativa, então é possível alterar em tempo real a posição das esferas e do ponto de luz. E por incrível que pareça, a renderização é muito rápida! Tudo isso com apenas 150 linhas de código. Esse sistema ganhou mais um usuário, Ray tracing com photon mapping em 150 linhas? Ainda mais com possibilidade de interação em tempo real? Já estou com o processing aqui, que por sinal é de código aberto. Ele é gratuito!

Aproveite o trabalho do Grant Schindler, para estudar o código fonte, que está comentado e organizado, para aprender como funciona um sistema de Ray tracing com photon mapping simplificado.

Esse é um ótimo exemplo de trabalho acadêmico, realizado com o processing. O estudante usou um artigo científico como base, para implementar o sistema. As possibilidades na simulação 3d em tempo real são muito boas, sem mencionar os usos acadêmicos. Já estou estudando a ferramenta/linguagem e assim que for possível, publico um tutorial.

Quero aproveitar o artigo, para agradecer aos estudantes que usaram o livro Blender 3d – Guia do Usuário em seus trabalhos científicos com Blender. Se você está nessa situação, gostaria de pedir que me informasse sobre a referência ao livro ou ao site. Assim posso adicionar as informações no meu currículo Lattes. Quem trabalha com pesquisa, sabe o quanto esse tipo de referência é importante.

Publicado por

Allan Brito

Arquiteto que trocou as construções baseadas em tijolos pelas que utilizam pixels! Sim, os pixels também precisam ser devidamente construídos, e quem melhor do que um arquiteto para planejar construções?

2 comentários sobre “Como funciona o processo de Ray tracing e Photon Mapping?”

  1. Nossa! Ele conseguiu travar meu Ubuntu todo, mas é impressionante o cálculo dele em tempo real online… To adimirado. Será o Futura chegando por aí?! 🙂
    Pode crer…

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *