Qual è la differenza tra PBR e SSR?


11

Sono molto nuovo nello sviluppo del gioco e ho cercato di capire la differenza tra Screen Space Reflection e Physically Based Rendering.

Ho letto di PBR e, da quello che ho capito, cerca di imitare il modo in cui la luce si riflette nella vita reale, che di solito viene suddivisa in due componenti, speculare e diffusa a seconda del tipo di materiale.

Per quanto riguarda SSR, per favore correggimi se sbaglio, è come i riflessi sembrano su una superficie.

Se la mia comprensione di SSR è corretta, allora non sono uguali? Voglio dire, non è il modo in cui i riflessi guardano su una superficie dipendente dalla rugosità della superficie e così via. Ciò influenzerà quindi quanta luce viene specularmente riflessa e quanto viene riflessa diffusamente. Ancora una volta, per favore correggimi ovunque mi sbagli.

Risposte:


17

Rendering basato sulla fisica

Sei sulla strada giusta quando dici "cerca di imitare il modo in cui la luce si riflette nella vita reale, che di solito viene divisa in due componenti, speculare e diffusa a seconda del tipo di materiale".

Ma abbiamo a lungo modellato materiali con speculazioni e diffuse in giochi e computer grafica. Il trucco è che abbiamo usato queste cose come completamente indipendenti - cambiando la specularità non è cambiata la diffusa:

Esempio di Phong shading comunemente usato nei giochi

Questo è un esempio di Phong shading dal wiki di Blender . Puoi vedere che offre due parametri di intensità speculare e durezza speculare e questi parametri cambiano solo la parte biancastra del riflesso. Il riflesso diffuso blu non cambia affatto.

Il modo in cui i giochi userebbero questo è che un artista avrebbe il compito di mettere a punto questi valori per ciascun materiale fino a quando "sembra giusto". Poiché la "durezza speculare" non è una vera proprietà fisica dei materiali che possiamo misurare con precisione, ha dovuto essere fatta a occhio.

Questo metodo è un po 'fragile. Man mano che cambi l'illuminazione (diciamo, un oggetto dinamico che si muove attraverso aree diverse o in un ambiente con ora del giorno e tempo atmosferico) può apparire sottilmente sbagliato - troppo chiaro o troppo scuro - poiché le condizioni di visualizzazione non sono le stesse del sono stati sintonizzati i suoi parametri speculari.

Inserisci il rendering basato fisicamente, che è un tentativo di fondare le nostre descrizioni dei materiali in proprietà più oggettive e misurabili di superfici reali. Una delle proprietà più apparenti è la conservazione dell'energia: una superficie più ruvida diffonderà la luce in modo diffuso e una superficie più liscia / più metallica rifletterà la luce più direttamente, ma è lo stesso fascio di luce da cui entrambi attingono. Quindi, a parità di altre cose, quando rendiamo più brillante un materiale, la componente diffusa dovrebbe diventare più scura:

Esempio di aumento della riflettività con un albedo costante

Questo esempio è tratto da un articolo di Marmoset che spiega PBR originariamente condiviso da Syntac_

C'è molto di più nel rendering basato sulla fisica che sul risparmio energetico, ma questo è probabilmente il segno più rivelatore che stai lavorando con un sistema basato sulla fisica.

Mantenendo i modelli di riflessione simili a come funzionano i materiali nella vita reale, riduciamo la necessità di fattori di sfumatura e soggettività dell'artista per ottenere un materiale del mondo reale come legno o cemento o pelle che appaia reale in un'ampia varietà di condizioni di illuminazione.

Si noti che un'altra risposta lo ha descritto in termini di illuminazione indiretta dalla luce che rimbalza su altri oggetti nella scena. Mentre molti sistemi di illuminazione che utilizzano modelli basati fisicamente includeranno anche strumenti per modellarlo, di solito è noto con un nome separato di Global Illumination . Questo è l'effetto che fa apparire verde un lato della testa diffusa in questa immagine, illuminato dalla luce che rimbalza sulla parete verde:

Esempio di una tipica scena di test di illuminazione globale

Immagine da questo articolo sull'illuminazione globale

Riflessione dello spazio

Mentre PBR cerca di modellare il modo in cui il materiale riflette la luce, Screenspace Reflection cerca di catturare ciò che viene riflesso - in particolare, per una superficie lucida, simile a uno specchio, cosa dovrei vedere nel riflesso?

