Freigeben über


Lichttypen

Die Lichttypeigenschaft definiert, welche Art von Lichtquelle Sie verwenden. Es gibt drei Arten von Lichtern in Direct3D – Punktlichter, Spotlights und direktionales Licht. Jeder Typ beleuchtet Objekte in einer Szene unterschiedlich, mit unterschiedlichen Ebenen des Rechenaufwands.

Punktlicht

Punktlichter haben Farbe und Position innerhalb einer Szene, aber keine einzelne Richtung. Sie geben licht gleichmäßig in alle Richtungen aus, wie in der folgenden Abbildung dargestellt.

Abbildung des Punktlichts

Eine Glühbirne ist ein gutes Beispiel für ein Punktlicht. Punktlichter werden durch Dämpfung und Bereich beeinflusst und ein Gitter auf Vertex-nach-Vertex-Basis beleuchtet. Während der Beleuchtung verwendet Direct3D die Position des Punktlichts im Weltraum und die Koordinaten des Scheitelpunkts, der beleuchtet wird, um einen Vektor für die Richtung des Lichts abzuleiten, und die Entfernung, die das Licht bewegt hat. Beide werden zusammen mit der Scheitelpunktnormal verwendet, um den Beitrag des Lichts zur Beleuchtung der Oberfläche zu berechnen.

Direktionales Licht

Direktionales Licht hat nur Farbe und Richtung, nicht Position. Sie emittieren paralleles Licht. Dies bedeutet, dass das gesamte Licht, das von richtungsgerichteten Lichtern erzeugt wird, in die gleiche Richtung durch eine Szene bewegt wird. Stellen Sie sich ein direktionales Licht als Lichtquelle in nahezu unendlicher Entfernung vor, z. B. die Sonne. Direktionale Lichter sind nicht von Dämpfung oder Bereich betroffen, sodass die von Ihnen angegebene Richtung und Farbe die einzigen Faktoren sind, die berücksichtigt werden, wenn Direct3D Vertexfarben berechnet. Aufgrund der geringen Anzahl von Beleuchtungsfaktoren sind dies die am wenigsten rechenintensiven Leuchten.

Scheinwerfer

Spotlights haben Farbe, Position und Richtung, in der sie Licht emittieren. Licht, das aus einem Spotlight ausgelassen wird, besteht aus einem hellen inneren Kegel und einem größeren äußeren Kegel, wobei die Lichtintensität zwischen den beiden abnimmt, wie in der folgenden Abbildung dargestellt.

Abbildung eines Blickpunkts mit einem inneren Kegel und einem äußeren Kegel

Spotlights sind von Falloff, Dämpfung und Reichweite betroffen. Diese Faktoren sowie die Entfernung des Lichts zu jedem Scheitelpunkt werden bei der Berechnung von Beleuchtungseffekten für Objekte in einer Szene ermittelt. Das Berechnen dieser Effekte für jeden Scheitelpunkt macht Spotlights für alle Lichter in Direct3D am rechenintensivsten.

Falloff-, Theta- und Phi-Werte werden nur von Spotlights verwendet. Diese Werte steuern, wie groß oder klein die inneren und äußeren Kegel eines Blickpunktobjekts sind und wie das Licht zwischen ihnen abnimmt.

Theta ist der Bogenwinkel des inneren Kegels des Blickpunkts, und der Phi-Wert ist der Winkel für den äußeren Kegel des Lichts. Falloff steuert, wie die Lichtintensität zwischen dem äußeren Rand des inneren Kegels und dem inneren Rand des äußeren Kegels abnimmt. Die meisten Anwendungen legen Falloff auf 1,0 fest, um Falloffs zu erstellen, die gleichmäßig zwischen den beiden Kegeln auftreten, aber Sie können bei Bedarf andere Werte festlegen.

Die folgende Abbildung zeigt die Beziehung zwischen diesen Werten und deren Auswirkungen auf die inneren und äußeren Kegel eines Blickpunkts.

Abbildung der Beziehung zwischen den Phi- und Theta-Werten mit den Blickpunktkegeln

Spotlights emittieren einen Kegel mit zwei Teilen: einem hellen inneren Kegel und einem äußeren Kegel. Licht ist am hellsten im inneren Kegel und ist nicht außerhalb des äußeren Kegels vorhanden, wobei die Lichtintensität zwischen den beiden Bereichen dämpfungsfähig ist. Diese Art der Dämpfung wird häufig als Falloff bezeichnet.

Die Lichtmenge, die ein Scheitelpunkt empfängt, basiert auf der Position des Scheitelpunkts im inneren oder äußeren Kegel. Direct3D berechnet das Punktprodukt des Blickpunktrichtungsvektors (L) und des Vektors vom Licht zum Scheitelpunkt (D). Dieser Wert ist gleich dem Kosinus des Winkels zwischen den beiden Vektoren und dient als Indikator für die Position des Scheitelpunkts, der mit den Kegelwinkeln des Lichts verglichen werden kann, um zu bestimmen, wo sich der Scheitelpunkt im inneren oder äußeren Kegel befindet. Die folgende Abbildung enthält eine grafische Darstellung der Zuordnung zwischen diesen beiden Vektoren.

Abbildung des Blickpunktrichtungsvektors und des Vektors vom Scheitelpunkt zum Spotlight

Das System vergleicht diesen Wert mit dem Kosinus des inneren und äußeren Kegelwinkels des Blickpunkts. Die Theta- und Phi-Werte des Lichts stellen die Gesamten kegelwinkel für die inneren und äußeren Kegel dar. Da die Dämpfung auftritt, wenn der Scheitelpunkt von der Beleuchtungsmitte entfernt wird (statt über den Gesamtkegelwinkel), dividiert die Laufzeit diese Kegelwinkel in der Hälfte, bevor sie ihre Kosinen berechnen.

Wenn das Punktprodukt der Vektoren L und D kleiner oder gleich dem Kosinus des äußeren Kegelwinkels ist, liegt der Scheitelpunkt über dem äußeren Kegel und empfängt kein Licht. Wenn das Punktprodukt von L und D größer als der Kosinus des inneren Kegelwinkels ist, befindet sich der Scheitelpunkt innerhalb des inneren Kegels und empfängt die maximale Lichtmenge, wobei die Dämpfung über den Abstand berücksichtigt wird. Wenn sich der Scheitelpunkt zwischen den beiden Regionen befindet, wird der Falloff mit der folgenden Formel berechnet.

Formel für die Lichtintensität bei Scheitelpunkt, nach Falloff

Dabei gilt Folgendes:

  • Ichf ist Lichtintensität nach Falloff
  • Alpha ist der Winkel zwischen Vektoren L und D
  • Theta ist der innere Kegelwinkel
  • Phi ist der äußere Kegelwinkel
  • p ist der Falloff

Diese Formel generiert einen Wert zwischen 0,0 und 1,0, der die Intensität des Lichts am Scheitelpunkt skaliert, um den Falloff zu berücksichtigen. Die Dämpfung als Faktor des Abstands des Scheitelpunkts vom Licht wird ebenfalls angewendet. Das folgende Diagramm zeigt, wie sich unterschiedliche Falloffwerte auf die Falloffkurve auswirken können.

Diagramm der Lichtintensität im Vergleich zum Scheitelpunktabstand vom Licht

Die Auswirkung verschiedener Falloffwerte auf die tatsächliche Beleuchtung ist subtil, und eine geringe Leistungseinbuße entsteht durch die Gestaltung der Falloffkurve mit anderen Abweichwerten als 1,0. Aus diesen Gründen wird dieser Wert in der Regel auf 1,0 festgelegt.

Leuchten und Materialien