UmgebungslichtAmbient lighting

Ambient-Beleuchtung bietet eine konstante Beleuchtung für eine Szene.Ambient lighting provides constant lighting for a scene. Alle Objekt Scheitel Punkte werden gleich angezeigt, da Sie nicht von anderen Beleuchtungs Faktoren abhängen, wie z. b. Vertex-normalen, Lichtrichtung, Lichtposition, Bereich oder Dämpfung.It lights all object vertices the same because it is not dependent on any other lighting factors such as vertex normals, light direction, light position, range, or attenuation. Ambient-Beleuchtung ist in allen Richtungen konstant und färbt alle Pixel eines Objekts gleich.Ambient lighting is constant in all directions and it colors all pixels of an object the same. Es ist schnell zu berechnen, die Objekte werden jedoch flach und unrealistisch angezeigt.It is fast to calculate but leaves objects looking flat and unrealistic.

Ambient-Beleuchtung ist die schnellste Art von Beleuchtung, liefert aber die wenigsten realistischen Ergebnisse.Ambient lighting is the fastest type of lighting but it produces the least realistic results. Direct3D enthält eine einzelne globale Ambient-Light-Eigenschaft, die Sie verwenden können, ohne dass ein Licht erstellt werden kann.Direct3D contains a single global ambient light property that you can use without creating any light. Alternativ können Sie ein beliebiges helles Objekt festlegen, um Umgebungsbeleuchtung bereitzustellen.Alternatively, you can set any light object to provide ambient lighting.

Die Umgebungsbeleuchtung für eine Szene wird durch die folgende Gleichung beschrieben.The ambient lighting for a scene is described by the following equation.

Ambient lighting = c ₐ * [ g ₐ + Sum (Atteni * Spoti * LAI)]Ambient Lighting = Cₐ*[Gₐ + sum(Atteni*Spoti*Lai)]

Hierbei gilt:Where:

ParameterParameter StandardwertDefault value typeType BESCHREIBUNGDescription
C ₐCₐ (0, 0, 0, 0)(0,0,0,0) D3DCOLORVALUED3DCOLORVALUE Material Ambient-FarbeMaterial ambient color
G ₐGₐ (0, 0, 0, 0)(0,0,0,0) D3DCOLORVALUED3DCOLORVALUE Globale Ambient-FarbeGlobal ambient color
AtteniAtteni (0, 0, 0, 0)(0,0,0,0) D3DCOLORVALUED3DCOLORVALUE Helle Dämpfung des ITH-Lichts.Light attenuation of the ith light. Siehe Dämpfung und Spotlight-Faktor.See Attenuation and spotlight factor.
StelleichSpoti (0, 0, 0, 0)(0,0,0,0) D3DVECTORD3DVECTOR Der Spotlight-Faktor des ITH-Lichts.Spotlight factor of the ith light. Siehe Dämpfung und Spotlight-Faktor.See Attenuation and spotlight factor.
Sumsum Nicht zutreffendN/A Nicht zutreffendN/A Summe der UmgebungsbeleuchtungSum of the ambient light
LAILai (0, 0, 0, 0)(0,0,0,0) D3DVECTORD3DVECTOR Helle Ambient-Farbe des ITH-LichtsLight ambient color of the ith light

 

Der Wert für c ₐ lautet wie folgt:The value for Cₐ is either:

  • Vertex color1, wenn AmbientMaterialSource = D3DMCS _ color1 und die erste Scheitelpunkt Farbe in der Vertex-Deklaration angegeben wird.vertex color1, if AMBIENTMATERIALSOURCE = D3DMCS_COLOR1, and the first vertex color is supplied in the vertex declaration.
  • Vertex color2, wenn AmbientMaterialSource = D3DMCS _ color2 und die zweite Scheitelpunkt Farbe in der Scheitelpunkt Deklaration angegeben wird.vertex color2, if AMBIENTMATERIALSOURCE = D3DMCS_COLOR2, and the second vertex color is supplied in vertex declaration.
  • Material Ambient-Farbe.material ambient color.

Hinweis    Wenn eine der beiden Optionen "AmbientMaterialSource" verwendet wird und die Scheitelpunkt Farbe nicht angegeben wird, wird die Umgebungs Farbe für das Material verwendet.Note   If either AMBIENTMATERIALSOURCE option is used, and the vertex color is not provided, then the material ambient color is used.

 

Verwenden Sie setmaterial, um die Material Ambient-Farbe zu verwenden, wie im folgenden Beispielcode gezeigt.To use the material ambient color, use SetMaterial as shown in the example code below.

G ₐ ist die globale Umgebungs Farbe.Gₐ is the global ambient color. Sie wird mithilfe von setrenderstate (D3DRS _ AMBIENT) festgelegt.It is set using SetRenderState(D3DRS_AMBIENT). In einer Direct3D-Szene gibt es eine globale Umgebungs Farbe.There is one global ambient color in a Direct3D scene. Dieser Parameter ist keinem Direct3D Light-Objekt zugeordnet.This parameter is not associated with a Direct3D light object.

LAI ist die Ambiente-Farbe des ITH-Lichts in der Szene.Lai is the ambient color of the ith light in the scene. Jedes Direct3D Light verfügt über eine Reihe von Eigenschaften, von denen eine die Umgebungs Farbe ist.Each Direct3D light has a set of properties, one of which is the ambient color. Der Begriff Sum (LAI) ist eine Summe aller Ambient-Farben in der Szene.The term, sum(Lai) is a sum of all the ambient colors in the scene.

BeispielExample

In diesem Beispiel wird das-Objekt mithilfe der Szene Ambient Light und einer Material Ambient-Farbe gefärbt.In this example, the object is colored using the scene ambient light and a material ambient color.

#define GRAY_COLOR  0x00bfbfbf

Ambient.r = 0.75f;
Ambient.g = 0.0f;
Ambient.b = 0.0f;
Ambient.a = 0.0f;

Gemäß der Gleichung ist die resultierende Farbe für die Objekt Vertices eine Kombination aus der Material Farbe und der hellen Farbe.According to the equation, the resulting color for the object vertices is a combination of the material color and the light color.

Die beiden folgenden Abbildungen zeigen die Material Farbe, die grau ist, und die helle Farbe, die hell rot ist.The following two illustrations show the material color, which is gray, and the light color, which is bright red.

Abbildung einer grauen KugelAbbildung einer roten Kugel

Die resultierende Szene wird in der folgenden Abbildung dargestellt.The resulting scene is shown in the following illustration. Das einzige Objekt in der Szene ist eine Kugel.The only object in the scene is a sphere. Ambient Light beleuchtet alle Objekt Scheitel Punkte mit der gleichen Farbe.Ambient light lights all object vertices with the same color. Er ist nicht abhängig von der Scheitelpunkt normalen oder der Lichtrichtung.It is not dependent on the vertex normal or the light direction. Folglich sieht die Kugel wie ein 2D-Kreis aus, da es keinen Unterschied gibt, um die Oberfläche des Objekts zu schattieren.As a result, the sphere looks like a 2D circle because there is no difference in shading around the surface of the object.

Abbildung einer Kugel mit Umgebungsbeleuchtung

Um Objekten einen realistischeren Einblick zu verschaffen, wenden Sie zusätzlich zur Umgebungsbeleuchtung diffuse oder Glanzlichter an.To give objects a more realistic look, apply diffuse or specular lighting in addition to ambient lighting.

Verwandte ThemenRelated topics

BeleuchtungsmathematikMathematics of lighting