Pourquoi le traçage de rayons Monte Carlo fonctionne-t-il mieux que le traçage de rayons distribué?

30

J'ai entendu dire que la qualité d'un traceur Monte Carlo Ray (basé sur des algorithmes de traçage de chemin) est beaucoup plus réaliste qu'un moteur distribué (stochastique). J'essaie de comprendre pourquoi, mais je n'en suis qu'au début.

Afin de plonger dans ce sujet et de comprendre les bases, quelqu'un peut-il me diriger dans la bonne direction? Quelle partie de l'algorithme conduit à un résultat de rendu plus réaliste?

p2or
la source
9
Je voudrais plus que "Une recommandation d'un livre solide" car cette question devrait recevoir une réponse directe de quelqu'un qui en est conscient. Nous devons essayer de mettre des informations sur le site au lieu de les pointer hors site.
Robobenklein
@robobenklein Question modifiée, mieux vaut être prudent;)
p2ou
@ChristianRau Supprimer "Merci" devrait être discuté dans une méta, c'est différent sur chaque site d'échange de pile ...
p2ou
1
@poor Non, ce n'est pas vraiment. C'est quelque chose qui ne change nulle part. Et tant que nous n'avons pas de règles spéciales, nous utilisons quand même les règles générales de SE. Mais même alors, je peux difficilement imaginer que quiconque vote ici soit autorisé. Je n'ai jamais vu cela être une bonne pratique sur aucun autre site SE.
Chris dit Réintégrer Monica

Réponses:

31

Le terme "ray ray tracing" a été inventé à l'origine par Robert Cook dans cet article de 1984. Son observation était que pour effectuer l'anticrénelage dans un traceur de rayons, le moteur de rendu doit effectuer un suréchantillonnage spatial - c'est-à-dire prendre plus d'échantillons (c.-à-d. Tirer plus de rayons) que le nombre de pixels dans l'image et combiner leurs résultats . Une façon de procéder consiste à filmer plusieurs rayons à l'intérieur d'un pixel et à faire la moyenne de leurs valeurs de couleur, par exemple. Cependant, si le moteur de rendu trace déjà plusieurs rayons par pixel de toute façon pour obtenir une image anti-crénelée, ces rayons peuvent également être "répartis" entre des dimensions supplémentaires par rapport à la position du pixel uniquement pour échantillonner les effets qui n'ont pas pu être capturés par un seul rayon. . Le point important est que cela vient sans aucun coût supplémentaire en plus du suréchantillonnage spatial, puisque vous tracez déjà ces rayons supplémentaires de toute façon. Par exemple,

Le tracé de rayons de Monte Carlo est un terme légèrement ambigu. Dans la plupart des cas, il s'agit de techniques de rendu qui résolvent l' équation de rendu, introduit par Jim Kajiya en 1986, utilisant l'intégration Monte Carlo. Pratiquement toutes les techniques de rendu modernes qui résolvent l'équation de rendu, telles que le traçage de chemin, le traçage de chemin bidirectionnel, le mappage progressif de photons et le VCM, peuvent être classées comme techniques de traçage de rayons Monte Carlo. L'idée de l'intégration de Monte Carlo est que nous pouvons calculer l'intégrale de n'importe quelle fonction en choisissant au hasard des points dans le domaine d'intégration et en faisant la moyenne de la valeur de la fonction à ces points. À un niveau élevé, dans le tracé de rayons Monte Carlo, nous pouvons utiliser cette technique pour intégrer la quantité de lumière arrivant à la caméra dans un pixel afin de calculer la valeur du pixel. Par exemple, un traceur de chemin fait cela en choisissant aléatoirement un point dans le pixel pour tirer le premier rayon, puis continue de choisir aléatoirement une direction pour continuer sur la surface sur laquelle il atterrit, et ainsi de suite. Nous pourrions également choisir au hasard une position sur l'axe du temps si nous voulons faire un flou de mouvement, ou choisir au hasard un point sur l'ouverture si nous voulions faire la profondeur de champ, ou ...

Si cela ressemble beaucoup au lancer de rayons distribué, c'est parce que c'est le cas! Nous pouvons considérer le lancer de rayons distribué comme une description très informelle d'un algorithme de Monte Carlo qui échantillonne certains effets comme les ombres douces. Le papier de Cook n'a pas le cadre mathématique pour vraiment le raisonner correctement, mais vous pouvez certainement implémenter le lancer de rayons distribué à l'aide d'un simple rendu Monte Carlo. Il convient de noter que le lancer de rayons distribué ne contient aucune description des effets d'éclairage global, qui sont naturellement modélisés dans l'équation de rendu (il convient de mentionner que l'article de Kajiya a été publié deux ans après l'article de Cook).

Vous pouvez considérer le lancer de rayons Monte Carlo comme une version plus générale du lancer de rayons distribué. Le traçage de rayons Monte Carlo contient un cadre mathématique général qui vous permet de gérer pratiquement tous les effets, y compris ceux mentionnés dans le papier de traçage de rayons distribué.

De nos jours, le "tracé de rayons distribué" n'est pas vraiment un terme utilisé pour faire référence à l'algorithme d'origine. Le plus souvent, vous l'entendrez en conjonction avec des "effets de distribution", qui sont simplement des effets tels que le flou de mouvement, la profondeur de champ ou les ombres douces qui ne peuvent pas être manipulées avec un raytracer à échantillon unique.

Benedikt Bitterli
la source
5

Dans le traçage de rayons distribué , vous échantillonnez stochastiquement de nombreux rayons dans des directions qui peuvent ou non être préférées par le BRDF. Alors que dans le tracé de rayons Monte Carlo ou simplement le tracé, vous échantillonnez un seul rayon dans une direction préférée par le BRDF . Il y a donc deux avantages évidents que le suivi de chemin aurait:

  • Calcul moins cher. Ce qui signifie qu'avec la même puissance de calcul, vous avez la liberté de calculer sur plus de hits d'objets par rapport au traçage de rayons distribué où il y a plusieurs rayons.
  • Moins de bruit. Le traçage de rayons distribué échantillonne les rayons dans des directions qui pourraient ne pas être préférées par le BRDF, introduisant ainsi des artefacts indésirables.

Et donc, le traçage de chemin vous donnerait de meilleurs résultats.

ranagraw
la source
2
"Alors que, dans le tracé de rayons Monte Carlo ou simplement le tracé, vous n'échantillonnez qu'un seul rayon dans une direction préférée par le BRDF." En soi, vous ne savez pas comment le rayon est sélectionné. Les approches naïves utilisent des rayons aléatoires. La prise en compte du BRDF est un échantillonnage d'importance et n'est pas inhérent au traçage de rayons Monte Carlo ou au traçage de trajectoire.
David Kuri
4
Je pense que cette réponse est complètement fausse. Vous êtes libre de multi-échantillonner les rayons sortants et de pondérer leur résultat lors de la combinaison. Vous obtenez la même vérité que la technique de la roulette russe, mais il est généralement admis que l'ancienne méthode est plus chère.
v.oddou