Comment fonctionne la reprojection temporelle?

10

L'anticrénelage temporel (et d'autres algorithmes temporels) fonctionne en faisant correspondre les pixels de cette image avec les pixels de la dernière image, puis en utilisant ces informations.

Je comprends que vous pouvez utiliser les matrices de trame dernière et actuelle avec des informations de vecteur de mouvement pour faire correspondre les pixels entre les trames.

Ce que je ne comprends pas, c'est comment savoir si le pixel reprojeté est valide ou non? Par exemple, l'ancien pixel peut maintenant être caché derrière un objet différent.

Est-ce uniquement par couleur? Si oui, comment les textures animées ou les conditions d'éclairage changeantes sont-elles gérées?

Alan Wolfe
la source

Réponses:

4

L'une des stratégies mentionnées dans le discours de Brian Karis sur la TAA est le serrage de quartier. L'idée générale est que, pour que le pixel de l'image précédente soit valide, sa couleur doit être dans la gamme de couleurs trouvée dans le voisinage (disons 3x3 pixels) du pixel actuel de cette image.

Cela rejette l'histoire des conditions d'éclairage changeantes, ce qui est probablement ce que vous voulez de toute façon si vous ne voulez pas que les ombres en mouvement produisent des images fantômes.

(Les textures animées, selon la vitesse de l'animation, peuvent également être gérées avec un vecteur de mouvement, si vous avez une cartographie UV prévisible ou si vous pouvez raisonnablement deviner.)

John Calsbeek
la source
1
Avez-vous entendu parler de quelqu'un qui utilise la valeur du tampon de profondeur comme vérification d'esprit?
Alan Wolfe
@AlanWolfe Non, et je pense que c'est parce que la texture du vecteur de mouvement est généralement à 2 composants: vous auriez besoin d'un composant de changement en Z pour savoir quelle devrait être la valeur du tampon de profondeur, et ce n'est pas bien délimité par la taille de l'écran . Je soupçonne que vous pourriez obtenir de meilleures stratégies de rejet que cela en ajoutant plus d'informations par pixel.
John Calsbeek
Ah ok. Quel type d'informations pensez-vous qu'il serait utile d'ajouter. Des trucs de type paramètre d'ombrage pour pouvoir dire s'il s'agit du même matériau?
Alan Wolfe
1
@AlanWolfe Je n'ai pas beaucoup d'idées concrètes. Je ne suis pas un expert sur le moment où la reprojection temporelle avec le serrage de quartier tombe en panne et produit des artefacts et quelles informations seraient utiles dans ces situations. Peut-être que des transparents (aucune information sur les vecteurs de mouvement) combinés à un éclairage à haute fréquence produisent des artefacts, et vous avez besoin de certaines informations d'obscurcissement. Le crénelage géométrique est peut-être votre problème et vous avez besoin d'autres informations.
John Calsbeek