Quanto è fisicamente fondata la distinzione diffusa e speculare?


34

Il modo classico di ombreggiare le superfici nella grafica computerizzata in tempo reale è una combinazione di un termine diffuso (lambertiano) e un termine speculare, molto probabilmente Phong o Blinn-Phong.

Immagine da Wikipedia

Ora, con la tendenza verso il rendering basato fisicamente e quindi i modelli di materiali in motori come Frostbite , Unreal Engine o Unity 3D, questi BRDF sono cambiati. Ad esempio (piuttosto universale), l'ultimo Unreal Engine utilizza ancora Lambertian diffuso, ma in combinazione con il modello di microfacet Cook-Torrance per la riflessione speculare (in particolare utilizzando GGX / Trowbridge-Reitz e un'approssimazione Slick modificata per il termine Fresnel ). Inoltre, viene utilizzato un valore di "Metalness" per distinguere tra conduttore e dielettrico.

Per i dielettrici, il diffuso viene colorato usando l'albedo del materiale, mentre lo speculare è sempre incolore. Per i metalli, non viene utilizzato diffuso e il termine speculare viene moltiplicato con l'albedo del materiale.

Per quanto riguarda i materiali fisici del mondo reale, esiste la stretta separazione tra diffuso e speculare e, in caso affermativo, da dove viene? Perché uno è colorato mentre l'altro no? Perché i conduttori si comportano diversamente?

Risposte:


30

Per iniziare, consiglio vivamente di leggere la presentazione Siggraph di Naty Hoffman che copre la fisica del rendering. Detto questo, cercherò di rispondere alle tue domande specifiche, prendendo in prestito immagini dalla sua presentazione.

Osservando una singola particella di luce che colpisce un punto sulla superficie di un materiale, può fare 2 cose: riflettere o rifrangere. La luce riflessa rimbalzerà lontano dalla superficie, simile a uno specchio. La luce rifratta rimbalza all'interno del materiale e può uscire dal materiale a una certa distanza da dove è entrata. Infine, ogni volta che la luce interagisce con le molecole del materiale, perde energia. Se perde abbastanza della sua energia, la consideriamo completamente assorbita.

Per citare Naty, "La luce è composta da onde elettromagnetiche. Quindi le proprietà ottiche di una sostanza sono strettamente legate alle sue proprietà elettriche." Questo è il motivo per cui raggruppiamo materiali come metalli o non metalli.

I non metalli esibiranno sia riflessione che rifrazione. Non metalli

I materiali metallici hanno solo una riflessione. Tutta la luce rifratta viene assorbita. metalli

Sarebbe proibitivamente costoso provare a modellare l'interazione delle particelle di luce con le molecole del materiale. Invece, facciamo alcune ipotesi e semplificazioni.

Semplificazione della rifrazione

Se la dimensione dei pixel o l'area di ombreggiatura è grande rispetto alle distanze di entrata-uscita, possiamo supporre che le distanze siano effettivamente zero. Per comodità, abbiamo diviso le interazioni luminose in due termini diversi. Chiamiamo il termine di riflessione superficiale "speculare" e il termine risultante da rifrazione, assorbimento, scattering e ri-rifrazione che chiamiamo "diffuso". Suddivisione in diffuso e speculare

Tuttavia, questo è un presupposto piuttosto ampio. Per la maggior parte dei materiali opachi, questo presupposto è ok e non differisce molto dalla vita reale. Tuttavia, per materiali con qualsiasi tipo di trasparenza, il presupposto fallisce. Ad esempio, latte, pelle, sapone, ecc.

Il colore osservato di un materiale è la luce che non viene assorbita. Questa è una combinazione sia della luce riflessa, sia di qualsiasi luce rifratta che esce dal materiale. Ad esempio, un materiale verde puro assorbirà tutta la luce che non è verde, quindi l'unica luce che raggiunge i nostri occhi è la luce verde.

Pertanto un artista modella il colore di un materiale dandoci la funzione di attenuazione per il materiale, ovvero come la luce sarà assorbita dal materiale. Nel nostro modello diffuso / speculare semplificato, questo può essere rappresentato da due colori, il colore diffuso e il colore speculare. Prima dell'utilizzo di materiali a base fisica, l'artista avrebbe scelto arbitrariamente ciascuno di questi colori. Tuttavia, dovrebbe sembrare ovvio che questi due colori dovrebbero essere correlati. È qui che entra in gioco il colore albedo. Ad esempio, in UE4, calcolano il colore diffuso e speculare come segue:

DiffuseColor = AlbedoColor - AlbedoColor * Metallic;
SpecColor = lerp(0.08 * Specular.xxx, AlbedoColor, Metallic)

dove Metallic è 0 per i non metalli e 1 per i metalli. Il parametro 'Specular' controlla la specularità di un oggetto (ma di solito è una costante 0,5 per il 99% dei materiali)


