Come funziona la riproiezione temporale?


10

L'antialiasing temporale (e altri algoritmi temporali) funzionano abbinando i pixel di questo fotogramma ai pixel dell'ultimo fotogramma e quindi utilizzando tali informazioni.

Ho capito che puoi usare le matrici dei frame attuali e finali insieme alle informazioni sui vettori di movimento per abbinare i pixel tra i frame.

Quello che non capisco però è come fai a sapere se il pixel riproiettato è valido o no? Ad esempio, il vecchio pixel potrebbe ora essere nascosto dietro un oggetto diverso.

È solo per colore? In tal caso, come vengono gestite le trame animate o le mutevoli condizioni di luce?

Risposte:


4

Una strategia menzionata nel discorso di Brian Karis sul TAA è il blocco del vicinato. L'idea generale è che, affinché il pixel della cornice precedente sia valido, il suo colore dovrebbe essere nell'intervallo di colori trovato nelle vicinanze (diciamo 3x3 pixel) del pixel corrente di questa cornice.

Ciò rifiuta la storia dal mutare delle condizioni di luce, che è probabilmente quello che vuoi comunque se non vuoi che le ombre in movimento producano ghosting.

(Le trame animate, a seconda della velocità dell'animazione, potrebbero anche essere gestite con un vettore di movimento, se si dispone di una mappatura UV prevedibile o si può indovinare ragionevolmente bene.)


1
Hai mai sentito parlare di qualcuno che utilizza il valore del buffer di profondità come controllo di integrità?
Alan Wolfe,

@AlanWolfe No, e penso che sia perché la trama del vettore di movimento è di solito a 2 componenti: avresti bisogno di un componente change-in-Z per sapere quale dovrebbe essere il valore del buffer di profondità, e questo non è ben delimitato dalle dimensioni dello schermo . Sospetto che potresti ottenere strategie di rifiuto migliori di quelle aggiungendo più informazioni per pixel.
John Calsbeek,

Ah ok. Che tipo di informazioni pensi possa essere utile aggiungere. Roba di tipo di parametro di ombreggiatura per essere in grado di dire se è lo stesso materiale?
Alan Wolfe,

1
@AlanWolfe Non ho molte idee concrete. Non sono un esperto di quando la riproiezione temporale con il bloccaggio del vicinato si rompe e produce artefatti e quali informazioni sarebbero utili in quelle situazioni. Forse i trasparenti (nessuna informazione sul vettore di movimento) combinati con l'illuminazione ad alta frequenza producono artefatti e sono necessarie alcune informazioni di oscuramento. Forse l'alias geometrico è il tuo problema e hai bisogno di altre informazioni.
John Calsbeek,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.