Novos recursos do LuxRender 0.8

O renderizador de código aberto LuxRender que usa métodos de renderização do tipo Unbiased, está para receber uma atualização para breve, e a sua versão 0.8 já está em Release Candidate 1. Isso significa que já podemos começar a aproveitar os benefícios da versão 0.8 apenas com alguns bugs que podem vir a aparecer, mas o que existe já está muito próximo da versão final. Para quem não conhece, o LuxRender é um renderizador externo de código aberto que funciona muito bem com o Blender. Um dos pontos fortes do LuxRender é o uso de métodos de renderização como o sofisticado algoritmo Metropolois que é capaz de fazer cálculos de iluminação com base em física real. O resultado é uma imagem com grande fidelidade e qualidade fotográfica, mas que demandam grandes tempos de render para ficarem prontas.

O processo de render no LuxRender é baseado em refinamento progressivo, o que significa dizer que a imagem final do render é gerada de imediato, mas em baixa qualidade. Ao longo do tempo o renderizador refina a imagem e remove o seu aspecto granulado.

Oulierrejection_comparison-LuxRender-08.jpg

Na esquerda temos a aplicação do novo filtro para remover artefatos no LuxRender 0.8.

Quais são as novidades do LuxRender 0.8? Esse link agrega todos os novos recursos do LuxRender 0.8 em formato de lista e com várias imagens de exemplo. Para ajudar no entendimento do conteúdo, compilei a lista com uma descrição traduzida sobre cada uma das suas novas ferramentas:

  • Volumetric Scattering: Esse recurso adiciona a possibilidade de simular materiais como pele humana, cera e outros. O resultado é conhecido também como Subsurface Scattering (SSS).
  • External Photon Mapping: Aqui temos um novo método de renderização que já era utilizado em outros renders como o YafaRay. No caso do Photon Mapping é possível gerar a iluminação aproveitando um mapa de fótons nas superfícies dos objetos 3d. Para cenas internas e que façam uso de renderização do tipo Biased, esse é o novo método recomendado de render no LuxRender.
  • Outlier Rejection: Um dos problemas desse tipo de renderizador é a existência de pequenos artefatos na imagem conhecidos como Fireflys. São pequenos borrões que podem demorar uma edternidade para sair, ou mesmo não sair do render final. Até a versão 0.7 tínhamos que recorrer a edição das imagens para remover esses borrões. Agora cm um filtro chamado de Outlier Rejection esse processo fica bem mais simples, pois o próprio LuxRender remove os borrões usando um filtro.
  • Glossy Translucent: Materiais translúcidos que fazem uso de reflexões são mais fácies de criar agora com o uso desse novo material.
  • Film Response: Opções melhoradas para simular a sensibilidade de filmes fotográficos deixam as imagens mais realistas com o novo Film Response.
  • Microdisplacement: O LuxRender suporta o uso de Microdisplacement que são pequenas deformações na superfície do modelo 3d, geradas durante a renderização.
  • Suporte a arquivos PLY: Agora o LuxRender permite importar arquivos para seus projetos usando o formato PLY, sem a necessidade de exportar modelos em ASCII.
  • Aceleração por GPU: Esse é um dos destaques dessa nova versão. Usando as experiências do SmallLuxGPU, a nova versão do LuxRender implementou aceleração por GPU usando OpenCL. Isso significa dizer que o tempo de render poderá ser reduzido drasticamente se você possuir uma boa placa de vídeo. Na descrição do recurso esse novo módulo foi até chamado de BigLuxGPU!
  • Melhorias na interface: Novas opções para exportar imagens e pequenos ajustes na interface do LuxRender foram implementadas.

A lista não é pequena e temos diversas novidades interessantes, sendo para mim a aceleração por GPU um dos maiores destaques. Se ela realmente aproveitar os núcleos disponíveis em placas de vídeo modernas, teremos tempos de render bem reduzidos.

Como estou recebendo muitos pedidos para tutoriais sobre o LuxRender com o Blender 2.5, vou prepara uma seqüência de vídeos mostrando os novos recursos para breve. Assim aproveito para voltar a produzir tutoriais em vídeo. Para quem já quiser aproveitar o LuxRender usando GPU, recomendo fazer o download no Graphicall.org de builds já integradas do Blender 2.5.

Octane Render: Renderizador realista baseado em GPU

A renderização por softwares que usam algoritmos ou métodos do tipo Unbiased para gerar imagens são notoriamente mais realistas, pela sua fidelidade em relação ao comportamento da luz com a física real. Apesar da sua fidelidade com o realismo dos ambientes, esse tipo de software demanda longos tempos de render para gerar imagens sem a granulação característica por esse tipo de imagem. Por exemplo, as imagens geradas por softwares como o LuxRender, Indigo Render ou Maxwell Render podem necessitar de várias horas de render para conseguir gerar imagens de qualidade. Uma das maneiras de acelerar esse processo é usando computadores com diversos núcleos ou então render em rede.

