Steuerungstasten

nächste Folie (auch Enter oder Spacebar).
vorherige Folie
 d  schaltet das Zeichnen auf Folien ein/aus
 p  wechselt zwischen Druck- und Präsentationsansicht
CTRL  +  vergrößert die Folien
CTRL  -  verkleinert die Folien
CTRL  0  setzt die Größenänderung zurück

Das Weiterschalten der Folien kann ebenfalls durch das Klicken auf den rechten bzw. linken Folienrand erfolgen.

Notation

Typ Schriftart Beispiele
Variablen (Skalare) kursiv $a, b, x, y$
Funktionen aufrecht $\mathrm{f}, \mathrm{g}(x), \mathrm{max}(x)$
Vektoren fett, Elemente zeilenweise $\mathbf{a}, \mathbf{b}= \begin{pmatrix}x\\y\end{pmatrix} = (x, y)^\top,$ $\mathbf{B}=(x, y, z)^\top$
Matrizen Schreibmaschine $\mathtt{A}, \mathtt{B}= \begin{bmatrix}a & b\\c & d\end{bmatrix}$
Mengen kalligrafisch $\mathcal{A}, \{a, b\} \in \mathcal{B}$
Zahlenbereiche, Koordinatenräume doppelt gestrichen $\mathbb{N}, \mathbb{Z}, \mathbb{R}^2, \mathbb{R}^3$

Liste der verwendeten Symbole

Symbol Bedeutung
$\Omega$ Raumwinkel
$\theta$ Polarwinkel im Kugelkoordinatensystem
$\phi$ Azimutwinkel im Kugelkoordinatensystem
$\Phi$ Strahlungsfluss
$I$ Strahlstärke
$E$ Bestrahlungsstärke
$L$ Strahldichte
$\mathrm{f}_r$ BRDF (Bidirectional Reflection Distribution Function)
$\mathrm{f}_d$ Diffuser Anteil der BRDF
$\mathrm{f}_s$ Spekularer Anteil der BRDF

Liste der verwendeten Symbole

Symbol Bedeutung
$\mathbf{n}$ Oberflächennormale
$\mathbf{v}$ Einheitsvektor in Sichtrichtung
$\mathbf{l}$ Einheitsvektor in Richtung der Lichtquelle
$\eta$ Brechungsindex
$F$ Fresnel Reflexionsgrad
$\mathbf{h}$ Winkelhalbierende (halfway-vector) zwischen Licht- und Sichtrichtung
$(\dots)_+$ Rampenfunktion
$\langle \mathbf{a}\cdot \mathbf{b}\rangle$ Skalarprodukt

PBR Materialien

  • Physik-basiertes Rendering ("Physically-Based Rendering", PBR) ist weit verbreitet
  • Die PBR Materialmodelle [Walter et al. 2007] werden inzwischen überall bei Echtzeit- und Offline-Renderverfahren in der Industrie eingesetzt (Industriestandard) [Disney 2012] [Unreal Engine 2013] [Frostbite 2014]
  • Die BSRF besteht dabei aus folgenden Komponenten [Disney 2015]:
    • BRDF Dielektrika
    • BRDF Metalle
    • BTDF
    • Emission
    • Klarlack (Clear Coat)
    • Glanz (Sheen)
    • Subsurface Scattering
  • Durch Kombination der einzelnen Komponenten können sehr viele verschiedene Materialien dargestellt werden

Disney BSDF

disney_bsdf
BTDF
BRDF Dielektrika
BRDF Metalle
BRDF = Bidrectional Reflection Distribution Function
BTDF = Bidrectional Transmission Distribution Function
BSDF = Bidrectional Scattering Distribution Function

BRDF

Mikrofacetten BRDF

