Freigeben über


Spiegelbeleuchtung

Glanzlicht identifiziert die hellen Glanzlichter, die auftreten, wenn Licht auf eine Objektoberfläche trifft und zurück zur Kamera reflektiert. Glanzlicht ist intensiver als diffuses Licht und fällt schneller über die Objektoberfläche hinaus. Es dauert länger, um glanzförmige Beleuchtung zu berechnen als diffuse Beleuchtung, aber der Vorteil der Verwendung besteht darin, dass sie einer Oberfläche erhebliche Details hinzufügt.

Die Modellierung von Glanzreflexionen erfordert, dass das System weiß, in welche Richtung Licht bewegt wird und welche Richtung das Auge des Betrachters hat. Das System verwendet eine vereinfachte Version des Phong-Spiegelungsmodells, das einen halbwegs Vektor verwendet, um die Intensität der Glanzreflexion anzunähern.

Der Standardbeleuchtungszustand berechnet keine Glanzlichter.

Formel für Glanzbeleuchtung

Glanzlicht wird durch die folgende Formel beschrieben.

Glanzbeleuchtung = Cs * summe[Ls * (N · H)P * Atten * Spot]

Die Variablen, ihre Typen und ihre Bereiche sind wie folgt:

Parameter Standardwert Typ Beschreibung
Cs (0,0,0,0) Rote, grüne, blaue und Alphatransparenz (Gleitkommawerte) Glanzfarbe.
Sum Summation der Glanzkomponente jedes Lichts.
N N/V 3D-Vektor (X-, Y- und Z-Gleitkommawerte) Vertexnormal.
H N/V 3D-Vektor (X-, Y- und Z-Gleitkommawerte) Halbwegsvektor. Weitere Informationen finden Sie im Abschnitt zum Halbwegvektor.
P 0,0 Gleitkomma Glanzreflektionskraft. Bereich ist 0 bis +unendlich
Ls (0,0,0,0) Rote, grüne, blaue und Alphatransparenz (Gleitkommawerte) Helle Glanzfarbe.
Atten N/V Gleitkomma Lichtdämpfungswert. Siehe Dämpfungs- und Blickpunktfaktor.
Spot N/V Gleitkomma Blickpunktfaktor. Siehe Dämpfungs- und Blickpunktfaktor.

 

Der Wert für Cs lautet entweder:

  • Vertexfarbe 1, wenn die Glanzmaterialquelle die diffuse Vertexfarbe ist und die erste Vertexfarbe in der Vertexdeklaration angegeben wird.
  • Vertexfarbe 2, wenn die Glanzmaterialquelle die Glanzvertexfarbe ist und die zweite Vertexfarbe in der Vertexdeklaration angegeben wird.
  • Material glanzförmige Farbe

Hinweis : Wenn eine der glanzförmigen Materialquellen verwendet wird und die Vertexfarbe nicht angegeben wird, wird die Glanzfarbe des Materials verwendet.

 

Glanzkomponenten sind von 0 bis 255 geklemmt, nachdem alle Leuchten separat verarbeitet und interpoliert werden.

Der Halbwegvektor

Der Halbwegsvektor (H) befindet sich in der Mitte zwischen zwei Vektoren: dem Vektor von einem Objektvertex zur Lichtquelle und dem Vektor von einem Objektvertex bis zur Kameraposition. Direct3D bietet zwei Möglichkeiten zum Berechnen des Halbwegvektors. Wenn kamerarelative Glanzlichter aktiviert sind (anstelle von orthogonalen Glanzlichtern), berechnet das System den Halbwegvektor mithilfe der Position der Kamera und der Position des Scheitelpunkts zusammen mit dem Richtungsvektor des Lichts. Die folgende Formel veranschaulicht dies.

H = norm(norm(Cp - Vp) + Ldir)

 

Parameter Standardwert Typ Beschreibung
Cp N/V 3D-Vektor (X-, Y- und Z-Gleitkommawerte) Kameraposition.
Vp N/V 3D-Vektor (X-, Y- und Z-Gleitkommawerte) Vertexposition.
Ldir N/V 3D-Vektor (X-, Y- und Z-Gleitkommawerte) Richtungsvektor von der Vertexposition bis zur Lichtposition.

 

Die Bestimmung des Halbwegvektors auf diese Weise kann rechenintensiv sein. Als Alternative weist die Verwendung orthogonaler Glanzlichter (anstelle von kamerarelativen Glanzlichtern) das System an, so zu handeln, als ob der Aussichtspunkt auf der Z-Achse unendlich weit entfernt ist. Dies spiegelt sich in der folgenden Formel wider.

H = Norm((0;0;1) + Ldir)

Diese Einstellung ist weniger rechenintensiv, aber viel weniger genau, sodass sie am besten von Anwendungen verwendet wird, die orthogonale Projektion verwenden.

Beispiel

In diesem Beispiel wird das Objekt mit der Glanzlichtfarbe der Szene und einer materialspekträren Farbe gefärbt.

Gemäß der Gleichung ist die resultierende Farbe für die Objektvertices eine Kombination aus der Materialfarbe und der Lichtfarbe.

Die folgende zwei Abbildung zeigt die Glanzmaterialfarbe, die grau ist, und die Glanzlichtfarbe, die weiß ist.

Abbildung einer grauen KugelAbbildung einer weißen Kugel

Die resultierende glanzförmige Hervorhebung wird in der folgenden Abbildung gezeigt.

Abbildung der glanzförmigen Hervorhebung

Durch die Kombination des Glanzlichts mit der Umgebungs- und diffusen Beleuchtung wird die folgende Abbildung erzeugt. Mit allen drei Lichtarten ähnelt dies deutlicher einem realistischen Objekt.

Abbildung der Kombination von Glanzlicht, Umgebungsbeleuchtung und diffuser Beleuchtung

Glanzlicht ist intensiver zu berechnen als diffuse Beleuchtung. Es wird in der Regel verwendet, um visuelle Hinweise auf das Oberflächenmaterial zu liefern. Die glanzförmige Hervorhebung variiert in Größe und Farbe mit dem Material der Oberfläche.

Mathematik der Beleuchtung