Wie physikalisch ist die diffuse und spiegelnde Unterscheidung?


34

Die klassische Art der Schattierung von Oberflächen in Echtzeit-Computergrafiken ist eine Kombination aus einem (Lambertschen) Diffusbegriff und einem Spiegelbegriff, höchstwahrscheinlich Phong oder Blinn-Phong.

Bild aus Wikipedia

Mit dem Trend zum physisch basierten Rendern und damit zu Materialmodellen in Engines wie Frostbite , Unreal Engine oder Unity 3D haben sich diese BRDFs geändert. Zum Beispiel (eine ziemlich universelle) verwendet die neueste Unreal-Engine immer noch Lambert-Diffus, aber in Kombination mit dem Cook-Torrance-Microfacet-Modell für Spiegelreflexion (speziell unter Verwendung von GGX / Trowbridge-Reitz und einer modifizierten Slick-Approximation für den Fresnel-Term) ). Darüber hinaus wird ein 'Metalness'-Wert verwendet, um zwischen Leiter und Dielektrikum zu unterscheiden.

Bei Dielektrika wird diffus über die Albedo des Materials gefärbt, während spiegelnd immer farblos ist. Bei Metallen wird diffus nicht verwendet und der spiegelnde Ausdruck wird mit der Albedo des Materials multipliziert.

Gibt es in Bezug auf reale physikalische Materialien eine strikte Trennung zwischen diffus und spiegelnd und wenn ja, woher kommt sie? Warum ist einer farbig, der andere nicht? Warum verhalten sich Dirigenten anders?

Antworten:


30

Zu Beginn empfehle ich dringend, die Siggraph- Präsentation von Naty Hoffman zu lesen, in der es um die Physik des Renderns geht. Trotzdem werde ich versuchen, Ihre spezifischen Fragen zu beantworten und Bilder aus seiner Präsentation zu leihen.

Wenn ein einzelnes Lichtteilchen auf einen Punkt auf der Oberfläche eines Materials trifft, kann es zwei Dinge bewirken: reflektieren oder brechen. Reflektiertes Licht wird wie bei einem Spiegel von der Oberfläche reflektiert. Gebrochenes Licht wird im Material reflektiert und kann in einiger Entfernung von der Eintrittsstelle aus dem Material austreten. Schließlich verliert das Licht bei jeder Wechselwirkung mit den Molekülen des Materials etwas Energie. Wenn es genug Energie verliert, betrachten wir es als vollständig absorbiert.

Um Naty zu zitieren: "Licht besteht aus elektromagnetischen Wellen. Die optischen Eigenschaften eines Stoffes hängen also eng mit seinen elektrischen Eigenschaften zusammen." Deshalb gruppieren wir Materialien als Metalle oder Nichtmetalle.

Nichtmetalle zeigen sowohl Reflexion als auch Brechung. Nichtmetalle

Metallische Materialien haben nur Reflexion. Alles gebrochene Licht wird absorbiert. Metalle

Es wäre unerschwinglich teuer zu versuchen, die Wechselwirkung des Lichtteilchens mit den Molekülen des Materials zu modellieren. Wir machen stattdessen einige Annahmen und Vereinfachungen.

Brechung vereinfachen

Wenn die Pixelgröße oder der Schattierungsbereich im Vergleich zu den Eintritts- / Austrittsabständen groß ist, können wir davon ausgehen, dass die Abstände effektiv Null sind. Der Einfachheit halber teilen wir die Lichtwechselwirkungen in zwei verschiedene Begriffe auf. Wir bezeichnen den Begriff der Oberflächenreflexion als "spiegelnd" und den Begriff, der sich aus Brechung, Absorption, Streuung und Refraktion ergibt, als "diffus". Aufteilung in diffus und spiegelnd

Dies ist jedoch eine ziemlich große Annahme. Für die meisten undurchsichtigen Materialien ist diese Annahme in Ordnung und unterscheidet sich nicht zu sehr vom wirklichen Leben. Bei Materialien mit jeglicher Art von Transparenz schlägt die Annahme jedoch fehl. Zum Beispiel Milch, Haut, Seife usw.

Die beobachtete Farbe eines Materials ist das Licht, das nicht absorbiert wird. Dies ist eine Kombination sowohl des reflektierten Lichts als auch des gebrochenen Lichts, das aus dem Material austritt. Zum Beispiel absorbiert ein reines grünes Material alles Licht, das nicht grün ist. Das einzige Licht, das unsere Augen erreicht, ist das grüne Licht.

Daher modelliert ein Künstler die Farbe eines Materials, indem er uns die Dämpfungsfunktion für das Material gibt, dh wie das Licht vom Material absorbiert wird. In unserem vereinfachten diffusen / spiegelnden Modell kann dies durch zwei Farben dargestellt werden, die diffuse Farbe und die spiegelnde Farbe. Bevor Materialien auf physikalischer Basis verwendet wurden, wählte der Künstler jede dieser Farben willkürlich aus. Es sollte jedoch offensichtlich sein, dass diese beiden Farben zusammenhängen sollten. Hier kommt die Albedofarbe ins Spiel. In UE4 berechnen sie beispielsweise die diffuse und spiegelnde Farbe wie folgt:

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

wobei Metallisch 0 für Nichtmetalle und 1 für Metalle ist. Der Parameter 'Specular' steuert die Specularität eines Objekts (in der Regel ist es jedoch eine Konstante von 0,5 für 99% der Materialien).


