Terceira Dimensão Na Cor Dos Olhos Seus
Entendendo a terceira dimensão na cor dos olhos seus
A maioria dos renders de olhos em CGI perde algo fundamental. A cor fica plana, sem profundidade, parecendo plástico mesmo quando o shader é complexo. O problema não está na textura ou nos mapas de iluminação. Está na forma como você estrutura as camadas de cor para simular volume real. Eu passei três anos tentando consertar isso em produções de close-up cinematográfico. O resultado inicial sempre parecia artificial, mesmo usando SDF (Signed Distance Fields) avançados e subsurface scattering configurado corretamente. Até que percebi que estava esquecendo uma camada intermediária crucial entre a íris e a camada superficial.
O que realmente significa terceira dimensão na cor dos olhos seus
Não se trata de adicionar um terceiro modelo geométrico. A ideia é criar uma separação volumétrica entre três camadas discretas de absorção e dispersão da luz dentro do tecido da íris. A primeira camada é a epiteliais anterior, que atua como filtro de transmissão. A segunda é o estroma, onde ocorrem os padrões coloridos. A terceira é a camada posterior pigmentada, que define o limite escuro. Quando você renderiza apenas duas camadas, o olho ganha aspecto de boneca. A luz entra, reflete internamente uma vez, e sai. Falta o caminho óptico adicional que ocorre quando a luz penetra profundamente no estroma antes de ser espalhada de volta. Esse trajeto extra é o que gera a sensação de umidade e presença física. No meu trabalho com tracking facial para substituição de olhos em VFX, encontrei um problema específico. Os clientes pediam realismo extremo em tomadas 4K com iluminação natural. O shader padrão do sistema que utilizávamos (baseado em um modelo bidirecional simplificado) criava olhos bonitos mas mortos. A solução veio de adicionar um termo de absorção exponencial dependente do ângulo de incidência na camada do estroma, calculado fora do loop principal de raymarching.
Isso reduziu o custo computacional em cerca de quarenta por cento comparado a uma implementação ingênua com múltiplas rebatidas internas, enquanto entregava uma percepção de profundidade superior. O truque é usar uma pré-computação da função de espalhamento para ângulos entre dez e sessenta graus, armazenando em uma lookup table de dois canais.

Implementação prática do modelo tridimensional
Vamos começar pelo básico. Você precisa de pelo menos três buffers de cor durante o shading. Não posso simplificar isso com preguiça de explicar. O olho humano real tem complexidade suficiente para exigir estrutura adequada desde o início. Passo um: Defina a geometria da córnea como uma esfera ligeiramente achatada com raio externo de aproximadamente zero centímetros e onze milímetros e espessura uniforme de meio milímetro. Isso é crítico para o índice de refração correto na interface ar-córnea. Passo dois: Crie o mapa de textura da íris em resolução mínima de quatro mil por quatro pixels. A textura deve capturar os cordões, criptas e a região marginal. Eu costumo fotografar olhos reais sob luz difusa controlada para generar base de referência, depois escaneo as variações de luminância entre camadas.
Passo três: Configure oShader com três subsistemas de cor distintos. O primeiro lida com reflexão especular na superfície da córnea. O segundo calcula transmissão através da córnea e absorção no humor aquoso. O terceiro gerencia espalhamento no estroma da íris com coeficientes dependentes do comprimento de onda. A fórmula básica para a camada do estroma envolve integrar a lei de Beer-Lambert ao longo do caminho óptico efetivo. Cada tom de cor na textura mapeia um coeficiente de absorção diferente. Azul exige menos absorção que marrom porque os pigmentos de melanina variam significativamente entre os espectros. Passo quatro: Adicione a camada posterior pigmentada como máscara alfa com valor fixo de aproximadamente zero vírgula noventa e oito. Isso impede que a luz escape pela parte de trás da íris, simulando o epitélio pigmentado que existe na anatomia real.
Pegadinhas comuns e como evitá-las
O erro mais frequente é usar um único valor de subsurface scattering para todo o olho. A córnea, o humor aquoso e o vitreoso têm coeficientes completamente diferentes. Aplique valores distintos para cada meio. Para a córnea, use algo em torno de zero vírgula dois milímetros de espessura efetiva de espalhamento. Para o humor vítreo, nada de espalhamento significativo, apenas absorção mínima. Outro problema recorrente envolve a pupila. Muitos artistas tratam a pupila como um buraco negro perfeito. Na realidade, há sempre alguma penetração de luz que resulta em efeito red drop quando fotografada de perto. Simule isso com uma pequena penetração radial de luz ambiente mapeada na borda pupilar, com attenuação exponencial rápida. Eu tive um caso onde o cliente reclamou que os olhos dos personagens pareciam "vazios" em câmeras lentas. Investigando, descobri que o problema era a falta de variação temporal no espalhamento. Quando a cabeça se move, a direção da luz incidente muda, alterando o caminho óptico dentro do olho. Implementei uma atualização por frame da direção de illumination no shader e o resultado melhorou dramaticamente, especialmente em Takes com movimentação de câmera suave.

Limitações do método tridimensional
O modelo que descrevi aqui funciona bem para close-ups e planos médios. Em planos longos, onde o olho ocupa poucos pixels na frame, a complexidade adicional pode não justificar o custo computacional. Nesses casos, um shader bidimensional com boa textura já entrega resultado satisfatório. Também há cenários onde o método falha completamente. Simulações de olhos doentes ou com catarata exigem modelagem volumétrica ainda mais sofisticada, com dispersão de partículas opacas no humor vítreo ou na câmara anterior. O modelo de três camadas puras não lida com essas condições patológicas sem extensão significativa. Para quem precisa de alternativa rápida, recomendo usar o modelo de two-layer conic section combinado com Norman Greenthal de espalhamento anisotrópico. Funciona razoavelmente para aplicações interativas como jogos, onde o tempo de quadro é crítico. Mas se o objetivo é cinema fotorealista, o investimento no modelo tridimensional completo vale cada minuto de desenvolvimento adicional.
A chave é entender que não existe configuração universal. Cada projeto tem exigências específicas de resolução, tempo de renderização e fidelidade visual. Teste iterativamente, meça o ganho perceptual contra o custo computacional, e descarte complexidade que não agrega valor visível na tomada final.
Galeria
-
Partituras Musicais: Na cor dos olhos seus - Terceira dimensão - n.º 1999 -
Terceira Dimensão - Na Cor dos Olhos Seus - YouTube -
Terceira Dimensão Na Cor Dos Olhos Seus VERSÃO/REMIX/JEFFERMUSIC - YouTube