Usando iluminação global com o Blender 3D e Photon Mapping

Nas últimas semanas tenho falado muito sobre renderizadores externos para o Blender 3D aqui no Blog, especialmente o YafaRay e o LuxRender. Essas são excelentes opções para trabalhar com renderização usando iluminação global no Blender, mas como são ferramentas externas ao software, não estamos livres de problemas com a integração dos renderizadores com o Blender. Seria ótimo ter alguma coisa parecida já integrada ao Blender, com recursos semelhantes pata trabalhar com a iluminação global sem precisar exportar ou fazer instalações extras. No futuro, isso pode se tornar realidade com o fruto do trabalho de um desenvolvedor chamado Farsthary.

Ele está trabalhando na implementação de ferramentas que usam Photon Mapping e Final Gather direto no render interno do Blender 3D. Já comentei sobre esse recurso aqui no blog também, mas resolvi fazer um novo teste com versões experimentais atualizadas no graphicall.org (windows). Para testar os recursos, criei uma cena bem simples no Blender e adicionei alguns itens de mobiliário para atribuir escala à cena.

blender3d-iluminacao-global-tutorial-01.jpg

Caso você queira se aventurar e fazer o teste também, recomendo fazer o download da versão experimental do Blender, mas se restrinja apenas a usar modelos 3d de teste, ou então material que tenha cópias de segurança. Nos meus testes com a ferramenta, o Blender travou inúmeras vezes no momento da renderização o que pode deixar você um pouco frustrado, mas é perfeitamente normal para algo que ainda está em testes preliminares.

A diferença dessa versão do Blender 3d está no painel de renderização, em que temos um menu chamado Photonmap GI.

blender3d-iluminacao-global-tutorial-02.jpg

Para poder usar esse recurso para renderizar no Blender, precisamos acionar o botão GI no menu Render e configurar o Photon Mapping. As opções são relativamente semelhantes ao que é usado no YafaRay, como o ajuste do número de fótons para determinar a qualidade da imagen, em conjunto com o Final Gather samples.

Depois de terminar a modelagem da cena e posicionar uma fonte de luz, configurei os parâmetros com as seguintes opções:

  • Photon Mapping: 20000 (número de fótons)
  • Bounces: 24 (interações de iluminação indireta)
  • Search: 300 (número de fótons que devem ser considerados no sombreamento das superfícies)
  • Radius diff: 50 (raio de difusão dos fótons)
  • int diff: 30 (intensidade da iluminação gerada pelos fótons)

O resultado final da renderização é esse:

blender3d-iluminacao-global-tutorial-03.jpg

A qualidade da imagem poderia ser bem melhor, mas lembre que essa é uma ferramenta ainda experimental e instável no Blender 3D. Mas, isso nos mostra que em algum futuro não muito distante, essas opções podem ser nativas do Blender 3D.

Iluminação Global no Cinema 4D para visualização arquitetônica

As técnicas e ferramentas de iluminação global já foram usadas como diferencial competitivo em vários softwares 3d no passado, mas hoje é quase que uma ferramenta padrão de todos os softwares. A grande maioria das ferramentas apresenta algum tipo de opção nativa para usar iluminação global. O uso desse tipo de recurso está tão disseminado entre artistas 3d que a grande maioria, sequer estuda ou tenta desenvolver habilidades ou técnicas de iluminação tradicionais. Essa técnica é chamada de Fakeosity, uma alusão a radiosidade, em que o artista tenta por meio de luzes tradicionais, simular o efeito de um ambiente de iluminação global.

Nas minhas aulas sobre iluminação até tento passar alguns desses conceitos, mas depois que as ferramentas de iluminação global são abordadas na aula, dificilmente os alunos querem voltar a ter o trabalho de planejar o posicionamento e cor das luzes. A vantagem em não usar iluminação global é o tempo de render das cenas que é extremamente curto, mas por outro lado é necessário ter habilidade artística para conseguir bons resultados, pois cada cena exige uma solução única.

Se você é usuário do Cinema 4D, existe um tutorial muito interessante sobre iluminação global para ambientes internos nesse link.

tutorial-cinema-4d-iluminacao-global.jpg

Com o tutorial é possível aprender um pouco do funcionamento desse recurso no Cinema 4D, e também perceber como esse tipo de ferramenta é extremamente simples de usar. Na verdade, todo o processo e configuração é feito no painel de renderização, em que o artista deve selecionar a opção para considerar a iluminação global quando a imagem estiver sendo gerada.