microfacet_model
Mikrofacetten
Makroskopisches Verhalten
$\mathbf{v}$
$-\mathbf{l}$
$\mathbf{h}$
$\mathbf{n}$
  • Mathematische Modellierung der Oberfläche aus Mikrofacetten (sehr viel kleiner als ein Pixel). Je rauer die Oberfläche, desto unterschiedlicher ist deren Orientierung [Cook Torrance 1981]
  • Die BRDF besteht aus einem diffusen und einem spekularen Anteil
    $\mathrm{f}_r(\mathbf{v}, \mathbf{l}) = \mathrm{f}_d(\mathbf{v}, \mathbf{l}) + \mathrm{f}_s(\mathbf{v}, \mathbf{l})$
  • Diffuser Anteil ist konstant (oder null):
    $\mathrm{f}_d(\mathbf{v}, \mathbf{l}) = \frac{\rho_d}{\pi}$
  • Die BRDF des spekularen Anteils lautet:
    $\mathrm{f}_s(\mathbf{v}, \mathbf{l}) = \frac{\mathrm{F}(\mathbf{v},\mathbf{h})\,\mathrm{D}(\mathbf{h})\,\mathrm{G}(\mathbf{l},\mathbf{v},\mathbf{h})}{4\,\,\langle\mathbf{n} \cdot \mathbf{l}\rangle\,\,\langle\mathbf{n} \cdot \mathbf{v}\rangle}$
    mit
    • $\mathrm{F}$: Fresnel Reflexionsgrad
    • $\mathrm{D}$: Verteilung der Mikrofacetten (Rauheit, "Normal distribution function", NDF)
    • $\mathrm{G}$: Geometriefaktor (Selbstverschattung)

Fresnel Reflexion

  • Das Verhältnis von reflektierter und transmittierter Lichtmenge hängt vom Einfallswinkel der Lichtstrahlen und den Brechungsindizes der beteiligten Materialien ab
fresnel_example
Bildquelle: Blue Lounger Beside Swimming Pool, CC0, public domain

Fresnel Reflexion: Dielektrika

  • Licht wird mit einer winkelabhängigen relativen Häufigkeit entweder reflektiert, transmittiert oder absorbiert
  • Der reflektierte Anteil wird an den Mikrofacetten gestreut. Makroskopisch entsteht daraus der spekulare Anteil der Reflexion.
  • Der transmittierte Anteil wird bei opakten Materialien unter der Oberfläche zufällig abgelenkt, teilweise absorbiert (Wellenlängen abhängig) und tritt unter verschiedenen Winkel wieder aus. Makroskopisch entsteht daraus der diffuse Anteil der Reflexion.
  • Je mehr Licht reflektiert wird, desto weniger Licht wird transmittiert und desto kleiner ist demnach der diffuse Anteil
dielectric
Mikrofacetten
Makroskopisches Verhalten
$\mathbf{n}$
Spekularer Anteil
Diffuser Anteil

Fresnel Reflexion: Metalle

  • In Metallen wird der transmittierte Anteil absorbiert, d.h. es gibt keine diffuse Reflexion
  • Der reflektierte Anteil ist Wellenlängen abhängig, daher ist der spekulare Anteil farbig
metals
Mikrofacetten
Makroskopisches Verhalten
$\mathbf{n}$
Spekularer Anteil

Fresnel Reflexionsgrad

fresnel_reflection
$\eta_1$
$\eta_2$
$\theta_1$
$\theta_1$
$\theta_2$
$\mathrm{F}$
$1-\mathrm{F}$
  • Reflektierter Anteil:
    $\begin{align} \mathrm{F}_{\tiny\mbox{para}} &= \frac{\eta_2 \cos \theta_1 - \eta_1 \cos \theta_2}{\eta_2 \cos \theta_1 + \eta_1 \cos \theta_2}\\ \mathrm{F}_{\tiny\mbox{perp}} &= \frac{\eta_1 \cos \theta_1 - \eta_2 \cos \theta_2}{\eta_2 \cos \theta_1 + \eta_1 \cos \theta_2}\\ \mathrm{F} &= \frac{1}{2} \left(\mathrm{F}_{\tiny \mbox{para}}^2 + \mathrm{F}_{\tiny\mbox{perp}}^2\right) \end{align}$
  • Refraktierter Anteil: $1 - F$
  • Bei einem Übergang von optisch dünneren zum optisch dichteren Medium ($\eta_1 < \eta_2$), wird der Strahl hin zur Normalen gebrochen. Im anderen Fall weg von der Normalen.
  • Der mathematische Zusammenhang zwischen Einfallswinkel $\theta_1$ und dem Winkel des gebrochenen Strahls $\theta_2$ lautet:
    $\eta_1 \sin(\theta_1) = \eta_2 \sin(\theta_2)$

