Blender Cycles com suporte a SSS e Skin Shader

O uso do recurso Sub Surface Scattering é muito importante para a representação de elementos orgânicos em softwares de renderização, pois o seu objetivo é de reproduzir um efeito que acontece no mundo real. A luz quando passa por materiais semi-transparentes acaba se espalhando de maneira peculiar gerando níveis diferentes de iluminação e transparência como na pele humana. As pessoas que já fazem uso do Blender Cycles devem saber que o mesmo não tem suporte para Sub Surface Scattering (SSS), o que por isso a reprodução de materiais semelhantes a pele humana fica prejudicada.

Mas, assim como já comentei aqui no blog várias vezes o Cycles está em desenvolvimento constante, e apesar de ter recursos que ainda devem ser adicionados ao seu leque de opções, os recursos acabam sendo implementados com grande velocidade. E a grande novidade do Cycles nesses últimos dias é exatamente o suporte ao uso de SSS! Sim, provavelmente no Blender 2.67 teremos o suporte ao uso de shaders com SSS!

O simples fato de ter SSS já é interessante, mas isso não é tudo! Um artista já de posse do recurso começou a fazer experimentos com o SSS do Cycles e já conseguiu bons resultados na reprodução de um shader para a pele humana. A imagem a seguir é uma renderização usando o Cycles e o shader:

Blender Cycles Skin Shader

O objetivo desse shader é o de reproduzir o famoso Arnold Skin Shader, e caso você queira fazer o download do modelo 3d e cena usada para o teste, assim como conferir outras imagens renderizadas com o Cycles, é só visitar esse endereço no blenderartists e conferir as informações do Skin Shader para o Cycles.

Por enquanto o SSS ainda não está totalmente implementado e sequer é possível usar GPU para fazer o render, mas provavelmente até o lançamento do Blender 2.67 já será possível usar sua placa de vídeo para renderizar materiais como pele humana e muitos outros!

Aprendendo a usar o Blender Cycles

E para as pessoas que tem curiosidade de saber trabalhar com o Blender para configurar materiais e também a renderizar com o Cycles, recomendo uma visita ao EAD – Allan Brito para conferir os cursos sobre:

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 materiais semi-transparentes no Cinema 4D (SSS)

A configuração de materiais em projetos 3d é uma arte que exige muito treino e prática para conseguir bons resultados. Qualquer artista 3d já deve ter enfrentado situações em que não conseguia resultados satisfatórios em projetos de renderização, por dificuldades em encontrar os melhores ajustes para representar uma superfície. Por isso, a prática da configuração de materiais é muito importante no processo de aprendizado de qualquer ferramenta 3d. Qual o material mais complicado de configurar e usar? Sem sombra de dúvida, os materiais que apresentam algum nível de transparência sempre são os mais difíceis, principalmente quando envolvem Sub Surface Scattering, conhecido também como SSS.

Esse é um fenômeno ótico que acontece em várias superfícies semi-transparentes de natureza orgânica. Basta colocar a sua mão na direção de uma fonte de luz bem forte como o Sol, e você verá o SSS em ação, com níveis diferentes de luz passando pela sua pele. A dificuldade em configurar esse tipo de fenômeno em materiais 3d está relacionado com a relação que esse efeito tem com a luz. Para conseguir representar o SSS bem, o artista precisa ajustar a direção de fontes de luz para direcionar o efeito de transparência em gradiente na direção da câmera.

Caso você queira aprender a configurar esse tipo de efeito no Cinema 4D, assistindo um tutorial em vídeo que encontrei ontem e que aborda muito bem o assunto, pode conferir no link abaixo como configurar SSS no Cinema 4D.

SSS tutorial 001 from rob redman on Vimeo.

No tutorial o autor não trabalha com materiais tão orgânicos, como a pele humana, mas aborda a criação de superfícies transparentes inorgânicas que podem muito bem representar diversos tipos de plásticos ou líquidos.

Repare que durante o tutorial o autor faz diversos experimentos com posicionamento e configuração de pontos de luz, para criar o efeito no objeto 3d. Dependendo do ângulo e direção da luz, o efeito do SSS é alterado significativamente. Os artistas que usam Cinema 4D podem aproveitar o tutorial para aprender o funcionamento do SSS, mas o conceito relacionado com a técnica pode ser aproveitado por todos.

Esse tipo de conhecimento é útil para diversos softwares pois desde o 3ds Max, Maya, Softimage, Blender 3D e outros, permitem trabalhar com SSS. Inclusive renderizadores externos também permitem usar versões otimizadas do SSS com shaders especiais nos materiais. Por exemplo, com o 3ds Max é possível usar SSS em shaders do Mental Ray, V-Ray, FryRender, Maxweel Render e vários outros. Com o Blender 3D também podemos usar SSS junto com o LuxRender e YafaRay usando shaders especiais.