Apenas com o ajuste do posicionamento da iluminação e algumas opções no painel de renderização, podemos conseguir ótimos resultados na renderização. Esse tipo de técnica é uma das mais simples em termos de qualidade e fidelidade da iluminação no que se refere ao Cinema 4D, mas é um excelente ponto de partida para quem está aprendendo a usar a ferramenta.

A parte de modelagem do tutorial é bem simples também, consistindo apenas de algumas primitivas geométricas com deformadores aplicados aos objetos de maneira a criar o ambiente para o tutorial. Esse tipo de modelo é muito bom para testes, em termos de semelhança ele remete ao formato do famoso Cornell Box.

Tutorial de Radiosidade com Blender 3D e YafaRay

A radiosidade é uma das diversas técnicas usadas para melhorar a iluminação em ambientes 3d, inclusive é um método de representar a luz que não é muito usado hoje nos diversos renderizadores comerciais V-Ray, Mental Ray e outros. No Blender 3D a radiosidade é mais utilizada para adicionar cores em vértices para projetos que usam render em tempo real na Game Engine. A configuração de uma cena com radiosidade no Blender 3D apresenta algumas particularidades, como a necessidade de um objeto do tipo Mesh que emita energia luminosa na cena. Sim, a maneira com que a radiosidade funciona exige que criemos um objeto que emita luz.

Caso você queira aprender a técnica necessária para reproduzir a iluminação com radiosidade com o Blender 3D, usando o YafaRay para renderizar a cena, o tutorial abaixo mostra a técnica necessária para criar uma simulação dessa maneira. No YafaRay existe uma opção chamada Meshlight que permite aos objetos emitir energia luminosa na cena.

O tutorial está disponível em 720p e também pode ser uma excelente introdução a renderização com o YafaRay com o Blender 3D.

O objetivo do vídeo é criar uma cena em que o cubo com várias faces fragmentadas, apresenta cores e níveis de iluminação diferentes. Para isso será necessário transformar as faces dos objetos em entidades independentes, assim será possível editar e ajustar de maneira mais fácil os materiais. Na modelagem da cena o procedimento é exatamente o mesmo que usamos normalmente no Blender 3d.

No momento da renderização é que usamos as opções de iluminação global do YafaRay, para determinar que os objetos devem emitir luz. Você deve escolher o script que faz a integração entre o Blender 3D e YafaRay. Assim que o YafaRay for acionado, você deve acessar a opção Object/Light/Camera e pressionar o botão “Enable Mesh Light”. Apenas se esse botão estiver pressionado é que os objetos podem ser habilitados para emitir energia luminosa. Podemos escolher opções como a cor da luz e também a intensidade.

Esse procedimento é realizado para cada um dos objetos que emite luz na cena. Depois que está tudo configurado na parte de materiais e objetos que emitem luz, o próximo passo é determinar o método de renderização usado na cena. No YafaRay existem vários métodos, sendo que nesse em particular o autor usou Pathtracing.

Pronto! Agora é só acionar o render e a cena será gerada com os objetos coloridos na cena emitindo energia luminosa. O efeito é exatamente o mesmo que a radiosidade cria em renderizações.

Render interno do Blender 3D com Iluminação Global?

Essa semana foi anunciado mais um projeto que pode mudar significativamente, partes importantes do Blender 3D. O mesmo desenvolvedor responsável pela simulação de volumetria no render do Blender, chamado Farsthary, está engajado na melhoria do renderizador interno do Blender 3D com a incorporação de recursos para gerar iluminação global, que hoje só pode ser realizada com renderizadores externos, como o YafaRay.

O projeto ainda está na sua fase inicial, mas renders já podem ser conferidas nesse link, em que várias imagens e vídeos de teste estão disponíveis. A mensagem que divulgou o projeto, assim como alguns comentários de outros artistas que usam Blender, pode ser conferida nesse endereço do fórum Blenderartists.org.

Para facilitar a percepção de como isso pode ajudar o render interno do Blender, montei um mosaico com algumas das imagens:

blender3d-global-illumination

Um dos recursos que deve ser adicionado ao Blender com esse novo projeto é a possibilidade de simular Caustics. Temos que admitir que é louvável o trabalho de melhorar esse tipo de recurso no Blender 3D, mesmo sendo um trabalho árduo, implementar um sistema de iluminação global no render do Blender, deve exigir uma completa reformulação do software.

