Внешнее освещениеAmbient lighting

Внешнее освещение предоставляет постоянное освещение для сцены.Ambient lighting provides constant lighting for a scene. Оно освещает все вершины объекта одинаково, потому что не зависит ни от каких других факторов освещения, таких как нормали вершины, направление света, положение света, диапазон или затухание.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 lighting is constant in all directions and it colors all pixels of an object the same. Вычислить такое освещение очень быстро, однако объекты выглядят плоскими и нереалистичными.It is fast to calculate but leaves objects looking flat and unrealistic.

Внешнее освещение — это самый быстрый тип освещения, но он создает наименее реалистичные результаты.Ambient lighting is the fastest type of lighting but it produces the least realistic results. Direct3D содержит одно глобальное свойство внешнего освещения, которое можно использовать, не создавая никакого света.Direct3D contains a single global ambient light property that you can use without creating any light. Кроме того, можно настроить любой объект освещения так, чтобы он обеспечивал внешнее освещение.Alternatively, you can set any light object to provide ambient lighting.

Внешнее освещение для сцены описывается в следующем уравнении.The ambient lighting for a scene is described by the following equation.

Окружающее освещение = C ₐ * [ g ₐ + Sum (аттеня разберу * i * LAI)]Ambient Lighting = Cₐ*[Gₐ + sum(Atteni*Spoti*Lai)]

Где:Where:

ПараметрParameter Значение по умолчаниюDefault value ТипType ОписаниеDescription
CₐCₐ (0,0,0,0)(0,0,0,0) D3DCOLORVALUED3DCOLORVALUE Внешний цвет материалаMaterial ambient color
GₐGₐ (0,0,0,0)(0,0,0,0) D3DCOLORVALUED3DCOLORVALUE Глобальный внешний цветGlobal ambient color
АттенiAtteni (0,0,0,0)(0,0,0,0) D3DCOLORVALUED3DCOLORVALUE Затухание света i.Light attenuation of the ith light. См. раздел Коэффициент затухания и вспышки.See Attenuation and spotlight factor.
ТочечнаяiSpoti (0,0,0,0)(0,0,0,0) D3DVECTORD3DVECTOR Коэффициент вспышки света i.Spotlight factor of the ith light. См. раздел Коэффициент затухания и вспышки.See Attenuation and spotlight factor.
Sumsum Н/ДN/A Н/ДN/A Сумма внешнего освещенияSum of the ambient light
LAILai (0,0,0,0)(0,0,0,0) D3DVECTORD3DVECTOR Внешний цвет света iLight ambient color of the ith light

 

Значение Cₐ равно одному из следующих:The value for Cₐ is either:

  • Вершинный color1, если АМБИЕНТМАТЕРИАЛСАУРЦЕ = D3DMCS _ color1, а первый цвет вершин указан в объявлении вершины.vertex color1, if AMBIENTMATERIALSOURCE = D3DMCS_COLOR1, and the first vertex color is supplied in the vertex declaration.
  • Вершинный color2, если АМБИЕНТМАТЕРИАЛСАУРЦЕ = D3DMCS _ color2, а второй цвет вершин указан в объявлении вершины.vertex color2, if AMBIENTMATERIALSOURCE = D3DMCS_COLOR2, and the second vertex color is supplied in vertex declaration.
  • внешний цвет материала.material ambient color.

Примечание    . Если используется параметр АМБИЕНТМАТЕРИАЛСАУРЦЕ и не указан цвет вершины, используется окружающий цвет материала.Note   If either AMBIENTMATERIALSOURCE option is used, and the vertex color is not provided, then the material ambient color is used.

 

Чтобы использовать внешний цвет материала, используйте свойство SetMaterial, как показано в примере кода ниже.To use the material ambient color, use SetMaterial as shown in the example code below.

Gₐ — это глобальный внешний цвет.Gₐ is the global ambient color. Он задается с помощью Сетрендерстате ( _ внешнего D3DRS).It is set using SetRenderState(D3DRS_AMBIENT). В сцене Direct3D существует один глобальный внешний цвет.There is one global ambient color in a Direct3D scene. Этот параметр не связан с объектом света Direct3D.This parameter is not associated with a Direct3D light object.

Lai — это внешний цвет света i в сцене.Lai is the ambient color of the ith light in the scene. Каждый свет Direct3D имеет набор свойств, одно из которых — внешний цвет.Each Direct3D light has a set of properties, one of which is the ambient color. Термин sum(Lai) представляет собой сумму всех внешних цветов в сцене.The term, sum(Lai) is a sum of all the ambient colors in the scene.

НапримерExample

В этом примере объект окрашен с помощью внешнего света сцены и внешнего цвета материала.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;

Согласно уравнению, получившийся цвет для вершин объекта — это сочетание цвета материала и цвета света.According to the equation, the resulting color for the object vertices is a combination of the material color and the light color.

На двух следующих рисунках показан цвет материала (серый) и цвет света (ярко-красный).The following two illustrations show the material color, which is gray, and the light color, which is bright red.

иллюстрация серой сферыиллюстрация красной сферы

Получившаяся сцена показана на следующем рисунке.The resulting scene is shown in the following illustration. Единственный объект в сцене — сфера.The only object in the scene is a sphere. Внешний свет освещает все вершины объекта одинаковым цветом.Ambient light lights all object vertices with the same color. Это не зависит от нормали вершины или направления света.It is not dependent on the vertex normal or the light direction. В результате сфера выглядит как двухмерный круг, поскольку затенение вокруг поверхности объекта одинаковое.As a result, the sphere looks like a 2D circle because there is no difference in shading around the surface of the object.

иллюстрация сферы с внешним светом

Чтобы объекты выглядели более реалистично, используйте помимо внешнего света еще рассеянный и зеркальный свет.To give objects a more realistic look, apply diffuse or specular lighting in addition to ambient lighting.

Связанные темыRelated topics

Математические аспекты освещенияMathematics of lighting