Korrekter Specular Term des Cook-Torrance / Torrance-Sparrow-Modells

13

Seit einiger Zeit recherchiere ich zum Thema Physically Based Rendering. Ein Reflexionsmodell, das immer wieder erwähnt wird, ist das Cook-Torrance / Torrance-Sparrow-Modell. Es scheint, als würde in jeder Erwähnung oder Erklärung dieses Modells eine andere Form des Spiegelbegriffs verwendet. Die Versionen, die ich gefunden habe, sind:

  1. FDGπ(NV)(NL)
  2. FDG4(NV)(NL)
  3. FDG(NV)(NL)

Welches ist richtig und wann? Beim physisch basierten Rendern: Von der Theorie zur Implementierung von Matt Pharr und Greg Humphreys wird die zweite endgültig abgeleitet, aber in ihrer Originalarbeit verwenden Cook und Torrance die erste ohne detaillierte Erklärung.

Thordal
quelle

Antworten:

11

Ich würde Pharr und Humphreys vertrauen. Gleichung 2 stimmt auch mit den Kursnotizen zu SIGGRAPH Physically Based Rendering sowie mit Gleichung 20 in der Arbeit von Walter et al. Überein, in der die GGX-Verteilung eingeführt wurde.

Ich habe irgendwo gelesen, dass es einen Fehler im ursprünglichen Cook-Torrance-Papier gibt, der dazu geführt hat, dass sie den Faktor 4 im Nenner verfehlt haben, der in nachfolgenden Papieren korrigiert wurde. Ich konnte jedoch mit einer schnellen Suche keinen Verweis darauf finden (falls jemand einen kennt, zögern Sie nicht, ihn in den Kommentaren zu vermerken).

Der Faktor von π kann je nach Konvention auftreten oder auch nicht. Manchmal wird dies in die Normalverteilungsfunktion D einbezogen. Wenn Sie zum Beispiel in Abschnitt 5.2 von Walter et all GGX nachsehen, in dem die Gleichungen für mehrere D-Funktionen angegeben sind, können Sie feststellen, dass sie alle ein π im Nenner haben. Beachten Sie, dass dies impliziert, dass das Lambertsche BRDF auch ein π im Nenner haben sollte.

In Echtzeitgrafiken wird π häufig weggelassen. In diesem Fall können wir es als in die hellen Farben einbezogen interpretieren . So oder so ist es in Ordnung, solange Sie konsequent darauf achten, dass π in alle BRDFs, die Sie verwenden, eingefügt oder weggelassen wird.

Nathan Reed
quelle
1

Ein neueres Papier (mindestens 2005;)) hat eine präzisere Schreibweise, wenn mehrere BRDFs verglichen werden, einschließlich des Cook-Torrance-BRDF . Ihre Formel enthält nicht die Division durch 4.

Addy Ngan, Frédo Durand, Wojciech Matusik: Experimentelle Analyse von BRDF-Modellen, Proceedings des Eurographics Symposium on Rendering 2005.

Projektseite , ergänzend (Schauen Sie sich die ergänzende an!)

Beachten Sie jedoch, dass das Cook-Torrance-BRDF nicht gleich ist und somit kein Synonym für das Torrance-Sparrow-BRDF ist . Letzteres beinhaltet Ihre Division durch 4. Eine interessante Referenzübersicht finden Sie in:

Rosana Montes, Carlos Ureña: Ein Überblick über BRDF-Modelle, Technischer Bericht, 2012.

Die gleiche Koch-Torrance BRDF Formel ist auch in:

Philip Dutré, Kavita Bala und Philippe Bekaert: Advanced Global Illumination, 2. Auflage, 2006.

Edit : Ich habe mir einige (isotrope) Implementierungen von F , G (oder V angesehen, je nachdem, ob Sie die Verkürzung im Nenner in G einbeziehen ) und D :

  • D : Beckmann, Ward-Duer, Blinn-Phong, Trowbridge-Reitz alias GGX alias GTR2, Berry alias GTR1;
  • G | V : Implizite, Ward, Neumann, Ashikhmin-Premoze, Kelemann, Cook-Torrance, Smith GGX, Smith Schlick-GGX, Smith Beckmann, Smith Schlick-Beckmann;
  • F : Schlick, Cook-Torrance.

1πα2αRauheit2

Bearbeiten 2:4π

Earl Hammon: PBR Diffuse Lighting für GGX + Smith Microsurfaces , GDC 2017.

Um eine lange Geschichte zu verkürzen, ist Option 2 der einzig richtige Spiegelbegriff (von den drei verfügbaren Optionen).

Matthias
quelle
αrÖuGhness2ααα[0,)α[0,1]
1
@Tare Für Blinn-Phong müssen Sie eine abgeleitete Version verwenden, die Alpha vom Spiegelexponenten ableitet. Siehe graphicrants.blogspot.be/2013/08/specular-brdf-reference.html
Matthias
1
Okay, das hast du in deinem Beitrag nicht erwähnt, also habe ich angenommen, du benutzt das Originalformular.
Tarieren Sie
0

Persönlich habe ich Gleichung 2 verwendet. Gleichung 3 scheint mir falsch zu sein, der Pi-Faktor dient zur Normalisierung der Lichtempfindlichkeit und zur Energieeinsparung. Grundsätzlich möchten Sie nicht, dass mehr Licht von der Oberfläche reflektiert wird als empfangen wird.

Gleichung 2 ist eine Verbesserung von Gleichung 1 und meines Wissens korrekter. Weitere Informationen zu Gleichung 2 finden Sie unter Mikrofacettenmodelle für die Brechung durch raue Oberflächen von Walter et al

Fred Garnier
quelle