Subsurface Scattering no 3ds Max com Mental Ray

Um objeto que seja modelado com o objetivo de criar uma superfície orgânica, pode se beneficiar muito de materiais que tenham características de superfícies orgânicas. Dentre essas características dos materiais orgânicos, o subsurface scattering é uma das mais evidentes. Essa característica determina a dispersão da luz, quando o material apresenta algum nivel de transparência. Na maioria dos softwares 3d e renderizadores, essas opções estão disponíveis nas configurações dos materiais.

No 3ds Max uma das maneiras mais simples de conseguir esse efeito, é com o uso do Mental Ray. No menu de materiais do 3ds Max existe um shader próprio para simular subsurface scattering, chamado de SSS – Fast Skin Material. O tutorial abaixo mostra muito bem, e com uma cena simples o funcionamento e configuração desse shader no 3ds Max.

O autor do tutorial aplica o shader em primitivas geométricas simples. Com fica evidente no vídeo, a simples aplicação do shader nesse tipo de objeto já atribui um aspecto orgânico aos objetos.

Além do efeito em si, podemos aprender o processo de criação para uma cena com iluminação de estúdio, usando luzes fotométricas no Mental Ray também. Esse é mais um atrativo para o tutorial, que até comenta um pouco sobre os modos de exposição do 3ds Max. A dica para a iluminação do tipo estúdio é usar o controle logarítmico. Segundo o autor essa é a maneira mais eficiente de gerar renderizações de teste.

Logo depois de selecionar o Fast Skin Material e aplicar esse shader nos objetos da cena, já podemos perceber uma mudança na maneira com que as superfícies são representadas.

Dentre todos os parâmetros de configuração do shader, você deve prestar atenção especial ao valor do Scale Conversion Factor. Esse valor determina a escala do modelo 3d, fazendo com que o Mental Ray faça os ajustes necessários, para representar a dispersão da luz de maneira correta. O autor do tutorial diminuiu apenas o valor desse parâmetro, e conseguiu uma excelente representação de cera no final do tutorial. Se você está estudando o Mental Ray, o melhor é começar fazendo testes nesse parâmetro de configuração.

A maioria das superfícies orgânicas tem algum nível de subsurface scattering. Por isso, essa é uma técnica fundamental para qualquer artista 3d, e pode ser a chave para renderizações mais realistas.

Shader para criar pele humana no Blender 3D

Ontem eu escrevi um artigo sobre o concurso que incentiva artistas a criar objetos e cenas, apenas usando primitivas geométricas, mas especificamente cubos. Convenhamos que apesar de ser um ótimo exercício para a criatividade, esse tipo de material não é atraente para usuários mais avançados. Vamos então fazer o contraponto, com um assunto mais complexo; a criação de materiais para simular a pele humana. Estou falando de materiais configurados, com Subsurface Scattering, Nodes e outros atributos avançados dos materiais, com o objetivo de simular as características da pele humana.

Configurar esse tipo de material é extremamente complexo, principalmente se você não tem um entendimento completo de como funciona um shader e das diferenças entre difusão e especularidade. Para ajudar nessa tarefa, um usuário chamado Pixelvore do Blender Artists, começo a trabalhar na simulação realista de pele humana.

Todo o trabalho dele foi publicando nessa mensagem do fórum, que está gerando ótima repercussão e renders com qualidade excepcional:

Na mesma mensagem, existe uma descrição detalhada de como o ele chegou à configuração desse shader. Tudo é uma combinação de SSS, nós e camadas repetidas de materiais. O autor explica que usar o SSS apenas para simular a pele, acaba passando a impressão de artificialidade na superfície, lembrando mais um plástico do que a pele mesmo.

Então ele tomou a iniciativa de criar um shader próprio para esse tipo de superfície. Mas, para simular a complexidade da pele humana, com as suas camadas de pele, ele chegou à conclusão que a melhor solução seria usar um material composto por várias camadas. Qual a inspiração dele? Na mensagem ele confessa que a inspiração para o material foi o Fast Skin Shader do Mental Ray, que serviu como referência para criar o material no Blender.

Esse é um ótimo exemplo, para reforçar o que digo aqui sempre. É muito importante conhecer como as outras ferramentas 3d funcionam, pois o principio é o mesmo. Foi com essa iniciativa que o Pixelvore conseguiu elaborar esse shader, entendendo como funciona o Fast Skin Shader do Mental Ray e transferindo os conhecimentos para o Blender.

Para os mais apressados, ele fez a gentileza de disponibilizar o material no repositório de materiais do Blender, em que é possível fazer o download apenas do material. Quem está estudando aspectos avançados do Blender, tem a oportunidade de conferir esse ótimo material!

O shader é perfeito para testar nos modelos que estou fazendo com o livro de modelagem de personagens com Blender, do Reinicke. Prometo que, essa semana publico a análise detalhada do livro.