Fresnel Reflexionsgrad (Dielektrika)

Material Brechungsindex $\mathrm{F}_0$
Vakuum 1,0 0%
Luft 1,000292 ≈ 0%
Wasser 1,333 2%
Glass 1,5 4%
Plastik 1,5 bis 1,58 4% bis 5%
Diamant 2,42 17,24%
  • Dabei ist $\mathrm{F}_0$ der Reflexionsgrad für den senkrechten Lichteinfall $\theta_1 = 0$:
    $\mathrm{F}_0 = \frac{(\eta_2 - \eta_1)^2}{(\eta_2 + \eta_1)^2} $

Fresnel Reflexionsgrad (Metalle)

Metall $\mathrm{F}_0$ (Linear, Float) $\mathrm{F}_0$ (sRGB, 8-bit) Farbe
Titan (0.542, 0.497, 0.449) (194, 187, 179)
Chrom (0.549, 0.556, 0.554) (196, 197, 196)
Eisen (0.562, 0.565, 0.578) (198, 198, 200)
Nickel (0.660, 0.609, 0.526) (212, 205, 192)
Platin (0.673, 0.637, 0.585) (214, 209, 201)
Kupfer (0.733, 0.697. 0.652) (250, 209, 194)
Palladium (0.733, 0.697, 0.652) (222, 217, 211)
Zink (0.664, 0.824, 0.850) (213, 234, 237)
Gold (1.022, 0.782, 0.344) (255, 229, 158)
Aluminium (0.913, 0.922, 0.924) (245, 246, 246)
Silber (0.972, 0.960, 0.915) (252, 250, 245)
Quelle: Naty Hoffman: Physics and Math of Shading, SIGGRAPH 2015 Course: Physically Based Shading in Theory and Practice

Fresnel Reflexionsgrad

  • Beim Mikrofacetten-Modell wird als Winkel $\theta_1$ der Winkel zwischen Sichtrichtung $\mathbf{v}$ und Halbvektor $\mathbf{h}$ verwendet, weil nur diejenigen Mikrofacetten, die den makroskopischen Halbvektor als Normale haben, einen Reflexionsbeitrag in Sichtrichtung haben
  • Laut [Cook Torrance 1981] berechnet sich der Reflexionsgrad für $\eta_1 = 1$ gemäß:
    $\begin{align}c &= \langle\mathbf{v} \cdot \mathbf{h}\rangle \\ g &= \sqrt{\eta_2^2+ c^2 - 1}\\ F_{\tiny \mbox{Cook-Torrance}}(\mathbf{v}, \mathbf{h}) &= \frac{1}{2} \left( \frac{g - c}{g + c} \right)^2 \left( 1 + \left( \frac{ c\,(g + c) - 1 }{ c\,(g - c)+ 1 } \right)^2 \right) \end{align}$
microfacet_model_sidebyside
Mikrofacetten
Makroskopisches Verhalten
$\mathbf{v}$
$-\mathbf{l}$
$\mathbf{h}$
$\mathbf{n}$

Fresnel Reflexionsgrad

  • Alternativ kann auch die schneller zu berechnende Schlick Approximation [Schlick 1994] des Reflexionsgrads verwendet werden:
    $F_{\tiny \mbox{Schlick}}(\mathbf{v}, \mathbf{h}) = \mathrm{F}_0 + \left(1.0 − \mathrm{F}_0\right) \left(1.0 − \langle\mathbf{v} \cdot \mathbf{h}\rangle \right)^5$
  • Die Abbildung zeigt den Vergleich für Glass mit $\mathrm{F}_0 = 0.04$
