Ray Tracing with Cones: couverture, triangles superposés et aboutés


10

Dans son article classique Ray Tracing with Cones , John Amanatides décrit une variante du ray tracing classique. En étendant le concept d'un rayon d'un angle d'ouverture , ce qui en fait un cône, les effets de repliement (y compris ceux provenant d'un trop petit nombre d'échantillons Monte Carlo) peuvent être réduits.

Pendant l'intersection cône-triangle, une valeur de couverture scalaire est calculée. Cette valeur représente la fraction du cône qui est couverte par le triangle. S'il est inférieur à , cela signifie que le triangle ne recouvre pas entièrement le cône. D'autres tests sont nécessaires. Cependant, sans l'utilisation de techniques plus avancées, nous savons seulement quelle partie du cône est couverte, mais pas quelles parties.1

Amanatides déclare:

Puisqu'à l'heure actuelle, seule la valeur de couverture fractionnelle est utilisée pour mélanger les contributions des divers objets, les surfaces qui se chevauchent seront calculées correctement, mais pas les surfaces en butée.

Cela n'a aucun sens pour moi. De mon point de vue, c'est l'inverse. Prenons un exemple: nous avons deux triangles attenants , un vert et un bleu, chacun couvrant exactement 50% de notre cône. Ils sont à la même distance du spectateur.

Triangle vert et bleu

Le triangle vert est testé en premier. Il a une valeur de couverture de 0,5, donc le triangle bleu est testé ensuite. Avec une valeur de couverture de 0,5 pour le bleu, notre cône est entièrement couvert, nous avons donc terminé et nous nous retrouvons avec un mélange 50:50 vert-bleu. Génial!

Imaginez maintenant que nous tuions le triangle bleu et en ajoutions un rouge à une certaine distance derrière le vert - se chevauchant . Greeny nous donne à nouveau une valeur de couverture de 0,5. Puisque nous n'avons plus le bleu à tester, nous regardons plus loin dans le cône et trouvons bientôt le rouge. Cela renvoie également une valeur de couverture supérieure à 0, ce qu'il ne devrait pas car il est derrière le vert.

Donc, à partir de cela, je conclus que les triangles attenants fonctionnent bien, tandis que les triangles qui se chevauchent auraient besoin de plus de magie comme des masques de couverture pour être corrects. C'est l'opposé de ce que dit Amanatides. Ai-je mal compris quelque chose ou est-ce une erreur dans le papier?

Réponses:


3

J'ai mis en œuvre un traceur de rayons basé sur le travail d'Amantides mais, comme c'était il y a des années, ma mémoire du papier est un peu rouillée.

Cependant, en ignorant ce cas particulier, en général quand il s'agit de travailler avec une couverture fractionnée, par exemple la composition Alpha (voir "A sur B" ), je comprends que l'hypothèse habituelle est que les éléments en cours de composition ne sont pas corrélés.

Ainsi, si A avec X% de couverture est au-dessus de B avec Y% de couverture et C en arrière-plan, alors on suppose que l'on verra
X% * ​​A + (100-X%) * Y% * B + (100-X %) (100-Y%) * C

Cela a-t-il du sens? Évidemment, cela donnera des "fuites" dans le cas où A et B sont fortement corrélés.

Je pense que j'aurais pu mettre un petit masque sur les rayons pour éviter ces problèmes, mais c'était il y a très longtemps.


Avec cette explication, cela a tout à fait du sens, merci! Dans le cas où vous vous en souvenez, quelle a été votre expérience avec le traçage de cônes par rapport au traçage de rayons normal? Bien sûr, c'est une approximation, mais cela permet-il une accélération considérable à une qualité acceptable?
David Kuri

Oh, ça alors, c'était il y a longtemps. En fait, je n'ai implémenté que le traçage des cônes. Si j'ai vraiment essayé de désactiver la partie du rayon, je ne m'en souviens tout simplement pas, mais si j'ai le temps, je vais essayer de me souvenir des avantages et des inconvénients de suivre la route de traçage des cônes.
Simon F
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.