Welcher Vektor sollte in einem physikalisch basierten BRDF zur Berechnung des Fresnel-Koeffizienten verwendet werden?

11

Die bekannte Schlick-Näherung des Fresnel-Koeffizienten ergibt die Gleichung:

F=F0+(1F0)(1cos(θ))5

Und ist gleich dem Punktprodukt des Oberflächennormalenvektors und des Ansichtsvektors.cos(θ)

Es ist mir jedoch immer noch unklar, ob wir die tatsächliche Oberflächennormale oder den Halbvektor . Welches sollte in einem physikalisch basierten BRDF verwendet werden und warum?NH

Soweit ich weiß, gibt der Fresnel-Koeffizient außerdem die Wahrscheinlichkeit an, dass ein bestimmter Strahl entweder reflektiert oder gebrochen wird. Ich habe also Probleme zu verstehen, warum wir diese Formel immer noch in einem BRDF verwenden können, das das Integral über die gesamte Hemisphäre annähern soll.

Diese Beobachtung würde mich denken lassen, dass hierher kommen würde, aber es ist mir nicht klar, dass der Fresnel einer repräsentativen Normalen der Integration des Fresnels aller tatsächlichen Normalen entspricht.H

Julien Guertault
quelle

Antworten:

8

In Schlicks 1994er Arbeit "Ein kostengünstiges Modell für physikalisch basiertes Rendern" , in der sie die Näherung ableiten, lautet die Formel:

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

Wo

Beschreibung der Vektoren

Um Ihre erste Frage zu beantworten, bezieht sich auf den Winkel zwischen dem Ansichtsvektor und dem Halbvektor. Denken Sie für eine Minute daran, dass die Oberfläche ein perfekter Spiegel ist. Also: In diesem Fall: θ

Vreflect(V)
NH

Für BRDFs auf bezieht sich der Term auf den statistischen Prozentsatz von Mikrofacetennormalen, die auf ausgerichtet sind . Aka, wie viel Prozent des einfallenden Lichts werden in die ausgehende Richtung reflektiert.D(hr)H

Warum wir Fresnel in einem BRDF verwenden, hat damit zu tun, dass ein BRDF für sich genommen nur ein Teil des gesamten BSDF ist. Ein BRDF schwächt den reflektierten Teil des Lichts ab und ein BTDF schwächt den gebrochenen Teil ab. Wir verwenden den Fresnel, um die Menge an reflektiertem und gebrochenem Licht zu berechnen, damit wir es mit BRDF und BTDF richtig dämpfen können.

BSDF=BRDF+BTDF
Lo(p,ωo)=Le(p,ωo) + ΩBSDFLi(p,ωi)|cosθi|dωi=Le(p,ωo) + ΩBRDFLi, reflected(p,ωi)|cosθi|dωi + ΩBTDFLi, refracted(p,ωi)|cosθi|dωi

Zusammenfassend verwenden wir also , um den Prozentsatz des Lichts zu ermitteln, das in die ausgehende Richtung reflektiert wird , und , um herauszufinden, wie viel Prozent des verbleibenden Lichts reflektiert / gebrochen wird. Beide verwenden , da dies die Oberflächenorientierung ist, die eine Spiegelreflexion zwischen undDFHVV

RichieSams
quelle
Oh, ich hatte total vermisst, dass dies bereits ein Ergebnis in der Zeitung war. Das macht es sicher klar. :) Ich muss es noch einmal lesen, um besser zu verstehen, wie es in das BRDF passt.
Julien Guertault
7

Der Fresnel-Koeffizient sollte mit und nicht mit bewertet werden .N.HN

Sie schrieben,

Ich habe Probleme zu verstehen, warum wir diese Formel immer noch in einem BRDF verwenden können, das das Integral über die gesamte Hemisphäre annähern soll.

Es ist nicht. Das BRDF an sich nähert sich nicht dem Integral über die gesamte Hemisphäre an. Die Rendering-Gleichung bewirkt Folgendes: Sie integrieren über alle einfallenden Lichtrichtungen hinweg, aber jedes Mal, wenn die BRDF innerhalb des Integrals ausgewertet wird, gilt dies für eine bestimmte Auswahl von einfallenden und ausgehenden Strahlrichtungen.

Für Mikrofacetten-BRDFs ist die übliche vereinfachende Annahme, dass einzelne Mikrofacetten perfekte Spiegelreflektoren sind. Dann, da die und , an dem zu beurteilen, die nur microfacets, die dazu beitragen können , sind solche, die sich entlang ausgerichtet sind , weil dies der einzige Weg ist , sie von dem einfallenden Licht reflektieren , um der ausgehende Strahl.V H = normalisieren ( L + V )LVH=normalize(L+V)

Die Normalverteilungsfunktion und der Sichtbarkeitsfaktor im BRDF nähern sich zusammen der Dichte von entlang orientierten Mikrofacetten an , die sowohl aus der als auch aus der Richtung sichtbar sind . Der Fresnel-Faktor wird für diese Mikrofacetten ausgewertet , sodass der richtige Verwendungswinkel der zwischen und oder äquivalent und .L V L H V H.HLVLHVH

Es gibt einige Fälle, in denen dieses Argument geändert wird. Eine ist, wenn das Mikrofacettenmodell etwas anderes als perfekte Spiegelung annimmt. Beispielsweise geht das Oren-Nayar BRDF von Lambertschen Mikrofacetten aus. In diesem Fall muss der BRDF eine Art Integral über alle möglichen Mikrofacettenorientierungen einbauen, die Licht von nach streuen können . Dann hat der BRDF überhaupt keinen Standard-Fresnel-Faktor. Es wird eine andere Formel geben, die sich dem Ergebnis der Integration des Fresnel-Faktors über die normale Hemisphäre annähert.V.LV

Der andere Fall, der in Echtzeitgrafiken auftritt, ist die Reflexion einer Umgebungskarte. Um wirklich richtig zu sein, sollten wir die Umgebungskarte multipliziert mit dem BRDF über alle einfallenden Lichtrichtungen integrieren. In der Praxis wird jedoch häufig eine vorgefilterte Umgebungskarte mit dem dominanten Reflexionsvektor und dann abgetastet multiplizieren Sie es mit einer ungefähren Fresnel-Formel, die vom Winkel zwischen und (äquivalent und ) sowie von der Oberflächenrauheit abhängt. Dies ist eine Annäherung, aber oft gut genug für die Verwendung in Echtzeit.R N V N.R=reflect(V,N)RNVN

Nathan Reed
quelle