fresnel_vs_schlick
$F_{\tiny \mbox{Cook-Torrance}}$
$F_{\tiny \mbox{Schlick}}$
Winkel in Grad
Reflexionsgrad

Verteilung der Mikrofacetten (NDF)

  • Abhängig von der Rauheit der Oberfläche ändert sich die Verteilung der Mikrofacetten
  • Bei einer rauhen Oberfläche ist die Verteilung um die Oberflächennormale breiter gestreut
  • Für die Verteilung gibt es in der Literatur [Walter et al. 2007] verschiedene Vorschläge:
    compare_blinn_beckmann_ggx
    $\mathrm{D}_{\tiny \mbox{Blinn}}(\mathbf{h}) = \frac{1}{ \pi \alpha^2 } \langle\mathbf{n} \cdot \mathbf{h}\rangle^{n_s}$   mit   $n_s = 2\alpha^{-2} - 2$
    $\mathrm{D}_{\tiny \mbox{Beckmann}}(\mathbf{h}) = \frac{1}{ \pi \alpha^2 \langle\mathbf{n} \cdot \mathbf{h}\rangle^4 } \exp{ \left( \frac{ \langle\mathbf{n} \cdot \mathbf{h}\rangle^2 - 1}{\alpha^2 \langle\mathbf{n} \cdot \mathbf{h}\rangle^2} \right) }$
    $\mathrm{D}_{\tiny \mbox{GGX}}(\mathbf{h}) = \frac{\alpha^2}{\pi \left(\langle\mathbf{n} \cdot \mathbf{h}\rangle^2 (\alpha^2-1)+1\right)^2}$
  • Dabei gilt $\alpha = r_p^2$ mit der wahrgenommenen Rauheit $r_p$ im Intervall [0.0, 1.0]

Geometriefaktor

  • Abhängig vom der Einfallsrichtung des Lichts und der Sichtrichtung des Betrachters kommt es an den Mikrofacetten zu Abschattung und Maskierung des Lichts
  • [Blinn 1977] und [Cook Torrance 1981] nehmen V-förmige Kerben an und leiten so einen Geometriefaktor $0 \le G \le 1$ ab.
    geometry_term
    Keine Beeinträchtigung
    Maskierung
    Abschattung
    $\mathbf{n}$
    $-\mathbf{l}$
    $\mathbf{v}$
    $\mathbf{h}$
    $\mathbf{n}$
    $-\mathbf{l}$
    $\mathbf{v}$
    $\mathbf{h}$
    $\mathbf{n}$
    $-\mathbf{l}$
    $\mathbf{v}$
    $\mathbf{h}$
    $\mathrm{G}_{\tiny \mbox{Cook-Torrance}}(\mathbf{l},\mathbf{v},\mathbf{h}) = \operatorname{min}\left( 1, \frac{ 2 \langle\mathbf{n} \cdot \mathbf{h}\rangle \langle\mathbf{n} \cdot \mathbf{v}\rangle }{ \langle\mathbf{v} \cdot \mathbf{h}\rangle}, \frac{ 2 \langle\mathbf{n} \cdot \mathbf{h}\rangle \langle\mathbf{n} \cdot \mathbf{l}\rangle }{ \langle\mathbf{v} \cdot \mathbf{h}\rangle} \right)$