1
Warum wird der einfallende Strahl nach der Reflexion / Brechung aufgeteilt? Wenn das Licht ein Teilchen ist, bedeutet das dann, dass dieses Teilchen rekursiv gespalten wird? Und wenn das Licht eine Welle ist, bedeutet das, dass es sich nach der Frequenz aufteilt (aber in diesem Fall, warum es sich nach dem zweiten / dritten / etc Treffer aufteilt)?
Nikitablack

5
Das Teilchen spaltet sich nicht. Die Bilder zeigen vielmehr die potenziellen Wege, die sie einschlagen könnten.
RichieSams

2
Viele Partikel treffen aus dem (fast) gleichen Winkel auf die (fast) gleiche Stelle. Für jedes Teilchen ist es gehen ( in der Regel) ein Teilchen, das in ging. Das heißt, den ausgemittelt Strahl von Teilchen aus einem bestimmten Winkel an einem bestimmten Punkt in mehr (viel) Reflexionen aufgespalten wird.
Ratschenfreak

1
Tolle Antwort, die die meisten meiner Fragen beleuchtet. Warum ist der spiegelnde Teil von Nichtmetallen farblos und von der Albedo nicht betroffen? Wie und wo kommt die Polarisation ins Spiel?
David Kuri

1
"Die beobachtete Farbe eines Materials ist das Licht, das nicht absorbiert wird." An dieser Stelle lohnt es sich möglicherweise, auf das Thema zu verweisen. Gibt es allgemeine Materialien, die durch RGB nicht gut dargestellt werden? Diskussion, wie fluoreszierende Materialien in den Sinn kommen.
Simon F

23

Genau darüber habe ich mich vor ein paar Tagen gewundert. Ich fand keine Ressourcen in der Grafik-Community und ging tatsächlich zum Fachbereich Physik an meiner Universität und fragte .

Es stellt sich heraus, dass es viele Lügen gibt, an die wir als Grafiker glauben.


Wenn Licht auf eine Oberfläche trifft, gelten zunächst die Fresnel-Gleichungen. Die Anteile des reflektierten / gebrochenen Lichts hängen von ihnen ab. Das wusstest du wahrscheinlich.

Es gibt keine "spiegelnde Farbe"

Was Sie möglicherweise nicht gewusst haben, ist, dass die Fresnel-Gleichungen auf der Grundlage der Wellenlänge variieren, da der Brechungsindex auf der Grundlage der Wellenlänge variiert. Die Variation ist für Dielektrika relativ gering (Dispersion, irgendjemand?), Kann jedoch für Metalle enorm sein (ich nehme an, dass dies mit den unterschiedlichen elektrischen Strukturen dieser Materialien zusammenhängt).

Daher variiert der Fresnel-Reflexionsterm je nach Wellenlänge, und daher werden unterschiedliche Wellenlängen bevorzugt reflektiert . Dies führt im Breitspektrum zu einer spiegelnden Farbe. Vor allem aber findet an der Oberfläche keine magische Absorption statt (die anderen Farben werden nur gebrochen).

Es gibt keine "diffuse Reflexion"

Wie Naty Hoffman in dem in der anderen Antwort verlinkten Vortrag sagt, ist dies wirklich eine Annäherung an die Streuung unter der Oberfläche.

Metalle lassen Licht durch

Naty Hoffman ist falsch (genauer gesagt, vereinfachend). Licht wird von Metallen nicht sofort absorbiert. Tatsächlich passiert es Materialien mit einer Dicke von mehreren Nanometern recht leicht. (Für Gold sind beispielsweise 11,6633 nm erforderlich, um 587,6 nm Licht (gelb) um die Hälfte zu dämpfen.)

Die Absorption beruht wie bei Dielektrika auf dem Beer-Lambert-Gesetz. Für Metalle ist der Absorptionskoeffizient nur viel größer (α = 4πκ / λ, wobei κ die imaginäre Komponente des Brechungsindex ist (für Metalle ~ 0,5 und höher) und λ in Metern angegeben ist ).

Diese Transmission (oder genauer gesagt das von ihr erzeugte SSS ) ist tatsächlich für einen erheblichen Teil der Metallfarben verantwortlich (obwohl das Aussehen der Metalle von ihrem Spiegel dominiert wird).


3
Vielen Dank! Ich kannte nur die Vereinfachungen. Diese zusätzlichen Details sind fantastisch
RichieSams

1
Das ist eine faszinierende Antwort. Könnten Sie bitte das Akronym SSS verdeutlichen / verlinken?
Trichoplax

@ Trichoplax Danke! SSS == Streuung unter der Oberfläche.
Imallett

Danke :) Wenn Sie es in der Frage klären, wird es das Löschen der Kommentare überleben (die nicht garantiert langlebig sind). Ich habe in einem Link und Schwebetext bearbeitet, der hoffentlich Ihre beabsichtigte Präsentation intakt lässt.
Trichoplax

2
Während ich die Pedanterie dieser Antwort schätze. Die Streuung unter der Oberfläche wird als mm-Effekt angesehen, während in molekularen Bereichen alles bis zu einem gewissen Grad an der Oberfläche vorbeigeht. Die grundlegende Einschränkung ist jedoch, dass wir im Allgemeinen Millimeter-Skaleneffekte zählen und versuchen, niedrigere Ebenen als statistische Modelle zu abstrahieren. Daher ist Mikrometer gleich sofort, da die meisten Pixel eine viel größere Fläche als diese sehen. Gleiches gilt für Farben, die in der Physik nicht so sinnvoll sind, wie es unsere Augen und unser Gehirn vorgeben
joojaa
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.