Um renderizador chamado Octane Render foi anunciado no início dessa semana prometendo revolucionar a velocidade e maneira com que os renders do tipo Unbiased funcionam. O seu segredo é fundamentar o seu processo de geração de imagens na GPU e não na CPU, aproveitando o poder das modernas placas de vídeo que já apresentam diversos núcleos em paralelo.

Já conheço esse software desde metade do mês passado, pois faço parte dos beta testers convidados a participar dos estudos e testes do renderizador, e posso dizer que é realmente impressionante o resultado e velocidade do software. O vídeo abaixo mostra uma rápida demonstração do software usando uma cena crida no Blender 3D. Com o Octane é possível importar modelos 3d no formato OBJ que pode ser gerado por praticamente qualquer ferramenta 3d.

Como o render é gerado pela GPU, a manipulação e ajustes da cena são feitos em tempo real pelo artista. O software como um todo é baseado em nós, o que pode confundir um pouco as pessoas com pouca experiência nesse tipo de sistema, mas é apenas questão de costume.

Depois de todos esses pontos positivos chegou a hora de falar sobre o que não é muito agradável! O software será pago? Sim, o Octane será um software comercial seguindo os mesmos moldes do Indigo Renderer mas muito mais barato. O seu custo está estimado em 99 Euros no lançamento previsto para Fevereiro desse ano. Mais informações sobre a ferramenta podem ser encontradas no web site da Refractive Software, empresa responsável pelo desenvolvimento do software.

Assim que tiver mais material disponível, publico uma análise mais detalhada sobre a ferramenta inclusive com vídeos.

Tabela com tipos de lâmpadas disponíveis no LuxRender para design de interiores

Entre todos os renderizadores externos disponíveis para o Blender 3d, um dos mais simples de usar e configurar é o YafaRay. Mas, mesmo sendo simples o YafaRay ainda exige dos seus usuários o conhecimento sobre o funcionamento dos seus parâmetros para que seja possível criar imagens de qualidade e materiais com características que se assemelhem a superfícies reais. Nesse quesito o LuxRender e o seu script de exportação no Blender são bem mais amigáveis para usuários menos experientes. No LuxBlend é possível encontrar uma excelente gama de presets (ou modelos) prontos para uso em qualquer projeto. Os presets abrangem tanto as configurações do render como os materiais usados na cena.

O problema dos presets é que nem sempre podemos avaliar o impacto que a escolha de cada preset tem no projeto. Para ajudar nessa avaliação, existem algumas tabelas de materiais e luzes com a aplicação dos presets em cenas renderizadas no LuxRender. Com esse tipo de recurso podemos usar uma referência visual para selecionar o melhor preset para nosso projeto. Uma dessas tabelas acaba de ser atualizada e representa a aplicação dos espectros de luz em objetos configurados para emitir energia luminosa no LuxBlend.

Como funciona esse espectro?

Nos projetos envolvendo o LuxRender é necessário usar planos ou objetos que emitem energia luminosa, que são mais adequadas para a simulação de física real nos renderizadores Unbiased. Quando escolhemos um material do tipo Light é possível associar texturas nessa luz, que por padrão sempre ficam marcadas como blackbody.

Existe outra opção chamada de “lampspectrum” que habilita o uso de diversas opções de luzes prontas no render. Pelo nome da lâmpada fica complicado diferenciar os tipos e efeitos que cada luz terá na cena. O processo fica muito mais simplificado com a ajuda da tabela.

tabela-lampadas-luxrender-design-interiores-02.jpg

tabela-lampadas-luxrender-design-interiores.jpg

Essas informações armazenadas no LuxBlend funcionam de maneira muito semelhante as luzes fotométricas, mas com a vantagem de não necessitar dos arquivos com extensão “.ies” com as informações da fonte de luz. Tudo está pronto para uso no LuxRender.

É por esse tipo de recurso que o LuxRender está se tornando de longe a opção preferida pelos meus alunos, sempre que mostro os presets e comparo com o YafaRay e Indigo, os alunos acabam preferindo usar o LuxRender pela rapidez na configuração da cena e dos materiais. O tempo de render é maior, mas a parte mais complicada fica muito mais simples para pessoas sem experiência com ajustes de materiais e parâmetros de renderização.

Claro que essa é uma solução que deve ser adotada apenas no primeiro contato com a ferramenta, para com o tempo deixar os presets de lado e criar suas próprias configurações e ajustes personalizados.

Truque para minimizar o granulado dos renderizadores Unbiased

