Render e download de cena completa com LuxRender

Os renderizadores que são baseados em física real estão em destaque nos dias de hoje, devido a sua capacidade de usar aceleração por GPU, fazendo com que os tempos de render necessários para gerar boas imagens acabe sendo reduzido de maneira drástica. Entre esses renderizadores temos o LuxRender, que se destaca pela sua natureza totalmente baseada em métodos do tipo Unbiased e também pelo fato de ser distribuído sob uma licença aberta. Até pouco tempo atrás os usuários do LuxRender precisavam de muita paciência para conseguir gerar imagens com qualidade, pois o tempo de espera necessário para ter imagens livres de granulação era muito alto.

A situação é bem melhor com o suporte a render por GPU no LuxRender 0.8 e também com o SmallLuxGPU.

Se você ainda não usou o LuxRender para gerar nenhuma imagem para seus projetos, encontrei uma discussão que pode ser do seu interesse nos fóruns de usuários do LuxRender. Nessa discussão um usuário chamado de strelok publicou um projeto que tentava reproduzir a iluminação dentro de uma cozinha, aproveitando os recursos do LuxRender. Depois de tentar fazer diversos ajustes, ele acabou conseguindo o seguinte resultado:

LuxRender-Cena-Cozinha-download.jpg

Um dos pontos positivos dessa discussão é que o artista acabou disponibilizando os ajustes usados para fazer o render no LuxRender, que sozinhos já valeriam uma visita ao fórum. Mas, para deixar a visita ainda mais interessante ele resolveu publicar a cena completa para download! Sim, você pode fazer a visita ao fórum e de quebra poderá copiar essa cena completa para estudar não só a renderização com o LuxRender, mas também a modelagem 3d do ambiente como um todo.

Esse tipo de acena ajuda bastante os usuários que ainda tem um pouco de dificuldade em gerar modelos 3d pequenos, para adicionar em cenas internas e criar detalhamento. É com esse tipo de produção que podemos trabalhar com projetos de interiores detalhados e com elementos necessários para reproduzir praticamente qualquer cena.

O ideal nesses casos é que você tente reproduzir os objetos da cena, usando o que o artista disponibilizou para download como exemplo. Esse é um excelente método de aprendizado e pode ajudar você a desenvlver habilidades de modelagem 3d.

LuxRays: Mais exemplos de render com GPU no LuxRender

As tecnologias baseadas em render por GPU estão dominando os projetos e trabalhos envolvendo visualização rápida, e não devem tardar a entrar de maneira pesada em animação para cinema e TV. Já existem diversas ferramentas e opções no mercado para as pessoas interessadas em investir nesse tipo de facilidade. Mas, infelizmente na área dos softwares livres as opções são poucas. Entre os projetos mais promissores esta o LuxRays, nome dado a variante do LuxRender que usa GPU como forma de aceleração do render. Essa versão especial do LuxRender ainda está em fase de testes e pode apresentar pequenos bugs no seu uso em trabalhos mais pesados, mas já é grande o número de exemplos e demos de usuários mostrando a sua velocidade.

Para quem já teve oportunidade de usar o LuxRender, ou qualquer render do tipo Unbiased, sabe que o seu ponto fraco é o tempo de render. Uma imagem complexa pode facilmente demorar algumas horas para ficar livre da granulação. Com a ajuda de uma GPU e em algumas situações mais de 100 núcleos dedicados a renderização, podemos reduzir esse tempo de maneira significativa.

O LuxRays ainda é um projeto em desenvolvimento, mas já podemos ter uma idéia de como ele deve funcionar usando o smallLuxGPU que é um experimento desenvolvido por David Bucciarelli com o SDK do OpenCL. Desde que falei sobre o SmallLuxGPU ele já avançou para a versão 1.5.

Os vídeos abaixo são demos de usuários que testaram e compilaram o SmallLuxGPU em cenas 3d completas e gravaram vídeos com suas experiências. O primeiro mostra diversas cenas e exemplos usados inclusive em demos de outros softwares como o iRay da mental images e o Arion da Random Control:

SmallLuxGPU v1.5 (OpenCL) from David Bucciarelli on Vimeo.

Os outros vídeos mostram exemplos diversos de renderização, inclusive com algumas opções de animação:

Como podemos claramente perceber pelos vídeos a velocidade com que as coisas acontecem é visivelmente superior ao render tradicional, baseado apenas em CPU que temos no LuxRender. Para as pessoas que quiserem mais informações sobre como funciona o SmallLuxGPU, visite o link indicado para conferir mais detalhes técnicos, e fazer o download do código fonte com binários para Mac OS X e Windows.

Qual o melhor renderizador externo para o Blender 3D?

Os artistas e profissionais que almejam trabalhar com a visualização de projetos arquitetônicos ou produtos usando softwares como o Blender 3D, passam pelo mesmo tipo de dúvida que os artistas do 3ds Max, Maya e outros. A quantidade de renderizadores externos disponíveis para cada ferramenta é grande, sendo muitas vezes motivo de impasse na finalização de um projeto. Na semana passada um artigo na BlenderNation, mencionou um estudo realizado por um artista chamado Gupta, em que diversas opções de renderização para o Blender 3D foram testadas, comparando qualidade e tempo de render.