Ancora una volta questa è una tecnica di rendering relativamente recente che è probabilmente la più chiara da capire in contrasto con il modo in cui i giochi lo facevano prima:

Rendering capovolto - comune per i piani d'acqua o gli specchi piatti, eseguiamo letteralmente il rendering di tutta la geometria riflessa una seconda volta specchiata sul piano della superficie riflettente. Ciò fornisce riflessi di alta qualità (dettagli completi, oggetti a contatto con la superficie allineati con i loro riflessi) ma funziona correttamente solo per superfici piane. Più una superficie è ondulata o irregolare, meno si comporta come riflessi reali, che dovrebbero distorcere o sfocare in modi complessi.

Mappe cubiche: memorizziamo il colore che verrebbe visualizzato da qualsiasi raggio di vista che si irradia dal loro punto centrale. Eseguendo il rendering dinamico delle mappe cubiche da punti selezionati nella scena, possiamo stimare quale colore deve essere riflesso da qualsiasi superficie arbitrariamente curva. Il problema qui è che la mappa del cubo è completamente corretta solo al suo punto centrale - poiché il punto in cui stiamo simulando il riflesso si sposta intorno alla scena, dovrebbe vedere una parallasse, che non è presente nella mappa del cubo. Ciò significa che gli oggetti non tendono ad allinearsi con i loro riflessi.

La riflessione dello spazio dello schermo tenta di ovviare a queste limitazioni utilizzando la scena renderizzata stessa come fonte di informazioni sulla riflessione. E ' ray-marcia una vista raggio riflesso, utilizzando la profondità della scena, fino a quando non sarebbe intersecano qualcosa nella scena renderizzata.

Diapositiva che descrive i riflessi dello spazio dello schermo con un diagramma di vista laterale

Ecco una slide di una presentazione EA DICE sul loro approccio alle riflessioni nel motore Frostbite .

Ciò significa che (con qualche lavoro algoritmico intelligente) possiamo ottenere riflessi con una precisione ragionevolmente simile al ray-tracing dalle superfici arbitrarie nei giochi, con un corretto allineamento delle superfici a contatto, distorsione e sfocatura, purché la parte riflessa della superficie sia visibile su -screen (cioè non offscreen o occluso da qualcos'altro). Laddove il riflesso non può essere determinato con precisione dal raymarching, di solito viene approssimato usando campioni vicini o una mappa cubica di fallback che rappresenta la scena accanto / dietro la vista della telecamera.

Progetto di esempio che utilizza la riflessione dello schermo

Puoi vedere in questo esempio di riflessione dello spazio dello schermo , l'impressione può essere molto convincente, anche se sono evidenti piccoli errori (vedi il riflesso della parte inferiore dei cubi, che non sono visibili nella cornice renderizzata e quindi semplicemente spalmare e ripetere pixel adiacenti, o i buchi nel riflesso della tenda verde destra accanto al vaso di fiori e nella parte inferiore dello schermo, dove il raymarching non è riuscito a trovare i pixel riflessi giusti). È comune utilizzare questa tecnica per superfici moderatamente lucide / leggermente ruvide per rendere meno visibile l'errore occasionale.


Grazie mille per la risposta. Questo è esattamente quello che volevo sapere.
Kumaresan Sandran,

Per i curiosi, c'è un articolo del 2015 su un metodo semi-avanzato, ma intuitivo per risolvere il problema "vedere il riflesso della parte inferiore dei cubi": cercare l'articolo: "Illuminazione globale multi-scala in Quantum Break"
Sirisian

1

Non sono realmente correlati.

Questo documento di Marmoset spiega bene la PBR senza invocare molta matematica.

I riflessi dello spazio dello schermo, d'altra parte, sono una tecnica dello spazio dello schermo post-processo utilizzata per eseguire il rendering dei riflessi in tempo reale. In genere è molto più economico del rendering delle mappe cubiche per ogni fotogramma, ma può apparire meno accurato e non consentire la riflessione di oggetti fuori schermo.


1
Sono appena venuto qui per aggiornare il link, per chiunque visiti dal 2018 ... marmoset.co/posts/basic-theory-of-physically-based-rendering
sws

@sws evviva aggiornato.
Syntac_
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.