Raxvan a tout à fait raison de dire que les techniques d'anti-crénelage "traditionnelles" fonctionneront dans le lancer de rayons, y compris celles qui utilisent des informations telles que la profondeur pour faire l'anti-crénelage. Vous pouvez même faire un anti-crénelage temporel dans le lancer de rayons par exemple.
Julien a développé le deuxième élément de Raxvan, qui expliquait le super échantillonnage, et a montré comment vous le feriez réellement, en mentionnant également que vous pouvez randomiser l'emplacement des échantillons dans le pixel, mais ensuite vous entrez dans le pays de traitement du signal, ce qui est beaucoup plus profond, et c'est définitivement!
NN
Si vous faites cela, vous pouvez toujours obtenir un alias. C'est mieux que de ne PAS le faire, car vous augmentez votre taux d'échantillonnage, vous serez donc en mesure de gérer des données de fréquence plus élevée (c'est-à-dire des détails plus petits), mais cela peut toujours provoquer un alias.
N
Lorsque vous utilisez uniquement des nombres aléatoires "normaux" comme vous le feriez avec rand () ou std :: uniform_int_distribution, cela est appelé "bruit blanc" car il contient toutes les fréquences, comme la façon dont la lumière blanche est composée de toutes les autres couleurs (fréquences ) de la lumière.
L'utilisation de bruit blanc pour randomiser les échantillons dans un pixel a le problème que parfois vos échantillons s'agglutinent. Par exemple, si vous effectuez en moyenne 100 échantillons dans un pixel, mais qu'ils finissent tous par se trouver dans le coin supérieur gauche du pixel, vous n'obtiendrez AUCUNE information sur les autres parties du pixel, donc la couleur finale du pixel résultant il manquera des informations sur sa couleur.
Une meilleure approche consiste à utiliser quelque chose appelé bruit bleu qui ne contient que des composants à haute fréquence (comme la lumière bleue à haute fréquence).
L'avantage du bruit bleu est que vous obtenez une couverture uniforme sur le pixel, comme vous le faites avec une grille d'échantillonnage uniforme, mais vous obtenez toujours un caractère aléatoire, ce qui transforme l'alias en bruit et vous donne une meilleure image.
Malheureusement, le bruit bleu peut être très coûteux à calculer, et les meilleures méthodes semblent toutes brevetées (qu'est-ce que c'est que ça?!), Mais une façon de le faire, inventée par pixar (et brevetée aussi je pense mais pas à 100%) consiste à créer une grille uniforme de points d'échantillonnage, puis à décaler au hasard chaque point d'échantillonnage d'une petite quantité - comme une quantité aléatoire entre plus ou moins la moitié de la largeur et de la hauteur de la grille d'échantillonnage. De cette façon, vous obtenez une sorte d'échantillonnage de bruit bleu pour pas cher.
Notez qu'il s'agit d'une forme d'échantillonnage stratifié, et l'échantillonnage de disque de poisson est également une forme de cela, qui est également un moyen de générer du bruit bleu:
https://www.jasondavies.com/poisson-disc/
Si vous êtes intéressé à approfondir, vous voudrez probablement aussi consulter cette question et répondre!
Quel est le raisonnement fondamental pour l'anti-aliasing utilisant plusieurs échantillons aléatoires dans un pixel?
Enfin, ce truc commence à s'égarer dans le domaine du traçage de chemin de Monte Carlo qui est la méthode courante pour faire un raytracing photoréaliste. si vous souhaitez en savoir plus à ce sujet, lisez ceci!
http://blog.demofox.org/2016/09/21/path-tracing-getting-started-with-diffuse-and-emissive/