O artigo em si pode ser copiado e os resultados ajudam um pouco na escolha de opções como o YafaRay e LuxRender. Qual o melhor entre eles? E o Kerkythea? Sunflow? Todos eles são excelentes renderizadores, mas em minha opinião você deveria se restringir ao uso do LuxRender e YafaRay para seus projetos no Blender 3D.

House View 1

Assim como acontece com as comparações entre ferramentas como o V-Ray e Maxwell Render, que tem propósitos e maneiras de manipular a renderização bem diferentes, o mesmo acontece com o YafaRay e LuxRender com a separação entre renderizadores do tipo biased e unbiased. Qual a diferença?

  • YafaRay – Biased: O renderizador YafaRay é conhecido como biased por usar algoritmos que simulam a maneira com que a luz se comporta no mundo real. Esses truques podem em algumas vezes sacrificar a qualidade e realismo das imagens, em prol da velocidade e eficiência do render. O que podem gerar imagens de maneira mais rápida, mas com um nível de realismo um pouco menor.
  • LuxRender – Unbiased: Aqui temos um renderizador do tipo Unbiased que usa algoritmos que simulam o comportamento real da luz no mundo real. O resultado é um render extremamente realista e com representação de materiais e reflexões fiéis ao que acontece no mundo real também. O problema é que esse realismo exige um alto preço que é o tempo de render mais longo.

Nesse caso a melhor opção é integrar ambas as ferramentas no seu processo de produção, escolhendo cada uma das opções de acordo com as necessidades de cada projeto. Por exemplo, um projeto que exija a criação de imagens internas com alto nível de realismo são adequadas para renderização com o LuxRender. Já os projetos de imagens externas são excelentes para render com o YafaRay, pois o balanço entre qualidade e tempo de render é o melhor nesse tipo de projeto.

Como renderizar árvores com texturas transparentes no LuxRender e Blender 3D?

O uso de texturas para representar elementos como árvores é um dos truques mais eficientes para economizar recursos do computador, tanto na manipulação de cenários complexos como na renderização das cenas. No Blender 3D é possível usar imagens preparadas como texturas aplicadas em planos que representam de maneira realista, elementos como árvores e pessoas. Mas, se o objetivo do projeto for gerar a renderização em softwares como o LuxRender é necessário configurar o mapa de transparência no LuxBlend, para conseguir fazer com que a textura seja exibida com áreas totalmente transparentes. Como é que isso funciona?

O processo se resume a configuração do material no LuxBlend, que deve usar um tipo especial de material chamado Null, para que a textura possa ser configurada como sendo transparente. Antes de começar é necessário dizer que os canais alpha dos arquivos PNG não funcionam no LuxRender, sendo necessário trabalhar sempre com dois arquivos para as texturas, sendo um para o canal diffuse do material e outro para a transparência. O arquivo da transparência é uma imagem em preto e branco, em que as áreas pretas marcam a parte da textura que deve ser completamente transparente.

blender-3d-render-arvores-maquete-eletronica-vegetacao-01.jpg

Essas duas imagens apresentadas na figura acima precisam estar separadas em dois arquivos diferentes, e com o mesmo tamanho em pixels. Para conseguir configurar essa textura no LuxBlend, podemos começar com a criação de um plano simples no Blender, que tem a textura do tipo diffuse aplicada ao plano da maneira tradicional com o mapeamento UV. No LuxBlend escolha o material aplicado ao plano como sendo do tipo Mix. Esse material permite misturar dois tipos de materiais no mesmo objeto.

Assim que o material do tipo Mix estiver escolhido na parte superior da aba de materiais do LuxBlender, determine que o material 2 (mat2) deve ser do tipo Null. Com isso será possível escolher uma textura que vai controlar o nível de transparência do objeto. Repare que na parte superior da área de materiais existe uma opção chamada Amount, logo abaixo do preview do material. Logo na direita dessa opção existe um ícone com a letra T. Acione esse ícone para habilitar o uso de texturas no material Mix.

Determine que a textura é do tipo imagemap e indique o local em que o arquivo com o mapa de transparência está salvo, sem esquecer de indicar o mapeamento como sendo baseado nas coordenadas UV. O resultado final da configuração do material fica assim:

blender-3d-render-arvores-maquete-eletronica-vegetacao-02.png

Com essa técnica é possível usar diversos planos representando árvores no Blender, com o mínimo de recursos do computador. Essa foi a cena usada para testar a configuração, seguida do render final no LuxRender.

blender-3d-render-arvores-maquete-eletronica-vegetacao-03.jpg

blender-3d-render-arvores-maquete-eletronica-vegetacao-04.jpg

Repare que a textura interage de maneira excelente com o plano e a renderização usando a luz do sol, inclusive com a projeção de sombras baseadas no mapa de transparência.

Se você quiser fazer o download das texturas de árvores e vegetação usadas para esse tutorial, visite esse endereço para saber como proceder.

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.