In un BRDF fisicamente basato, quale vettore dovrebbe essere usato per calcolare il coefficiente di Fresnel?


11

La nota approssimazione di Schlick del coefficiente di Fresnel fornisce l'equazione:

F=F0+(1-F0)(1-coS(θ))5

E è uguale al prodotto punto del vettore normale di superficie e al vettore vista.coS(θ)

Non è ancora chiaro per me, però se dobbiamo usare la superficie effettiva normale o il mezzo vettore H . Quale dovrebbe essere usato in un BRDF basato fisicamente e perché?NH

Inoltre, per quanto ho capito, il coefficiente di Fresnel dà la probabilità che un dato raggio sia riflesso o rifratto. Quindi ho difficoltà a capire perché possiamo ancora usare quella formula in un BRDF, che dovrebbe approssimare l'integrale su tutto l'emisfero.

Questa osservazione tenderebbe a farmi pensare che questo sarebbe dove verrebbe, ma per me non è ovvio che il Fresnel di una normale rappresentante equivale a integrare il Fresnel di tutte le normali effettive.H

Risposte:


8

Nel documento di Schlick del 1994, "Un modello economico per il rendering basato fisicamente" , dove derivano l'approssimazione, la formula è:

Fλ(u)=fλ+(1-fλ)(1-u)5

Dove

Descrizione dei vettori

Quindi, per rispondere alla tua prima domanda, θ riferisce all'angolo tra il vettore della vista e il mezzo vettore. Considera per un minuto che la superficie è uno specchio perfetto. Quindi:

Vreflect(V')
In questo caso:
NH

Per BRDFs microfacet-base, il D(hr) termine si riferisce alla percentuale statistica delle normali microfacet che sono orientati verso H . Ah, quale percentuale della luce in arrivo rimbalzerà nella direzione in uscita.

Per quanto riguarda il motivo per cui utilizziamo Fresnel in un BRDF, ha a che fare con il fatto che un BRDF da solo è solo una parte dell'intero BSDF. Un BRDF attenua la parte riflessa della luce e un BTDF attenua il rifratto. Utilizziamo Fresnel per calcolare la quantità di luce riflessa rispetto a quella rifratta, in modo da poterla attenuare correttamente con BRDF e BTDF.

BSDF=BRDF+BTDF
Lo(p,ωo)=Le(p,ωo) + ΩBSDF*Lio(p,ωio)|cosθio|dωio=Le(p,ωo) + ΩBRDF*Lio, riflesso(p,ωio)|cosθio|dωio + ΩBTDF*Lio, rifratta(p,ωio)*|cosθio|dωio

DFHVV'


Oh, mi ero completamente perso che questo era già un risultato nel documento. Questo certamente lo cancella. :) Dovrò rileggerlo per capire meglio come si adatta al BRDF.
Julien Guertault,

7

HN

Hai scritto,

Ho difficoltà a capire perché possiamo ancora usare quella formula in un BRDF, che dovrebbe approssimare l'integrale su tutto l'emisfero.

Non è. Il BRDF in sé non approssima l'integrale su tutto l'emisfero. L'equazione di rendering lo fa: ti integri su tutte le direzioni della luce in entrata, ma ogni volta che viene valutato il BRDF all'interno dell'integrale, è per una scelta specifica delle direzioni dei raggi in entrata e in uscita.

LVH=normalizzare(L+V)

HLVLHVH

LV

R=riflettere(V,N)RNVN

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.