Phong-Schatten

Der Begriff Phong - Shading bezieht sich sowohl auf das Phong Beleuchtungsmodell und die Phong - Interpolation , zwei 3D - Verarbeitungsalgorithmen in der Computergrafik . Beide wurden von Bui Tuong Phong entwickelt und 1973 veröffentlicht.

Phong-Erleuchtungsmodell

Beschreibung des Modells

Die Beleuchtung von Phong ist ein lokales Modell, dh die Berechnung erfolgt an jedem Punkt. Dieses empirische Modell ist nicht exakt, ermöglicht aber eine glaubwürdige Berechnung des vom untersuchten Punkt reflektierten Lichts, dazu kombiniert es drei Elemente: Umgebungslicht, diffuses Licht ( Lambertsches Modell ) und spiegelndes Licht (siehe Optische Reflexion ).

Ziel ist es, die Lichtintensität zu berechnen, die durch Reflexion am untersuchten Punkt, beleuchtet von einer vermeintlichen Punktquelle, in eine genaue Richtung (die des Beobachters) emittiert wird. Dazu wird das Licht in drei Komponenten unterteilt:

  1. Die Umgebungskomponente stellt die Parasiten dar, die von etwas anderem als der betrachteten Quelle stammen, beispielsweise das von anderen Punkten reflektierte Licht. Es wird angenommen, dass das Umgebungslicht an allen Punkten im Raum gleich ist;
  2. Einfallendes Licht wird in alle Richtungen reflektiert. Die diffuse Komponente gibt die Intensität an, die unter Berücksichtigung der Neigung, mit der das einfallende Licht auf der Oberfläche ankommt, wieder beginnt, jedoch unter der Annahme, dass die Intensität unabhängig von der Richtung des reflektierten Strahls gleich ist;
  3. Trotz allem wird mehr Licht in Richtung der geometrischen Reflexion zurückgegeben (diejenige, die der Strahl verlassen würde, wenn er auf einen Spiegel trifft). Die Rolle der spiegelnden Komponente besteht darin, dies zu berücksichtigen.

die Einstellungen

(Die angezeigten Werte sind nur eine Größenordnung.)

Alle diese Vektoren müssen normiert werden, damit die Skalarprodukte einfach den Kosinus des Winkels zwischen den Vektoren ergeben.

Formeln

Die Umgebungskomponente ist einfach gegeben durch:

Die diffuse Komponente ist gegeben durch:

Genauso wie sich die Sonne im Zenit stärker erwärmt, ist das Maximum, wenn das Licht in der Normalenrichtung auf die Oberfläche trifft, d.h

Die Spiegelkomponente ist gegeben durch:

Wenn , ist das Maximum. Je größer, desto kleiner die Lichtflecken.

Die gesamte reflektierte Intensität ist somit:

Für mehrere Lichtquellen erhalten wir als vollständige Formel:

Anwendung auf Computergrafik

Wenn wir diesen Algorithmus in der Computergrafik anwenden wollen, trennen wir die roten / grünen / blauen Komponenten der Farbe der Textur für den betrachteten Punkt. Dann wenden wir die Formel für die Umgebungs- und die diffuse Komponente an.

Die Mängel des Phong-Modells

Die spiegelnde Komponente basiert auf zwei Richtungsvektoren, dem Beobachter und dem Licht, und verhindert jegliche Radiosität des Modells. Dieses Modell ist empirisch und basiert auf keiner physikalischen Theorie, sondern nur auf Phongs Beobachtungen. Dieses Modell sieht keine Streuung des Lichts mit der Entfernung vor.

Phong-Interpolation

Diese Methode liefert im Vergleich zur Gouraud-Interpolation gute Rendering-Ergebnisse, oft realistischer als ihr Vorgänger.

Das Hauptproblem bei der Gouraud-Schattierung besteht darin, dass sie nur die Eckpunkte von Polygonen berechnet: Eine spiegelnde Lichtquelle, die in der Mitte eines Dreiecks platziert ist, erscheint nicht. Dieses Problem wird mit der Interpolation von Phong behoben.

Es sollte beachtet werden, dass in einem Dreieck die drei Eckpunkte dieselbe Normale haben, sowie an jedem Punkt des Dreiecks. Für ein glatteres Rendering kann die Normale jedes Eckpunkts eines Dreiecks berechnet werden, indem der Durchschnitt aller Oberflächen unter Verwendung dieses Eckpunkts gebildet wird. Am Ende haben wir dann drei Normalen, die unterschiedlich sein können.

Betrachten Sie drei verschiedene Scheitelpunkte: v 1 , v 2 und v 3 , die als normale Einheitsvektoren n 1 , n 2 und n 3 haben . Die Gouraud-Interpolation erfolgt linear über die gesamte Fläche des Dreiecks , nur anhand der drei Normalenvektoren der Scheitelpunkte, dh wir interpolieren tatsächlich die Normalenvektoren anstelle von Farben.

Anders als bei der Gouraud-Interpolation erfolgt die Berechnung jedoch nicht an drei Punkten pro Fläche, sondern für alle Punkte einer Fläche – oder besser gesagt an mehreren Unterteilungen von Punkten. Diese viel langsamere Methode wird manchmal direkt von der Hardware über Shader gehandhabt .

Siehe auch

Literaturverzeichnis

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">