Os renderizadores chamados de Unbiased são baseados em física real para computar as informações e interações da luz nos ambientes 3d, o que inevitavelmente resulta em imagens com elevado grau de realismo. A maneira com que esses renderizadores funcionam demanda grande quantidade de cálculos e processamento para que a imagem seja gerada. Alguns usuários iniciantes até estranham a maneira com que os renders funcionam. O processo é chamado de renderização por refinamento progressivo, em que a imagem é gerada com grande quantidade de borrões e um granulado no render. Com o passar do tempo, mais interações são realizadas com a iluminação e a imagem vai ficando mais limpa.

Em algumas situações é necessário um tempo incrivelmente longo para gerar imagens totalmente livres de granulação. Para solucionar esse tipo de problema, existem basicamente duas soluções que são a renderização em rede, para acelerar as interações ou partir para a pós-produção. Caso você não tenha uma rede de computadores a disposição para renderizar, vou mostrar um truque bem simples que ajuda um pouco na finalização das imagens.

Ontem publiquei um artigo que mostra a modelagem de uma cadeira Panton no SketchUp. Para testar o método de modelagem no Blender 3D, acabei reproduzindo o modelo usando a mesma seqüência de modelagem e renderizei com o LuxRender a imagem. Como não queira ficar esperando por muito tempo para que a imagem ficasse livre do granulado, deixei as interações se desenvolvendo por aproximadamente 2 horas em um computador da faculdade. Para finalizar a imagem, use o Pixelmator para remover um pouco do granulado. Essa é a imagem gerada pelo LuxRender:

blender3d-imagem-editar-01.png

Agora a técnica que pode ser reproduzida em qualquer editor de imagens, seja ele o GIMP ou Photoshop. O processo consiste na criação de duas camadas no software de edição, em que o processo de edição é todo realizado na camada superior.

Altere a transparência da camada superior para apenas 40% e aplique um filtro Gaussian Blur de aproximadamente 20%. Pronto! A imagem ficará com um leve efeito de Glow e o granulado será minimizado.

blender3d-imagem-editar-02.png

blender3d-imagem-editar-03.png

Como as opções de gerenciamento de camadas e o filtro Gaussian Blur são comuns em praticamente todos os softwares de edição, o procedimento pode ser aplicado na maioria dos editores de imagem. Não é uma solução definitiva, mas ajuda a minimizar o granulado de maneira bem rápida.

Tutorial de renderização com Blender 3D, MOI3D e LuxRender

Ao que parece o LuxRender está chamando a atenção de muitos artistas e usuários do Blender 3D, devido a grande quantidade de tutoriais e material educacional que está sendo lançado abordando o software. Será que isso é uma conseqüência indireta da conversão do Indigo em software comercial? Dessa vez o tutorial mostra a integração entre o Blender 3D e o LuxRender, mas de maneira um pouco diferente. O autor do tutorial usa como modelador o um software chamado MOI3D, que é um software baseado em NURBS. Esse software não é gratuito, mas já teve versões beta gratuitas distribuídas por muito tempo. Eu mesmo já usei bastante o MOI3D na época em que versões beta públicas estavam disponíveis. No tutorial, você vai perceber que o autor também usa uma versão beta do software.

O objeto usado para o tutorial é uma lâmpada com tubo em espiral, que pode ser um bom desafio de modelagem para quem quiser tentar reproduzir o objeto. Depois de modelado no MOI3D, o objeto passa pelo Blender 3D e é renderizado no LuxRender usando os materiais e propriedades especiais do LuxBlend para deixar a parte do tubo dessa lâmpada como objeto emissor de luz. O tutorial é bem detalhado e tem aproximadamente 25 minutos.

Rendering MOI3D Models in Blender and Luxrender from Phil Beauchamp on Vimeo.

No início do vídeo é possível acompanhar um pouco da interação com o MOI3D, em que o artista prepara o modelo 3d para exportar para o Blender. O formato de arquivo escolhido para essa tarefa é o LWO do LightWave 3D. Para evitar qualquer tipo de problema com o arquivo no Blender, o modelo é configurado para que seja exportado com todas as arestas sendo conectadas.

Em termos de manipulação de objetos no Blender 3D e LuxRender, os procedimentos realizados no tutorial são bem parecidos com o material que já havia sido publicado aqui no blog. Mas, existe um novo item bem interessante que é abordado pelo autor. Ele usa os grupos de luzes no LuxRender, para ajustar a intensidade das luzes durante a renderização. O recurso é muito parecido com o Multilight do Maxwell Render e ajuda bastante no ajuste da iluminação.

Por exemplo, você pode configurar uma cena para que a iluminação seja feita por objetos emissores de luz e acaba descobrindo depois de um render com mais de 4 horas que a luz está muito fraca. Com esse recurso é possível aumentar a intensidade da luz ainda na renderização!