1
Perché il raggio incidente viene suddiviso dopo riflessione / rifrazione? Se la luce è una particella, ciò significa che questa particella si divide in modo ricorsivo? E se la luce è un'onda significa che si divide per frequenza (ma in questo caso perché si divide dopo il secondo / terzo / etc)?
nikitablack,

5
La particella non si divide. Piuttosto, le immagini mostrano i potenziali percorsi che potrebbe prendere.
RichieSams,

2
Molte particelle colpiranno lo (quasi) stesso punto dallo (quasi) stesso angolo. Per ogni particella che esce c'è (di solito) una particella che è entrata. Ciò significa che la media del raggio di particelle da un certo angolo in un determinato punto viene suddivisa in diversi (molti) riflessi.
maniaco del cricchetto,

1
Ottima risposta facendo luce sulla maggior parte delle mie domande. Perché la parte speculare dei non metalli è incolore e non è influenzata dall'albedo? Come e dove entra in gioco la polarizzazione ?
David Kuri,

1
"Il colore osservato di un materiale è la luce che non viene assorbita." A questo punto potrebbe valere la pena fare riferimento a Ci sono materiali comuni che non sono rappresentati bene da RGB? discussione, come vengono in mente materiali fluorescenti.
Simon F,

23

In realtà mi stavo chiedendo esattamente questo pochi giorni fa. Non trovando alcuna risorsa all'interno della comunità grafica, in realtà mi sono avvicinato al dipartimento di fisica della mia università e ho chiesto .

Si scopre che ci sono molte bugie in cui la gente della grafica crede.


Innanzitutto, quando la luce colpisce una superficie, si applicano le equazioni di Fresnel. Le proporzioni della luce riflessa / rifratta dipendono da esse. Probabilmente lo sapevi.

Non esiste un "colore speculare"

Quello che potresti non sapere è che le equazioni di Fresnel variano in base alla lunghezza d'onda, perché il indice di rifrazione varia in base alla lunghezza d'onda. La variazione è relativamente piccola per i dielettrici (dispersione, chiunque?), Ma può essere enorme per i metalli (presumo che ciò abbia a che fare con le diverse strutture elettriche di questi materiali).

Pertanto, il termine di riflessione di Fresnel varia in base alla lunghezza d'onda e pertanto le diverse lunghezze d'onda vengono riflesse preferenzialmente . Visto sotto l'illuminazione ad ampio spettro, questo è ciò che porta al colore speculare. Ma in particolare, non c'è assorbimento che accade magicamente in superficie (gli altri colori sono appena rifratti).

Non esiste una "riflessione diffusa"

Come dice Naty Hoffman nel discorso collegato nell'altra risposta, questa è davvero un'approssimazione allo scattering del sottosuolo.

I metalli trasmettono luce

Naty Hoffman ha torto (più precisamente, semplificando). La luce lo fa non viene assorbita immediatamente dai metalli. In effetti, passerà abbastanza facilmente attraverso materiali spessi diversi nanometri. (Ad esempio, per l'oro, sono necessari 11,6633 nm per attenuare la luce 587,6 nm (giallo) della metà.)

L'assorbimento, come nei dielettrici, è dovuto alla legge Beer-Lambert. Per i metalli, il coefficiente di assorbimento è solo molto più grande (α = 4πκ / λ, dove κ è la componente immaginaria dell'indice di rifrazione (per metalli da ~ 0,5 in su) e λ è espresso in metri ).

Questa trasmissione (o più precisamente la SSS che produce) è in realtà responsabile di una parte significativa dei colori dei metalli (anche se è vero che le apparenze dei metalli sono dominate dai loro speculari).


3
Grazie! Conoscevo solo le semplificazioni. Questi dettagli extra sono fantastici
RichieSams,

1
Questa è una risposta affascinante. Potresti chiarire / collegare l'acronimo SSS per favore?
trichoplax,

@trichoplax Grazie! SSS == scattering sub-surface.
imallett,

Grazie :) Se lo chiarisci nella domanda, sopravviverà alla cancellazione dei commenti (che non sono garantiti per essere di lunga durata). Ho modificato un link e hover hover il testo che, si spera, lascia intatta la tua presentazione.
trichoplax,

2
Mentre apprezzo la pedanteria di questa risposta. Lo scattering di sottosuperfici è considerato un effetto scala mm mentre è vero che a intervalli molecolari tutto passa la superficie in una certa misura. Ma il vincolo di base è che generalmente stiamo contando gli effetti della scala mm e provando a sottrarre livelli inferiori come modelli statistici. Quindi il micrometro è uguale a immediatamente poiché la maggior parte dei pixel vede un'area molto più grande di questa. Lo stesso vale per il colore che non esiste in modo significativo in fisica allo stesso modo in cui i nostri occhi e il nostro cervello lo precedono
joojaa,
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.