Como funciona a energia luminosa em ambientes 3d? Essa é uma ótima pergunta para uma avaliação (Nota mental: usar isso em algum curso!). Apesar da maioria das pessoas não pensar muito nisso, quando entendemos o comportamento da luz e as suas características, podemos encontrar soluções para iluminação de maneira mais fácil. Pensando nisso, acabei esbarrando sem querer em um ótimo sumário sobre o comportamento da luz no Maxwell render. Mesmo sendo específico do Maxwell, ele mostra alguns dados interessantes sobre o comportamento da luz e dos shaders em geral.

A imagem está hospedada no Imageshack e pode ser copiada livremente. Essa é uma versão pequena do diagrama:

Física da luz

O que podemos concluir desse diagrama? Além da necessidade de estudar um pouco mais de matemática? 🙂

Quando vemos o diagrama que mostra os dados sobre a incidência da luz em uma superfície, podemos identificar facilmente os itens que influenciam nas fórmulas e cálculo geral da luz. Por exemplo:

  • Intensidade da luz
  • Ângulo de incidência da luz
  • Ângulo de reflexão
  • Posição das normais na superfície
  • Ângulo de transmissão da luz
  • Índice de refração das superfícies

Tudo isso influência no cálculo da iluminação, então uma alteração em qualquer item desses pode ser decisivo para uma boa iluminação. Como podemos deduzir isso? Fácil, todos esses itens estão relacionados nas fórmulas matemáticas, sendo assim, não é necessário muito raciocínio lógico para perceber que a alteração em apenas um item, pode mudar completamente o resultado!

Se você não imagina o que faz um shader, existe um ótimo gráfico no sumário. Ele mostra as diferenças entre superfícies, que refletem a luz de maneira diferente, dependendo do cálculo escolhido. Agora você pode conferir o efeito do shader lambert (O Blender tem esse shader). Lá encontramos até a lei de beer-lambert, que dá origem ao nome.

Eu já fiz o download do diagrama e estou pensando em traduzir os textos para usar como exemplo em aula. Não é todo dia que encontramos uma material tão detalhado, com aplicação direta em ambientes 3d, mesmo que seja com o Maxwell render.