Renderizando uma cena com escadas no Blender e YafaRay

O Blender está para receber no futuro um novo renderizador chamado de Cycles que já foi apresentado em vídeos e tutoriais diversas vezes aqui no blog. Entre as vantagens do Cycles é que o mesmo suporta render por GPU e o mesmo aproveita algoritimos avançados de renderização, como o Path Tracing que é excelente para cenas externas. Mas, apesar de estar para receber esse novo renderizador, os artistas que trabalham com visualização de ambientes no Blender ainda tem muito o que produzir com os já existentes renders externos compatíveis com o Blender. E nesse conjunto os destaques na área Open Source são o YafaRay e o LuxRender.

Um exemplo disso é a grande quantidade de material que ainda é publicada nos fóruns de usuários do YafaRay e LuxRender. No fórum do YafaRay um artista chamado Alejandro publicou uma imagem de excelente qualidade, mostrando a representação de uma escadaria interna, que foi inspirada numa fotografia real. Uma das vistas que foi gerada por esse projeto pode ser conferida na imagem abaixo, mas para ter a real noção da qualidade desse render, recomendo visitar o link do fórum e conferir as duas imagens renderizadas e maior resolução.

O processo de criação dessas imagens demorou alguns dias segundo o próprio Alessandro, em uma rápida troca de mensagens com ele, o mesmo explicou que até mesmo a pós-produção da imagem foi realizada dentro do Blender, sem o auxílio de outras ferramentas como o Photoshop ou GIMP.

Mas, isso não é tudo! O artista foi bondoso o suficiente para publicar no mesmo fórum os ajustes que ele utilizou para conseguir chegar nesse resultado de iluminação e parâmetros de renderização no YafaRay. O método usado foi o Photon Mapping que é excelente para cenas internas.

O YafaRay ainda não possui uma versão estável compatível com o Blender 2.5, sendo necessário fazer o download de um build especial no graphicall.org para usar o renderizador. Caso você tenha interesse em aprender mais sobre o seu funcionamento, esse exemplo da cena do Alejandro é uma excelente referência.

Se você sabe alguma coisa sobre esses métodos de renderização, recomendo colocar em prática os seus conhecimento sobre render e iluminação no quiz sobre o assunto, disponível em EAD – Allan Brito.

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.

YafaRay usando Irradiance Cache

Na atualização do Blender para a versão 2.50 e a consequente alteração da API dos scripts, uma gama enorme de ferramentas para modelagem e conversão de arquivos para outros formatos foi perdida. Mas, os desenvolvedores estão correndo para atualizar e criar novamente todo esse material de apoio, que ainda sofrerá pequenos problemas até o lançamento da versão estável do Blender. Entre essas baixas de scripts temos os que exportam para renderizadores externos. Quem quiser tentar renderizar projetos usando o YafaRay ou LuxRender hoje terá problemas no Blender 2.50, pois temos apenas versões experimentais dos scripts disponíveis.

Os usuários do YafaRay devem estar especialmente ansiosos para testar alguns dos recursos adicionados ao renderizador pelos estudantes do projeto Google Summer of Code. Entre esses recursos está o aguardado Irradiance Cache que promete acelerar e muito a criação de imagens realistas. Já existem algumas imagens geradas por versões experimentais do YafaRay com Irradiance Cache rodando no Blender 2.49 disponíveis no fórum de usuários do software.

Essas imagens mostram alguns testes simples, mas que se traduzidos para projetos mais complexos mostram até que ponto podemos chegar em termos de qualidade, e o mais importante com tempos de render extremamente curtos.

yafaray-irradiance-cache.jpg

Crédito da imagem: wizofboz

Como funciona esse Irradiance Cache?

O processo envolve o armazenamento das informações de iluminação em pontos chave das superfícies, para ajudar e acelerar o processo de renderização. Essa é uma técnica usada em muitos renderizadores sofisticados e que pode diminuir significativamente o tempo de render usando Photon Mapping. Para quem não está lembrado, esse é o método indicado para renderizar cenas internas no YafaRay, ou que possuam pequenos pontos de luz e aberturas como janelas. Caso contrário, o método indicado é o Path Tracing.

Ainda é cedo para sair testando o recurso em projetos mais pesados, mas pelo andar do desenvolvimento, devemos encontrar até o final do ano, versões mais estáveis e que podem ser aproveitadas em ambientes de produção. Isso pode muito bem trazer mais usuários para o Blender e YafaRay, pois o tempo de render irá diminuir significativamente sem que aconteça perda de qualidade.

Agora só temos que torcer e esperar que uma versão estável do script que exporta cenas para o YafaRay fique estável e usável no Blender 2.50.

Material gratuito sobre teoria da computação gráfica 3d com YafaRay

O processo de planejamento de qualquer curso ou atividade educacional relacionada com computação gráfica 3d é sempre um desafio, pois é preciso separar o quanto de teoria relacionada ao assunto é necessária para que os alunos consigam atingir os objetivos do curso. Por exemplo, logo no inicio desse ano tive a oportunidade de ministrar um curso sobre visualização de projetos para arquitetura, voltado para artistas 3d. Esse curso tem uma carga de teoria bem pequena e envolve muito mais a parte prática relacionada com a criação e composição de imagens realistas. Boa parte do curso é dedicado a prática e exercícios.