Mesmo sendo trabalho voluntário, ainda me pergunto se recursos como o desenvolvimento do já lendário Render API, que permitiria uma melhor integração com outros softwares externos, como o YafaRay, Indigo e quem sabe até com renderizadores comerciais (V-Ray, Mental Ray e outros). Isso hoje ocorre com Scripts em Python que exportam o arquivo temporariamente para um formato compatível com o renderizador.

O meu objetivo não é criticar o desenvolvimento de mais uma ferramenta, apenas refletir sobre a real necessidade dela. As pessoas que ajudam no desenvolvimento do Blender o fazem pelos mais diversos motivos podem ser uma pesquisa acadêmica ou o simples fato de ajudar mesmo.

O problema nesse caso é a perda de foco do Blender, em tarefas que já podem ser realizadas, e muito bem, por softwares livres já existentes e com boa base de desenvolvimento. O YafaRay é um ótimo exemplo disso. Quem sabe mais ferramentas de modelagem, opções de configuração com nós ou animação avançada.

Esse é um ponto delicado no desenvolvimento do Blender, e outros softwares de código aberto. Quando um dos meus alunos me pergunta; por que o pessoal da Fundação não trabalha para criar ferramentas que igualem o Blender ao 3ds Max ou Maya?

A minha resposta é simples; eles não têm obrigação de fazer nada, inclusive o código fonte do software é aberto. Se você quiser criar ou melhorar uma ferramenta, basta fazer o download do código e modificar você mesmo.

Por isso, podemos refletir e até mesmo desejar melhorias no Blender, mas seria demais cobrar resultados ou ferramentas das pessoas que trabalham no código de maneira voluntária.

Só para concluir, acho que é uma coisa boa a iluminação global, mas ainda assim devo continuar usando o YafaRay, pela compatibilidade de projetos passados e atuais. Para chegar no mesmo nível do YafaRay, deve demorar um pouco para que esse projeto seja concluído.

Como configurar a iluminação no LightWave 3D? Simulando o sol!

Desde quando comecei a trabalhar com softwares 3d, sempre conheci o LighWave como sendo o software com o melhor renderizador interno do mercado. Isso foi antes do surgimento e difusão de softwares como Mental Ray, V-Ray, Final Render e Maxwell Render. Hoje em dia o mercado conta com tantas opções que o LightWave perde em mercado até mesmo para o seu maior reduto, que são as produtoras americanas. Ainda encontramos alguns poucos filmes e séries de TV que usam a ferramenta para seus efeitos, mas a base de usuários já foi bem maior.

Só para ter uma idéia, houve uma época em praticamente só o LightWave contava com uma sistema de radiosidade integrada ao render, totalmente nativo e sem a necessidade de comprar nada extra. Hoje a coisa é bem diferente, a Autodesk “manda” o Mental Ray junto do 3ds Max e já tem um sistema de radiosidade integrado.

Nesse ponto, percebemos o quanto a concorrência entre empresas que trabalham com o desenvolvimento de softwares 3d é saudável, sei que a Autodesk não é santa, mas a Newtek perdeu a liderança no seu pacote de aplicativos, sem fazer os prognósticos corretos das ações de sua concorrência.

Bem, deixando essa análise de mercado de lado, voltemos a falar sobre o sistema de renderização do LightWave. Mesmo sem nenhuma perspectiva de usar o software, e nenhum curso em vista aqui pela região, ainda gosto de aprender e entender o sistema de renderização e iluminação pioneiros do LightWave. Os fóruns de usuários da Newtek são um excelente local para encontrar esse tipo de material, e hoje pela manhã fazendo uma visita aos fóruns, encontrei um ótimo tutorial sobre iluminação com o LightWave 3D em vídeo.

Na verdade, o tutorial não aborda o uso das ferramentas padrão do LightWave para renderização, mas sim de um plugin gratuito que permite associar texturas e imagens ao background, para simular de maneira realista a iluminação do sol. O processo é relativamente simples, e no tutorial o autor mostra todos os passos de como o plugin funciona na sua essência.

Depois que a imagem está associada ao ambiente, o autor mostra na maior parte do tutorial as configurações e ajustes necessários nos parâmetros, para conseguir determinados efeitos de iluminação. Para as pessoas que estão interessadas em aprender um pouco mais sobre iluminação, ao menos os parâmetros e testes de render do autor, podem servir para um maior entendimento de como funciona a iluminação com configurações reais.

O arquivo está no formato MOV e tem aproximadamente 140MB (compactado).