Mitsuba: Novo renderizador unbiased de código aberto

Os renderizadores de código aberto estão cada vez mais próximos em termos de velocidade quando comparamos os mesmos as opções comerciais, devido ao auxílio cada vez maior de renderização por hardware e melhorias nos algoritmos. Até pouco tempo atrás tínhamos opções como o LuxRender e YafaRay se destacando no conjunto qualidade e velocidade de render, mas esse número está aumentando. Podem ser opções derivadas como é o caso do SmallLuxGPU que usa o poder das modernas placas de vídeo, ou mesmo novos softwares. Esse é o caso de uma opção muito interessante de render chamado de Mitsuba Render. O software funciona com os mesmos princípios do LuxRender, apresentando técnicas de render do tipo Unbiased. Com essas técnicas podemos gerar imagens baseadas no comportamento físico da luz.

O resultado são imagens com altíssima fidelidade ao que teríamos no mundo real, mas que por outro lado acabam demandando muito tempo para renderizar. Como funciona essa ferramenta? O vídeo abaixo demonstra muito bem o funcionamento do Mitsuba Render, que funciona em praticamente todos os sistemas operacionais.

Mitsuba Renderer Overview from Wenzel Jakob on Vimeo.

A maneira com que o renderizador carrega e manipula arquivos 3d faz com que ele seja compatível com a maioria dos softwares 3d, pois é necessário carregar os arquivos usando o formato COLLADA. Assim que os arquivos são carregados, podemos começar a fazer ajustes no painel de controle do render e determinar a aparência de diversos elementos na tela.

Em termos de recursos a ferramenta está bem fundamentada, mesmo para a versão 0.1.3 temos:

  • Diversos integradores de render com variantes do Metropolis Light Transport, Photon Mapper e Path Tracing;
  • Materiais com efeitos óticos avançados como simulações de SSS e micro-polys ( Exemplo: vidro jateado).
  • Depth of Field
  • Renderização volumétrica para gerar simulações com fumaça e outros elementos translúcidos;

O renderizador é um projeto do desenvolvedor Wenzel Jakob e pode ser aproveitado por estudantes e artistas, que precisem de uma opção extra de render para softwares como o Blender, SketchUp e outros. No caso dessas ferramentas, o único requisito para que as cenas possam ser renderizadas no Mitsuba é a exportação no formato COLLADA.

O autor já publicou no web site do projeto que está planejamento integrar a ferramenta em softwares de modelagem 3d e animação. Espero que o Blender esteja na lista.

Configurando vidro no Blender 3D e Indigo Renderer

Quando o assunto é representar projetos arquitetônicos ou cenários virtuais que precisem de grandes painéis transparentes, será necessário conhecer as nuances e detalhes da configuração de vidro usando o renderizador da sua escolha. Cada renderizador possui ferramentas próprias para representar vidro, como é o caso do LuxRender que tem até mesmo tipologias diferentes para vidro destinado a arquitetura. Como estou usando o Indigo para renderizar alguns projetos antigos, resolvi escrever um pequeno guia sobre a configuração de vidro com o renderizador, para os artistas que também queiram renderizar projetos usando o Indigo.

Existe algum segredo para configurar vidro no Indigo? Sim, precisamos seguir uma regra simples para poder representar vidro, que é a necessidade do objeto possuir volume. Por exemplo, a representação de objetos transparentes usando planos acaba resultando em superfícies completamente pretas. Isso acontece devido ao fato de não existirem superfícies assim no mundo real. É necessário criar algo com volume para representar o vidro, como um box.

O primeiro passo para criar vidro no Indigo é selecionar o shader apropriado para essa superfície que é o “SPECULAR = transparent+sss”. Com o shader selecionado, podemos acionar o botão transparent e alterar o IOR para 1.5, fazendo com que o material represente vidro com ótimo grau de transparência. Isso é feito no Blendigo:

configurar-vidro-blender-3d-indigo-render-01.jpg

Veja esse teste de renderização, em que apliquei o material do vidro simulando uma janela chumbada na parede. Metade da janela está coberta com o vidro, ficando a outra metade sem absolutamente nada. O nível de luz que entra no ambiente é excelente.

configurar-vidro-blender-3d-indigo-render-02.jpg

O resultado do mesmo material aplicado apenas em um plano é uma superfície preta.

configurar-vidro-blender-3d-indigo-render-03.jpg

Mas, e vidro colorido? Isso também pode ser configurado no Blendigo, apenas com a alteração da cor do material na mistura do RGB e do parâmetro Gain. O valor do Gain determina o quanto da cor será usada para representar o material.

configurar-vidro-blender-3d-indigo-render-04.jpg

O resultado da renderização com o vidro colorido é esse:

configurar-vidro-blender-3d-indigo-render-05.jpg

Para representar bem o uso do vidro colorido, resolvi fazer um teste com um pequeno vitral no ambiente, que resultou na seguinte imagem.

configurar-vidro-blender-3d-indigo-render-06.jpg

Repare que a imagem apresenta os temidos fireflies, que são os pontos de luz parecendo pequenos vaga-lumes, comuns em renderizadores do tipo Unbiased, quando acontecem problemas na solução do render. No meu caso, devo testar a cena novamente habilitando o uso do algoritmo Metropolis no render. Uma dica valiosa no Indigo para acelerar o render é desabilitar o Metropolis para cenas simples, o que resulta em cenas limpas de granulação em menos tempo. Nesse caso, acho que será necessário usar o algoritmo, pois existe muita transparência e sombras sofrendo influência de materiais transparentes.