Mas, quando o assunto envolve o ensino de computação gráfica 3d para cursos de graduação ou mesmo pós-graduação o sentido deve ser exatamente o oposto, por mais que seja interessante passar a parte prática da aplicação dos conceitos, os próprios alunos apresentam certa resistência a assimilar esse tipo de conhecimento. Por isso, as minhas aulas preparadas para cursos de graduação e pós, acabam sempre direcionando o conteúdo para a parte teórica, até pela vocação de pesquisa desses alunos.

Existem cursos que fazem o balanço desses dois conteúdos? Claro que sim! O material é um pouco difícil de encontrar, mas é perfeitamente possível. Veja esse exemplo de material sobre renderização com YafaRay e Blender 3D, disponibilizado pelo Alvaro Luna nos fóruns do Blenderartists.org. O material foi organizado para um curso sobre o YafaRay ministrado pelo Alvaro, que é um dos líderes da comunidade de artistas e usuários do YafaRay.

material-gratuito-teoria-computacao-grafica-3d-yafaray.jpg

O material da aula está organizado em uma apresentação de 64 slides que perfaz um pouco da história da computação gráfica, até o uso das tecnologias de renderização mais recentes. Essa é uma lista dos assuntos abordados no curso:

  • História do desenho e computação gráfica
  • Como acontece a renderização
  • A equação do render
  • Processos de renderização e iluminação global
  • Métodos de render usados pelo YafaRay
  • Materiais e shaders
  • Exercícios práticos

Além de explicações acompanhadas de diagramas sobre todos esses métodos e assuntos, o material ainda é composto pode diversos exercícios práticos, propostos no final dos slides. Junto do arquivo PDF existem diversos arquivos do Blender 3D, prontos para uso nas situações indicadas no enunciado dos exercícios.

Se você é aluno de algum curso de graduação ou pós, precisando de material para pesquisa e referência, os slides devem ajudar significativamente com a parte chata da teoria. Aos usuários do Blender 3D interessados em desenvolver suas habilidades com o YafaRay, o download é mais que recomendado.

Dicas de renderização para design de interiores com Blender 3D e YafaRay

Entre os tipos de projetos envolvendo representação de ambientes para arquitetura, podemos classificar os projetos em dois tipos bem distintos. O mais simples de trabalhar e reproduzir é a chamada visualização externa de projetos, que nada mais é que o posicionamento do modelo 3d em espaços abertos, simulando da melhor maneira possível a luz do sol. Como a maioria dos renderizadores e softwares 3d, inclusive o Blender 3d, possui sistemas para reproduzir a luz do sol. Esse tipo de simulação é conhecida como Daylight. No que se refere a complexidade dos projetos, a visualização externa é simples de configurar e conseguir bons resultados em pouco tempo. A facilidade é conseqüência do reaproveitamento dos parâmetros da luz do sol, que mudam pouco de projeto para projeto.

Mas, quando o assunto é renderização de ambientes internos a coisa complica significativamente. Os ambientes fechados apresentam sempre desafios para artistas 3d, pois na maioria das vezes fazem uma mescla de iluminação natural com artificial. Sendo assim, o artista precisa trabalhar com múltiplas fontes de luz e equacionar níveis de reflexão para luz indireta nos materiais, para conseguir bons resultados.

Caso você use o Blender 3d com o YafaRay para renderizar os seus projetos de visualização para interiores, existe uma discussão nos fóruns de usuários do YafaRay que pode ajudar muito na seleção de parâmetros para o método baseado em Photon Mapping. Um artista 3d chamado Yaroslav_L resolveu fazer testes para ajustar os parâmetros do Photon Mapping do YafaRay para design de interiores, usando a cena que ilustra esse artigo. Isso acabou gerando uma série de mensagens e renderizações de teste extremamente úteis para usuários do YafaRay.

dicas-render-design-interiores-blender-3d-yafaray.jpg

Na discussão, o artista aborda o uso de parâmetros e as características do YafaRay e Blender para conseguir o resultado apresentado na imagem. Por exemplo, qual a melhor combinação de valores entre Diff Radius, Search e Photons? Essa é uma dúvida muito comum entre artistas 3d que estão começando a trabalhar com parâmetros e configurações de renderizadores, seja ele o YafaRay ou outros. No artigo indicado, podemos encontrar diversas combinações de valores entre Diff Radius, Search e o número de photons.

Entre os temas abordados no link indicado está a influência que a construção do modelo 3d e a topologia podem ter na solução do render, se o acréscimo ou remoção de paredes faz diferença e a escala do modelo 3d. Além de tudo isso, ainda é possível fazer o download da cena completa no formato do Blender 3D, para que possamos abrir e verificar os ajustes e configurações.

A vantagem em consultar esse tipo de artigo, é que os testes de render já estão prontos e disponíveis para consulta. No processo de aprendizagem desse tipo de recurso, os testes de renderização acabam fazendo o tempo de estudo se prolongar bastante, com a espera para conferir os resultados. Esse tipo de artigo, em que os valores dos parâmetros já estão disponíveis com os resultados visuais, ajudam muito no entendimento do renderizador.