¿Cómo funciona la reproyección temporal?

10

El suavizado temporal (y otros algoritmos temporales) funcionan haciendo coincidir los píxeles de este cuadro con los píxeles del último cuadro y luego utilizando esa información.

Entiendo que puede usar las últimas y actuales matrices de cuadros junto con la información del vector de movimiento para hacer coincidir los píxeles entre cuadros.

Sin embargo, lo que no entiendo es ¿cómo saber si el píxel reproyectado es válido o no? Por ejemplo, el antiguo píxel ahora puede estar oculto detrás de un objeto diferente.

¿Es solo por color? Si es así, ¿cómo se manejan las texturas animadas o las condiciones de luz cambiantes?

Alan Wolfe
fuente

Respuestas:

4

Una estrategia mencionada en la charla de Brian Karis sobre TAA es el bloqueo del vecindario. La idea general es que, para que el píxel del cuadro anterior sea válido, su color debe estar en el rango de color que se encuentra en la vecindad (digamos 3x3 píxeles) del píxel actual de este cuadro.

Esto rechaza el historial de cambios en las condiciones de luz, que probablemente es lo que desea de todos modos si no desea que las sombras en movimiento produzcan imágenes fantasma.

(Las texturas animadas, dependiendo de la velocidad de la animación, también se pueden manejar con un vector de movimiento, si tiene un mapeo UV predecible o puede adivinar razonablemente bien).

John Calsbeek
fuente
1
¿Has oído hablar de alguien que usa el valor del búfer de profundidad como comprobación de cordura?
Alan Wolfe
@AlanWolfe No, y creo que eso se debe a que la textura del vector de movimiento generalmente es de 2 componentes: necesitaría un componente de cambio en Z para saber cuál debería ser el valor del búfer de profundidad, y eso no está bien limitado por el tamaño de la pantalla . Sospecho que podría obtener mejores estrategias de rechazo que eso al agregar más información por píxel.
John Calsbeek
Ah ok ¿Qué tipo de información cree que sería útil agregar? ¿Tipo de parámetro de sombreado para poder saber si es el mismo material?
Alan Wolfe el
1
@AlanWolfe No tengo muchas ideas concretas. No soy un experto en cuándo la reproyección temporal con bloqueo de vecindad se rompe y produce artefactos y qué información sería útil en esas situaciones. Quizás las transparencias (sin información del vector de movimiento) combinadas con la iluminación de alta frecuencia están produciendo artefactos, y usted necesita información oscura. Quizás el alias geométrico sea su problema y necesite otra información.
John Calsbeek