Équation de rendu - pourquoi insoluble directement?

9

Pourquoi l'équation de rendu, introduite par Kajiya en 1986, n'est-elle pas résoluble directement / analytiquement?

Blongphong
la source
5
Bonne question, aucun effort de recherche.
ivokabel
Que savez-vous des équations intégrales en général? Vous demandez une solution analytique?
galois

Réponses:

16

Je ne suis malheureusement pas en mesure d'ajouter un commentaire à la réponse ci-dessus (pas assez de réputation), donc je vais le faire comme ça.

Je voudrais souligner que ce que Dragonseel décrit est simplement une équation intégrale (en particulier une équation de Fredholm du deuxième type). Il existe de nombreuses équations de ce type qui ont une solution analytique; même certaines formes de l'équation de rendu en ont une (par exemple, la solution d'un four blanc peut être donnée en utilisant une simple série géométrique convergente, même si l'équation de rendu est infiniment récursive).

Il n'est pas non plus nécessaire de biaiser la solution estimée en limitant le nombre de récursions. La roulette russe fournit un outil utile pour nous donner une solution impartiale pour une équation de rendu infiniment récursive.

La principale difficulté réside dans le fait que les fonctions de réflectance (BRDF), de rayonnement émis et de visibilité sont très complexes et contiennent souvent de nombreuses discontinuités. Dans ces cas, il n'y a souvent pas de solution analytique, ou il est tout simplement impossible de trouver une telle solution. Cela est également vrai dans le cas unidimensionnel; la plupart des intégrales manquent de solutions analytiques.

Enfin, je voudrais noter que même si la plupart des cas de l'équation de rendu n'ont pas de solutions analytiques, il y a beaucoup de recherches sur les formes de l'équation de rendu qui ont une solution analytique. L'utilisation de telles solutions (comme approximations) lorsque cela est possible peut réduire considérablement le bruit et accélérer les temps de rendu.

Tom van Bussel
la source
13

L'équation de rendu est la suivante:

entrez la description de l'image ici

Maintenant, l'intégrale est sur la sphère autour du point . Vous intégrez sur une lumière atténuée, venant de toutes les directions.x

Mais combien de lumière entre? Il s'agit de la lumière qu'un autre point réfléchit dans la direction du point .L(x,ωi)xωix

Vous devez maintenant calculer la quantité de lumière réfléchie par ce nouveau point , ce qui nécessite de résoudre l'équation de rendu pour ce point. Et la solution pour ce point dépend d'un grand nombre d'autres points, y compris .xx

En bref, l'équation de rendu est infiniment récursive.

Vous ne pouvez pas le résoudre exactement et analytiquement car il a des intégrales infinies sur des domaines d'intégration infinis.

Mais comme la lumière s'affaiblit à chaque fois qu'elle est réfléchie, à un moment donné, un humain ne peut tout simplement plus remarquer la différence. Et donc vous ne résolvez pas réellement l'équation de rendu, mais vous limitez le nombre de récursions (par exemple les réflexions) à quelque chose qui est «assez proche».

Dragonseel
la source
1
Eh bien, vous pourriez probablement résoudre l'équation de rendu d'un point analytiquement si vous aviez une scène stupidement simple. Et peut-être pourriez-vous obtenir une solution analytique pour l'image projetée entière si votre scène est encore plus simple que cela. Mais ce serait inutile ... :)
joojaa
3
La scène devrait être vraiment simple comme un seul objet plat. Puisqu'il y a intégration sur toute la sphère même s'il y a deux points qui peuvent se voir, l'équation de rendu devient infinie. Chaque point inclut l'autre dans le domaine d'intégration. donc Un seul réflecteur qui ne peut pas réfléchir sur lui-même. alors vous pourriez le résoudre. Il n'y aurait alors tout simplement aucun effet d'éclairage global, ce qui revient à un éclairage local. Et c'est résoluble.
Dragonseel
Oui, ce serait stupidement simple.
joojaa
2
@joojaa À ma connaissance, ce n'est pas que l'équation de rendu soit impossible à résoudre dans tous les cas, mais plutôt que pour chaque fois qu'elle est résoluble, elle n'a aucune utilité pratique
galois
4
Pour info, la syntaxe Mathjax fonctionne sur ce StackExchange, donc si vous mettez des signes $ autour de vos identifiants, ils ressembleront à math-y.
Julien Guertault