Iluminação Global.


Iluminação Global vem do nome em inglês Global Illumination e pode ser escrito com a sigla “GI”. Mas o que vem a ser iluminação global? Segundo a Wikipedia, é um nome dado a um grupo de algoritmos usado na computação gráfica 3D que tem por função dar mais realismo a iluminação das cenas em 3D. Esses algoritmos não levam em conta somente a luz que vem diretamente de uma fonte de luz (iluminação direta), mas também casos subsequentes que o raio de luz da mesma fonte de luz é refletido por outra superfície na cena, seja reflexivo ou não (iluminação indireta). Melhor definição, impossível. Mas vamos resumir um pouco: iluminação global calcula a luz direta e a luz indireta, onde a última é formada por cáusticos (que são raios refletidos por superficie com reflexo) e os raios refletidos por superfícies sem reflexo.

Mas calma, perai… Raios refletidos por superfície sem reflexo?!

É, confunde um pouco… mas calma, deixa eu esclarecer algumas coisas. Existem dois tipos de specular: Specular reflection e o highlight. É importante saber a diferença entre os dois, mas vamos resumir aqui:

  • Specular reflection: é a reflexão da luz que um espelho, vidro, água, metal e outras superfícies fazem. Nela é possível perceber o que temos ao redor da superfície, ou seja, consegue refletir os raios de luz. No Blender, é conhecido como Ray Mirror. A luz refletida aqui é chamada de cáustico;
  • Specular highlight: não é reflexo! É uma simulação da reflexão onde só é possível perceber a presença de corpos luminosos e não reflete raios de luz – salvo se existir GI, então ele reflete raios de luz de forma irregular como qualquer superfície. No Blender, é conhecido como specular. A luz refletida aqui é justamente a luz da pergunta acima, pelo fato da superfície não ter reflexo.

Em casos específicos (onde a reflexão é pouco nítida), é possível obter um resultado usando specular reflection muito parecido como se tivessemos usando specular highlight, a diferença é que o último usa menos poder de processamento, tornando o render mais rápido. Um pouco complicado de entender, mas na verdade é bem simples. Veja a imagem abaixo e saiba a real diferença entre um e outro.

Nessa imagem é possível perceber algumas diferenças, mas o efeito é praticamente idêntico quando está usando superfícies planas. Agora deixe-me explicar de vez a frase “raios refletidos por superfície sem reflexo”. Eu coloquei “raios refletidos” justamente para poder chegar a essa explicação, pois a palavra “reflexão” não é a mais adequada para estar ai, realmente dá pra entender outra coisa. Vamos trocar por outra. Enfim, já ouviu falar de Cornell Box? É um cena de uma caixa grande contendo um cubo, um paralelepipedo e uma luz. As paredes laterais tem cores diferentes e todos os outros materiais são brancos e opacos. Só existe uma fonte de luz apenas e está localizada no teto. Veja a imagem.

A imagem da esquerda possui somente luz direta e a da direita possui luz direta + luz indireta = GI.

A imagem da esquerda mostra o que, talvez, seria a vida real se não existisse iluminação indireta. A imagem da direita mostra o efeito que temos na realidade (GI). Vamos nos concentrar na imagem da direita. Consegue perceber que as laterais dos cubos estão com cor diferente de todo o resto do cubo? O que acontece é que a luz branca bate na parede (que tem um material específico) e ela absorve todos os níveis de cor, exceto o verde. O raio que não foi absorvido (verde) é refletido até bater em outra superficie. Assim é o ciclo até o raio de luz perder força. Simplificando, a luz está sendo irradiada na cor verde. Então a frase acima ficaria melhor escrita dessa forma: raios irradiados por superfície sem reflexo. Simples, né? Pois é, caro leitor, tomei 5 minutos do seu tempo a toa, hahah.

PS.: Color bleeding é o nome dado a coloração adquirida de superfícies no render, proveniente do rebatimento da luz.

E como a GI ajuda no realismo da minha cena?

A iluminação indireta é um efeito da luz de rebater entre as superfícies, como dito, e esse efeito é primordial para aumentar o realismo de sua cena. Em certas condições (cenas externas), é possível sim ter um render foto-realista sem GI, mas em outros casos não é assim. Principalmente quando o render é um cômodo de uma casa, ai é realmente muito difícil. O rebatimento da luz só traz benefício ao realismo da cena: color bleeding, essencial para um realismo.

Como é possível perceber na imagem anterior, o render que mais se aproxima da realidade é a que possui luz indireta. Eu poderia dar vários exemplos aqui de imagem com e sem GI, mas só um exemplo já basta para que você perceba o quão importante é a iluminação indireta em um render.

Clique aqui e veja os renders em clay (sem materiais nenhum).

A imagem da esquerda possui GI e a da direita não possui GI. Para mim, a imagem da esquerda é muito mais realista que a imagem da direita, não acha? E elas estão exatamente iguais em relação a materiais, luzes e objetos. A diferença é apenas a ausência de GI na imagem da direita.

Eu costumo dizer que quanto mais realismo em uma cena, mais tempo de render ela terá – salvo em casos especiais. Então se usar GI aumenta a qualidade, consequentemente o tempo de render aumenta. E é exatamente isso que acontece:

  • Render com GI: 11 minutos e 55 segundos;
  • Render sem GI: 4 minutos e 40 segundos.

O render sem GI foi 255% mais rápido que o render com GI. Claro que eu fiz esse teste rapidamente – inclusive essa cena é de um tutorial feito pelo usuário Kroni – então a cena não está completamente otimizada, por isso é possível perceber erros (manchas) no mapa de fóton na cena com GI.

Agora vamos analisar a imagem do link que eu deixei abaixo da imagem, o que está branco. O esquema é o mesmo: esquerda com GI e direita sem GI. Como você pode ver, os resultados são extremamente parecidos, diferente da imagem com cor. A única diferença que você enxerga ai é que uma cena está mais clara e a outra mais escura, correto? Beleza, mas porque isso acontece? Seguinte, vamos devagar… Lembra que eu falei que a cor refletida é a única cor que a superfície não absorve? Parede azul absorve todas as cores, exceto o azul, e o reflete. Então, no caso do render sem material (clay render) as paredes são brancas, então a luz irradiada dessa parede é branca. E essa luz branca vai rebater em outro material, clareando ele ainda mais. Percebe? O fato da cena estar mais clara se deve exclusivamente ao color bleeding, que pode não estar visível como numa cena com materiais, mas está lá.

PS.: o preto significa a ausência de cor, ou seja, ele absorve todas as cores e não reflete nenhuma. O branco significa a junção de todas as cores, ou seja, ele não absorve nenhuma cor e reflete todas.

Conclusão

Os benefícios do uso de iluminação indireta é incomparavelmente maior que os malefícios – que aliás é só o aumento do tempo de render. Portanto se você pode usar GI, use!

Anúncios

Tags:, , , , ,

2 responses to “Iluminação Global.”

  1. Solano says :

    Como sempre excelente, Victor!

  2. joana Maduro says :

    Muito bem 🙂 Deu para perceber fixe!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: