Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Sie die Direct3D-Beleuchtung verwenden, erlauben Sie Direct3D, die Details der Beleuchtung für Sie zu übernehmen. Fortgeschrittene Benutzer können bei Bedarf die Beleuchtung selbst durchführen.
Wenn die Beleuchtung aktiviert ist, berechnet Direct3D die Farbe der einzelnen Objektvertex basierend auf einer Kombination der folgenden Punkte:
- Die Texels in einer zugeordneten Texturkarte.
- Die diffusen und spekularen Farben am Vertex, sofern angegeben.
- Die Farbe und Intensität des Lichts, das von Lichtquellen in der Szene oder vom Umgebungslicht der Szene erzeugt wird.
Wie Sie mit Beleuchtung und Materialien arbeiten, macht einen großen Unterschied bei der Darstellung der gerenderten Szene. Materialien definieren, wie Licht von einer Oberfläche reflektiert wird. Die Lichtmenge, die reflektiert wird, wird durch direktes Licht und Umgebungslicht bestimmt. Sie müssen Materialien verwenden, um eine Szene zu rendern, wenn die Beleuchtung aktiviert ist.
Licht ist nicht erforderlich, um eine Szene zu rendern, aber Details in einer Szene, die ohne Licht gerendert wird, sind nicht sichtbar. Das Rendern einer nicht beleuchteten Szene führt am besten zu einer Silhouette der Objekte in der Szene. Dies reicht für die meisten Zwecke nicht aus.
Direktes Licht im Vergleich zu Umgebungslicht
Obwohl sowohl direktes als auch Umgebungslicht Objekte in einer Szene beleuchtet, sind sie unabhängig voneinander, sie haben sehr unterschiedliche Effekte, und sie erfordern, dass Sie mit ihnen auf völlig unterschiedliche Weise arbeiten.
Direktes Licht trifft das Objekt direkt. Direktes Licht hat immer Richtung und Farbe, und es ist ein Faktor für Schattierungsalgorithmen, z. B. Gouraud-Schattierung. Verschiedene Arten von Licht geben direktes Licht auf unterschiedliche Weise aus, wodurch spezielle Dämpfungseffekte entstehen.
Umgebungslicht ist praktisch überall in einer Szene. Umgebungslicht ist eine allgemeine Lichtebene, die eine ganze Szene füllt, unabhängig von den Objekten und deren Positionen in dieser Szene. Umgebungslicht hat keine Position oder Richtung, nur Farbe und Intensität. Jedes Licht trägt zum gesamten Umgebungslicht in einer Szene bei.
Umgebungslichtfarbe hat die Form eines RGBA-Werts, wobei jede Komponente ein ganzzahliger Wert von 0 bis 255 ist. Im Unterschied zu den meisten Farbwerten in Direct3D ist dies anders.
Die roten, grünen und blauen Komponenten kombinieren sich, um die endgültige Farbe des Umgebungslichts zu erzeugen. Die Alphakomponente steuert die Transparenz der Farbe. Bei der Verwendung von Hardwarebeschleunigung oder RGB-Emulation wird die Alphakomponente ignoriert.
Direct3D-Lichtmodell im Vergleich zur Natur
In der Natur wird Licht aus einer Quelle emittiert und von Hunderten, wenn nicht Tausenden oder Millionen von Objekten reflektiert, bevor es das Auge des Benutzers erreicht. Jedes Mal, wenn es reflektiert wird, wird etwas Licht von einer Oberfläche absorbiert, ein Teil wird in zufällige Richtungen gestreut, und der Rest geht auf eine andere Oberfläche oder auf das Auge des Benutzers. Dieser Prozess wird fortgesetzt, bis das Licht auf nichts reduziert wird oder ein Benutzer das Licht wahrnimmt.
Offensichtlich sind die Berechnungen, die erforderlich sind, um das natürliche Verhalten des Lichts perfekt zu simulieren, zu zeitaufwändig, um Direct3D-Grafiken in Echtzeit zu verwenden. Daher simuliert das Direct3D-Lichtmodell, mit Geschwindigkeit im Sinn, wie Licht in der natürlichen Welt funktioniert. Direct3D beschreibt Licht in Bezug auf rote, grüne und blaue Komponenten, die kombiniert werden, um eine endgültige Farbe zu erstellen.
Wenn das Licht in Direct3D von einer Oberfläche reflektiert wird, interagiert die Lichtfarbe mathematisch mit der Oberfläche selbst, um die farbe zu erstellen, die schließlich auf dem Bildschirm angezeigt wird. Spezifische Informationen zu den von Direct3D verwendeten Algorithmen finden Sie unter Lichtberechnung.
Das Direct3D-Lichtmodell generalisiert Licht in zwei Arten: Umgebungslicht und direktes Licht. Jede hat unterschiedliche Attribute und interagiert jeweils auf unterschiedliche Weise mit dem Material einer Oberfläche. Umgebungslicht ist Licht, das so weit gestreut wurde, dass seine Richtung und Quelle unbestimmt sind: es behält überall einen niedrigen Grad an Intensität. Die indirekte Beleuchtung, die von Fotografen verwendet wird, ist ein gutes Beispiel für Umgebungslicht.
Umgebungslicht in Direct3D, wie in der Natur, hat keine echte Richtung oder Quelle, nur eine Farbe und Intensität. Tatsächlich ist der Umgebungslichtpegel völlig unabhängig von Objekten in einer Szene, die Licht erzeugen. Umgebungslicht trägt nicht zur spiegelnden Reflexion bei.
Direktes Licht ist das Licht, das von einer Quelle innerhalb einer Szene erzeugt wird; es hat immer Farbe und Intensität, und er bewegt sich in eine bestimmte Richtung. Direktes Licht interagiert mit dem Material einer Oberfläche, um Glanzlichter zu erzeugen, und seine Richtung wird als Faktor bei Schattierungsalgorithmen verwendet, einschließlich der Gouraud-Schattierung. Wenn direktes Licht reflektiert wird, trägt es nicht zum Umgebungslichtniveau in einer Szene bei. Die Quellen in einer Szene, die direktes Licht erzeugen, weisen unterschiedliche Merkmale auf, die sich darauf auswirken, wie sie eine Szene beleuchtet.
Darüber hinaus hat das Material eines Polygons Eigenschaften, die beeinflussen, wie dieses Polygon das empfangene Licht widerspiegelt. Sie legen ein einzelnes Reflektionsmerkmal fest, das beschreibt, wie das Material umgebendes Licht widerspiegelt, und legen spezifische Eigenschaften fest, um die spekulare und diffuse Reflektion des Materials zu bestimmen.
Farbwerte für Leuchten und Materialien
Direct3D beschreibt die Farbe in Bezug auf vier Komponenten (Rot, Grün, Blau und Alpha), die eine endgültige Farbe bilden. Jede Komponente reicht von 0,0 bis 1,0. Obwohl sowohl Leuchten als auch Materialien dieselbe Struktur zur Beschreibung der Farbe verwenden, werden die Werte durch Licht und Materialien etwas anders verwendet.
Farbwerte für Lichtquellen stellen die Menge einer bestimmten Lichtkomponente dar, die sie emittiert. Da Lichter keine Alphakomponente verwenden, sind nur die roten, grünen und blauen Komponenten der Farbe relevant. Sie können die drei Komponenten als rote, grüne und blaue Linsen auf einem Projektionsfernseher visualisieren. Jedes Objektiv kann deaktiviert sein (ein Wert von 0,0 im entsprechenden Element), es kann so hell wie möglich sein (ein Wert von 1,0), oder es kann einen Wert dazwischen haben.
Die Farben, die durch die Linsen kommen, kombinieren sich, um die endgültige Farbe des Lichts zu bilden. Eine Kombination wie R(1.0), G(1.0), B(1.0) erzeugt ein weißes Licht, wobei R(0,0), G(0,0), B(0,0) überhaupt kein Licht ausstrahlt. Sie können ein Licht erstellen, das nur eine Komponente ausstrahlt, was zu einem reinen roten, grünen oder blauen Licht führt; oder das Licht könnte Kombinationen verwenden, um Farben wie Gelb oder Lila auszustrahlen. Sie können sogar negative Farbkomponentenwerte festlegen, um ein "dunkles Licht" zu erstellen, das tatsächlich Licht aus einer Szene entfernt. Oder Sie können die Komponenten auf einen Wert festlegen, der größer als 1,0 ist, um ein extrem helles Licht zu erzeugen.
Bei Materialien stellen Farbwerte dagegen dar, wie viel von einer Lichtkomponente durch eine Oberfläche reflektiert wird, die mit diesem Material gerendert wird. Ein Material, dessen Farbkomponenten R(1.0), G(1.0), B(1.0), A(1.0) sind, reflektiert das gesamte Licht, das auf es trifft. Ebenso spiegelt ein Material mit R(0,0), G(1,0), B(0,0), A(1,0) das gesamte grüne Licht wider, das darauf gerichtet ist. Materialien weisen mehrere Reflektionswerte auf, um verschiedene Arten von Effekten zu erzeugen.
Siehe Lichttypen und Lichteigenschaften.
Verwandte Themen