Por que a equação de renderização, introduzida por Kajiya em 1986, não é solucionável direta / analiticamente?
Por que a equação de renderização, introduzida por Kajiya em 1986, não é solucionável direta / analiticamente?
Respostas:
Infelizmente, não sou capaz de adicionar um comentário à resposta acima (reputação insuficiente), portanto farei assim.
Gostaria de salientar que o que Dragonseel descreve é simplesmente uma equação integral (especificamente uma equação de Fredholm do segundo tipo). Existem muitas dessas equações que têm uma solução analítica; mesmo algumas formas da equação de renderização têm uma (por exemplo, a solução de um forno branco pode ser fornecida usando uma série geométrica convergente simples, mesmo que a equação de renderização seja infinitamente recursiva).
Também não é necessário influenciar a solução estimada limitando o número de recursões. A Roleta Russa fornece uma ferramenta útil para fornecer uma solução imparcial para uma equação de renderização infinitamente recursiva.
A principal dificuldade reside no fato de que as funções de refletância (BRDF), brilho emitido e visibilidade são altamente complexas e geralmente contêm muitas descontinuidades. Nesses casos, muitas vezes não há solução analítica, ou é simplesmente inviável encontrar essa solução. Isso também é verdade no caso unidimensional; a maioria das integrais carece de soluções analíticas.
Finalmente, gostaria de observar que, embora a maioria dos casos da equação de renderização não possua soluções analíticas, há muita pesquisa nas formas da equação de renderização que possuem uma solução analítica. O uso dessas soluções (como aproximações), quando possível, pode reduzir significativamente o ruído e acelerar o tempo de renderização.
A equação de renderização é a seguinte:
Agora, a integral está sobre a esfera em torno do ponto . Você se integra sob alguma luz atenuada, vinda de todas as direções.
Mas quanta luz entra? Esta é a luz que algum outro ponto reflete na direção de ponto .
Agora você tem que calcular quanta luz esse novo ponto reflete, o que requer resolver a equação de renderização para esse ponto. E a solução para esse ponto depende de um grande número de outros pontos, incluindo.
Em resumo, a equação de renderização é infinitamente recursiva.
Você não pode resolvê-lo exata e analiticamente porque possui integrais infinitas sobre domínios de integração infinitos.
Mas como a luz se enfraquece cada vez que é refletida, em algum momento o ser humano simplesmente não consegue mais notar a diferença. E, portanto, você realmente não resolve a equação de renderização, mas limita o número de recursões (digamos reflexões) a algo que seja 'suficientemente próximo'.