Beleuchtungsmathematik

Das Direct3D-Lichtmodell deckt umgebungs-, diffuse, spiegel- und emissive Beleuchtung ab. Dies ist genug Flexibilität, um eine Vielzahl von Beleuchtungssituationen zu lösen. Die Gesamtmenge an Licht in einer Szene wird als globale Beleuchtung bezeichnet.

Die globale Beleuchtung wird wie folgt berechnet:

global_illumination = ambient_lighting + diffuse_lighting + specular_lighting + emissive_lighting;

Umgebungsbeleuchtung ist konstante Beleuchtung. Die Umgebungsbeleuchtung ist in alle Richtungen konstant und farbt alle Pixel eines Objekts gleich. Es ist schnell zu berechnen, aber Objekte wirken flach und unrealistisch.

Diffuse Beleuchtung hängt sowohl von der Lichtrichtung als auch von der Objektoberfläche normal ab. Die diffuse Beleuchtung variiert über die Oberfläche eines Objekts aufgrund der sich ändernden Lichtrichtung und des sich ändernden Flächenzahlvektors. Es dauert länger, diffuse Beleuchtung zu berechnen, da sie sich für jeden Objektvertex ändert. Der Vorteil der Verwendung besteht jedoch darin, dass es Objekte schattiert und ihnen dreidimensionale (3D)-Tiefe verleiht.

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

Emissive Beleuchtung ist Licht, das von einem Objekt ausgegeben wird; beispielsweise ein Leuchten. Die Emission lässt ein gerendertes Objekt selbstleuchtend erscheinen. Die Emission wirkt sich auf die Farbe eines Objekts aus und kann beispielsweise ein dunkles Material heller machen und einen Teil der ausgegebenen Farbe annehmen.

Realistische Beleuchtung kann erreicht werden, indem jede dieser Arten von Beleuchtung auf eine 3D-Szene angewendet wird. Die für umgebungs-, emissiven und diffusen Komponenten berechneten Werte werden als diffuse Vertexfarbe ausgegeben. Der Wert für die Komponente "Spiegelbeleuchtung" wird als spiegelförmige Vertexfarbe ausgegeben. Umgebungs-, Diffuse- und Spiegellichtwerte können durch die Dämpfung und den Scheinwerferfaktor eines bestimmten Lichts beeinflusst werden. Siehe Dämpfung und Scheinwerferfaktor.

Um einen realistischeren Lichteffekt zu erzielen, fügen Sie weitere Leuchten hinzu. Das Rendern der Szene dauert jedoch länger. Um alle Effekte zu erzielen, die ein Designer möchte, verwenden einige Spiele mehr CPU-Leistung als üblich. In diesem Fall ist es typisch, die Anzahl der Beleuchtungsberechnungen auf ein Minimum zu reduzieren, indem Beleuchtungskarten und Umgebungskarten verwendet werden, um einer Szene Beleuchtung hinzuzufügen, während Texturkarten verwendet werden.

Die Beleuchtung wird im Kamerabereich berechnet. Weitere Informationen finden Sie unter Transformationen des Kameraraums. Eine optimierte Beleuchtung kann im Modellraum berechnet werden, wenn besondere Bedingungen vorliegen: Normale Vektoren sind bereits normalisiert, Vertex-Blending ist nicht erforderlich, und Transformationsmatrizen sind orthogonal.

Alle Beleuchtungsberechnungen werden im Modellraum durchgeführt, indem die Position und Richtung der Lichtquelle zusammen mit der Kameraposition transformiert werden, um den Raum mithilfe der Inverse der Weltmatrix zu modellieren. Wenn die Welt- oder Sichtmatrizen eine nicht einheitliche Skalierung einführen, kann die resultierende Beleuchtung ungenau sein.

In diesem Abschnitt

Thema BESCHREIBUNG

Umgebungslicht

Die Umgebungsbeleuchtung sorgt für eine konstante Beleuchtung einer Szene. Es leuchtet alle Objektpunkte gleich an, da es nicht von anderen Beleuchtungsfaktoren wie Scheitelpunktnormalen, Lichtrichtung, Lichtposition, Bereich oder Dämpfung abhängig ist. Die Umgebungsbeleuchtung ist in alle Richtungen konstant und farbt alle Pixel eines Objekts gleich. Es ist schnell zu berechnen, aber Objekte wirken flach und unrealistisch.

Diffuse Beleuchtung

Diffuse Beleuchtung hängt sowohl von der Lichtrichtung als auch von der Objektoberfläche normal ab. Die diffuse Beleuchtung variiert über die Oberfläche eines Objekts aufgrund der sich ändernden Lichtrichtung und des sich ändernden Flächenzahlvektors. Es dauert länger, diffuse Beleuchtung zu berechnen, da sie sich für jeden Objektvertex ändert. Der Vorteil der Verwendung besteht jedoch darin, dass es Objekte schattiert und ihnen dreidimensionale (3D)-Tiefe verleiht.

Spiegelbeleuchtung

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

Emissive Beleuchtung

Emissive Beleuchtung ist Licht, das von einem Objekt ausgegeben wird; beispielsweise ein Leuchten. Die Emission lässt ein gerendertes Objekt selbstleuchtend erscheinen. Die Emission wirkt sich auf die Farbe eines Objekts aus und kann beispielsweise ein dunkles Material heller machen und einen Teil der ausgegebenen Farbe annehmen.

Kameraraumtransformationen

Scheitelpunkte im Kameraraum werden berechnet, indem die Objektvertices mit der Weltsichtmatrix transformiert werden.

Dämpfung- und Spotlight-Faktor

Die diffusen und spiegelförmigen Beleuchtungskomponenten der globalen Beleuchtungsgleichung enthalten Begriffe, die die Lichtdämpfung und den Scheinwerferkegel beschreiben.

 

Leuchten und Materialien