Geometriefaktor

  • Ein weiteres bekanntes Model aus [Smith 1967] setzt den Geometriefaktor aus einem Anteil für die Lichtrichtung und einem für die Sichtrichtung zusammen:
    $\mathrm{G}_{\tiny \mbox{Smith}}(\mathbf{l},\mathbf{v},\mathbf{h}) = \mathrm{G}_1(\mathbf{l}) \mathrm{G}_1(\mathbf{v}) $
  • Verschiedenen $\mathrm{G}_1$ gemäß [Walter et al. 2007] sind:
    $\mathrm{G}_{1\ \tiny \mbox{Beckmann}}(\mathbf{v}) =\left\{ \begin{array}{l l} \frac{ 3.535 \,c \,+ \,2.181 \,c^2 }{ 1 \,+ \,2.276 \,c \,+ \,2.577 \,c^2 } & : \,\, c < 1.6\\ 1 & : \,\, c \ge 1.6\\ \end{array} \right.$    mit   $c = \frac{\langle\mathbf{n} \cdot \mathbf{v}\rangle}{ \alpha \sqrt{1 - \langle\mathbf{n} \cdot \mathbf{v}\rangle^2} }$
    $\mathrm{G}_{1\ \tiny \mbox{GGX}}(\mathbf{v}) = \frac{ 2 \, \langle\mathbf{n} \cdot \mathbf{v}\rangle }{ \langle\mathbf{n} \cdot \mathbf{v}\rangle + \sqrt{ \alpha^2 + (1 - \alpha^2)\langle\mathbf{n} \cdot \mathbf{v}\rangle^2 } }$
  • Schnell zu berechnende Approximation [Schlick 1994] für die GGX Variante:
    $\mathrm{G}_{1\ \tiny \mbox{Schlick-GGX}}(\mathbf{v}) =\frac{\langle\mathbf{n} \cdot \mathbf{v}\rangle}{\langle\mathbf{n} \cdot \mathbf{v}\rangle(1 - k) + k }$    mit   $k = \frac{\alpha}{2}$

Geometriefaktor

geometry_term_backmann_ggx
$\mathrm{G}_{1\ \tiny \mbox{Beckmann}}$
$\mathrm{G}_{1\ \tiny \mbox{GGX}}$
$\mathrm{G}_{1\ \tiny \mbox{Schlick-GGX}}$
$r_p = 0.00$
$r_p = 0.25$
$r_p = 0.50$
$r_p = 0.75$
$r_p = 1.00$
$\alpha = r_p^2$

Beispiel: GGX Mikrofacetten BRDF in GLSL

vec3 fresnelSchlick(float cosTheta, vec3 F0) {
  return F0 + (1.0 - F0) * pow(1.0 - cosTheta, 5.0);
} 

float D_GGX(float NoH, float roughness) {
  float alpha = roughness * roughness;
  float alpha2 = alpha * alpha;
  float NoH2 = NoH * NoH;
  float b = (NoH2 * (alpha2 - 1.0) + 1.0);
  return alpha2 / (PI * b * b);
}

float G1_GGX_Schlick(float NdotV, float roughness) {
  //float r = roughness; // original
  float r = 0.5 + 0.5 * roughness; // Disney remapping
  float k = (r * r) / 2.0;
  float denom = NdotV * (1.0 - k) + k;
  return NdotV / denom;
}

float G_Smith(float NoV, float NoL, float roughness) {
  float g1_l = G1_GGX_Schlick(NoL, roughness);
  float g1_v = G1_GGX_Schlick(NoV, roughness);
  return g1_l * g1_v;
}

vec3 microfacetBRDF(in vec3 L, in vec3 V, in vec3 N, 
              in vec3 baseColor, in float metallicness, 
              in float fresnelReflect, in float roughness) {
     
  vec3 H = normalize(V + L); // half vector

  // all required dot products
  float NoV = clamp(dot(N, V), 0.0, 1.0);
  float NoL = clamp(dot(N, L), 0.0, 1.0);
  float NoH = clamp(dot(N, H), 0.0, 1.0);
  float VoH = clamp(dot(V, H), 0.0, 1.0);     
  
  // F0 for dielectics in range [0.0, 0.16] 
  // default FO is (0.16 * 0.5^2) = 0.04
  vec3 f0 = vec3(0.16 * (fresnelReflect * fresnelReflect)); 
  // in case of metals, baseColor contains F0
  f0 = mix(f0, baseColor, metallicness);

  // specular microfacet (cook-torrance) BRDF
  vec3 F = fresnelSchlick(VoH, f0);
  float D = D_GGX(NoH, roughness);
  float G = G_Smith(NoV, NoL, roughness);
  vec3 spec = (D * G * F) / max(4.0 * NoV * NoL, 0.001);
  
  // diffuse
  vec3 rhoD = vec3(1.0) - F; // if not specular, use as diffuse
  rhoD *= 1.0 - metallicness; // no diffuse for metals
  vec3 diff = rhoD * baseColor / PI; 
  
  return diff + spec;
}

Sampling der GGX Mikrofacetten BRDF

  • Der spekulare Anteil der GGX Mikrofacetten BRDF lautet:
    $\begin{align}L_{o,s}(\mathbf{v}) &= \int\limits_\Omega \frac{\mathrm{F}(\mathbf{v},\mathbf{h})\,\mathrm{D}(\mathbf{h})\,\mathrm{G}(\mathbf{l},\mathbf{v},\mathbf{h})}{4\,\,\langle\mathbf{n} \cdot \mathbf{l}\rangle\,\,\langle\mathbf{n} \cdot \mathbf{v}\rangle} \,L_i(\mathbf{l}) \cos(\theta) \, d\omega \end{align}$
  • Dies ist ein Integral über alle einfallenden Lichtrichtungen $\mathbf{l}$
  • Die Verteilung der Mikrofacetten $\mathrm{D}(\mathbf{h})$ ist eine Funktion des Halbvektors $\mathbf{h}$
    $\mathrm{D}_{\tiny \mbox{GGX}}(\mathbf{h}) = \frac{\alpha^2}{\pi \left(\langle\mathbf{n} \cdot \mathbf{h}\rangle^2 (\alpha^2-1)+1\right)^2}$
  • Da diese Verteilung als Funktion bekannt ist, soll das Integral durch Importance Sampling über den Halbvektor $\mathbf{h}$ gelöst werden
  • D.h. es wird ein Zusammenhang zwischen $\mathbf{l}$ und $\mathbf{h}$ benötigt

Sampling der GGX Mikrofacetten BRDF

halfvector_reflect
$\mathbf{v}$
$-\mathbf{l}$
$\mathbf{h}$
$\mathbf{n}$
  • Wie aus der Zeichnung ersichtlich, kann $\mathbf{l}$ durch Reflektion von $\mathbf{v}$ an $\mathbf{h}$ berechnet werden
  • Damit gilt:
    $\mathbf{l} = 2 \,(\mathbf{v}^\top \mathbf{h}) \, \mathbf{h} - \mathbf{v}$
  • Die WDF für das Important Sampling des Halbvektors $\mathbf{h}$ wird wie folgt gewählt
    $\mathrm{p}_\mathbf{h}(\mathbf{h}) = \mathrm{D}_{\tiny \mbox{GGX}}(\mathbf{h}) \, \cos(\theta_h) \sin(\theta_h)$
    damit ergibt sich für die WDF der Lichtrichtung $\mathbf{l}$
    $\mathrm{p}_\mathbf{l}(\mathbf{l}) = \frac{\mathrm{D}_{\tiny \mbox{GGX}}(\mathbf{h}) \cos(\theta_h) \sin(\theta_h)}{4 \,\langle\mathbf{v} \cdot \mathbf{h}\rangle}$
    Der Faktor $\frac{1}{4 \,\langle\mathbf{v} \cdot \mathbf{h}\rangle}$ ist die Determinante der Jacobi-Matrix und ergibt sich durch die Substitution der Variablen, siehe dazu die Herleitung gemäß [Walter 2005].

Sampling der GGX Mikrofacetten BRDF

  • Importance Sampling des Integrals für den spekularen Anteil:
    $\begin{align}L_{o,s}(\mathbf{v}) &= \int\limits_{0}^{2\pi}\, \int\limits_{0}^{\pi/2} \underbrace{\frac{\mathrm{F}(\mathbf{v},\mathbf{h})\,\mathrm{D}(\mathbf{h})\,\mathrm{G}(\mathbf{l},\mathbf{v},\mathbf{h})}{4\,\,\langle\mathbf{n} \cdot \mathbf{l}\rangle\,\,\langle\mathbf{n} \cdot \mathbf{v}\rangle} \,L_i(\mathbf{l}) \cos(\theta) \sin(\theta)}_{\mathrm{f}(\theta, \phi)} \, d\theta\,d\phi\\ &\approx \frac{1}{N} \sum_{n=1}^{N} \frac{\mathrm{f}(\theta_n, \phi_n)}{\mathrm{p}(\theta, \phi)}\\ &=\frac{1}{N} \sum_{n=1}^{N} \frac{\frac{\mathrm{F}(\mathbf{v},\mathbf{h})\,\mathrm{D}(\mathbf{h})\,\mathrm{G}(\mathbf{l},\mathbf{v},\mathbf{h})}{4\,\,\langle\mathbf{n} \cdot \mathbf{l}\rangle\,\,\langle\mathbf{n} \cdot \mathbf{v}\rangle} \,L_i(\mathbf{l}) \cos(\theta) \sin(\theta)}{\frac{\mathrm{D}(\mathbf{h}) \cos(\theta) \sin(\theta)}{4 \,\langle\mathbf{v} \cdot \mathbf{h}\rangle}}\\ &= \frac{1}{N} \sum_{n=1}^{N} \frac{\mathrm{F}(\mathbf{v},\mathbf{h})\,\mathrm{G}(\mathbf{l},\mathbf{v},\mathbf{h}) \,\langle\mathbf{v} \cdot \mathbf{h}\rangle}{\langle\mathbf{n} \cdot \mathbf{l}\rangle\,\,\langle\mathbf{n} \cdot \mathbf{v}\rangle} \,L_i(\mathbf{l})\\ \end{align}$

Sampling der GGX Mikrofacetten BRDF

  • Insgesamt ergibt sich somit:
    $\begin{align}L_{o,s}(\mathbf{v}) &\approx \frac{1}{N} \sum_{n=1}^{N} \frac{\mathrm{F}(\mathbf{v},\mathbf{h})\,\mathrm{G}(\mathbf{l},\mathbf{v},\mathbf{h}) \,\langle\mathbf{v} \cdot \mathbf{h}\rangle}{\langle\mathbf{n} \cdot \mathbf{l}\rangle\,\,\langle\mathbf{n} \cdot \mathbf{v}\rangle} \,L_i(\mathbf{l})\\ \end{align}$
    mit $\mathbf{h} = \begin{pmatrix}\sin(\theta_h) cos(\phi_h) \\ \sin(\theta_h) \sin(\phi_h)\\ \cos(\theta_h)\end{pmatrix}$  und   $\mathbf{l} = \operatorname{reflect}(-\mathbf{v}, \mathbf{h})$
    wobei $\phi_h = 2 \pi \,h_2(n)$ und $\theta_h = \arccos\left(\sqrt{\frac{1 - h_3(n)}{h_3(n) (\alpha^2-1) + 1} }\right)$
    und $\operatorname{reflect}$ der GLSL Funktion reflect entspricht:
    $\operatorname{reflect}(\mathbf{i}, \mathbf{n}) = \mathbf{i} - 2 \,(\mathbf{i}^\top \mathbf{n}) \, \mathbf{n}$

Beispiel: Sampling der GGX Mikrofacetten BRDF

example_pbr
  • Beispiel: PBR

BTDF

Sampling der GGX Mikrofacetten BTDF

  • Das Verhalten bei der Transmission soll dem des spekularen Anteils bei der Reflexion entsprechen
  • Insofern kann die gleiche Berechnungsvorschrift, wie bei der Reflexion verwendet werden, nur dass $\mathbf{l}$ sich nun durch Refraktion der Sichtrichtung $\mathbf{v}$ am Halbvektor $\mathbf{h}$ ergibt:
    $\begin{align}L_{o,t}(\mathbf{v}) &\approx \frac{1}{N} \sum_{n=1}^{N} \frac{(1 - \mathrm{F}(\mathbf{v},\mathbf{h}))\,\mathrm{G}(\mathbf{l},\mathbf{v},\mathbf{h}) \,\langle\mathbf{v} \cdot \mathbf{h}\rangle}{\langle\mathbf{n} \cdot \mathbf{l}\rangle\,\,\langle\mathbf{n} \cdot \mathbf{v}\rangle} \,L_i(\mathbf{l})\\ \end{align}$
    mit $\mathbf{h} = \begin{pmatrix}\sin(\theta_h) cos(\phi_h) \\ \sin(\theta_h) \sin(\phi_h)\\ \cos(\theta_h)\end{pmatrix}$  und   $\mathbf{l} = \operatorname{refract}(-\mathbf{v}, \mathbf{h}, \eta)$
    wobei $\phi_h = 2 \pi \,h_2(n)$ und $\theta_h = \arccos\left(\sqrt{\frac{1 - h_3(n)}{h_3(n) (\alpha^2-1) + 1} }\right)$
    und $\operatorname{refract}$ der GLSL Funktion refract entspricht

Sampling der GGX Mikrofacetten BTDF

halfvector_refract_sphere
$-\mathbf{v}$
$\mathbf{l}$
$\mathbf{n}$
$-\mathbf{v}$
$\mathbf{l}$
$\mathbf{n}$
$\mathbf{-n}$
$\mathbf{-n}$
$\eta = \frac{\eta_1}{\eta_2}$
$\eta = \frac{\eta_2}{\eta_1}$

Beispiel: Sampling der GGX Mikrofacetten BTDF

example_transmission

Mikrofacetten BTDF

  • Laut [Walter et al. 2007] berechnet sich die BTDF für den transmittierten Anteil zu
    $\mathrm{f}_t(\mathbf{v}, \mathbf{l}) = \frac{|\langle\mathbf{h}_t \cdot \mathbf{v}\rangle|}{|\langle\mathbf{n} \cdot \mathbf{v}\rangle|} \frac{|\langle\mathbf{h}_t \cdot \mathbf{l}\rangle|}{|\langle\mathbf{n} \cdot \mathbf{l}\rangle|}\frac{(1.0 - \mathrm{F}(\mathbf{v},\mathbf{h}_t))\,\mathrm{D}(\mathbf{h}_t)\,\mathrm{G}(\mathbf{l},\mathbf{v},\mathbf{h}_t)}{\left(\eta_1 \langle\mathbf{h}_t \cdot \mathbf{l}\rangle + \eta_2 \langle\mathbf{h}_t \cdot \mathbf{v}\rangle\right)^2}$
    mit
    $\mathbf{h}_t = - \frac{\eta_1 \mathbf{l} + \eta_2 \mathbf{v}}{|\eta_1 \mathbf{l} + \eta_2 \mathbf{v}|}$

Referenzen

Referenzen

  • [Schlick 1994] Christophe Schlick: An Inexpensive BRDF Model for Physically-Based Rendering. Computer Graphics Forum, 13 (3), 233–246, 1994.
  • [Walter 2005] B. Walter: Notes on the Ward BRDF. Technical report PCG-05-06, Cornell University
  • [Walter et al. 2007] B. Walter, S. R. Marschner, H. Li, K. E. Torrance: Microfacet Models for Refraction through Rough Surfaces. Eurographics Symposium on Rendering, 2007.
  • [Smith 1967] B. Smith: Geometrical shadowing of a random rough surface. IEEE Transactions on Antennas and Propagation 15(5):668-671, Sep. 1967

Gibt es Fragen?

questions

Anregungen oder Verbesserungsvorschläge können auch gerne per E-Mail an mich gesendet werden: Kontakt

Weitere Vorlesungsfolien

Folien auf Englisch (Slides in English)