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?
Réponses:
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.
la source
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:
Et donc, le traçage de chemin vous donnerait de meilleurs résultats.
la source