Свойства светаLight properties

Свойства света описывают тип источника света (точечный, направленный, прожектор), его затухание, цвет, направление, положение и дальность действия.Light properties describe a light source's type (point, directional, spotlight), attenuation, color, direction, position, and range. В зависимости от типа используемого источника его свет может иметь свойства затухания и дальности действия, а также эффектов узконаправленности.Depending on the type of light being used, a light can have properties for attenuation and range, or for spotlight effects. Не все типы источников света используют все доступные свойства.Not all types of lights use all properties.

Свойства расположения, дальности действия и затухания определяют положение источника света в пространстве и поведение излучаемого им светового потока на расстоянии.The position, range, and attenuation properties define a light's location in world space and how the light it emits behaves over distance.

Ослабление светаLight Attenuation

Затухание определяет, как интенсивность света снижается по мере удаления от источника к максимальному расстоянию, заданному в свойстве дальности действия.Attenuation controls how a light's intensity decreases toward the maximum distance specified by the range property. Три значения с плавающей точкой иногда используются для представления ослабление света: Attenuation0 Attenuation1 и Attenuation2.Three floating point values are sometimes used to represent light attenuation: Attenuation0, Attenuation1, and Attenuation2. Эти значения с плавающей запятой могут меняться от 0,0 до бесконечности, тем самым определяя затухание света.These floating-point values ranging from 0.0 through infinity, controlling a light's attenuation. Некоторые приложения задают члену Attenuation1 значение 1,0, а другие — 0,0, что определяет интенсивность света, изменяющуюся в пропорции 1 / D, где D — расстояние от источника света до вершины.Some applications set the Attenuation1 member to 1.0 and the others to 0.0, resulting in light intensity that changes as 1 / D, where D is the distance from the light source to the vertex. Максимальная интенсивность света достигается в его источнике, и затем она уменьшается до значения 1 / (дальность действия) по мере удаления от источника.The maximum light intensity is at the source, decreasing to 1 / (Light Range) at the light's range.

Однако чаще всего приложения задают члену Attenuation0 значение 0,0, члену Attenuation1 — постоянное значение, а члену Attenuation2 — 0,0; при этом путем изменения этих значений можно создавать разнообразные эффекты освещения.Though typically, an application sets Attenuation0 to 0.0, Attenuation1 to a constant value, and Attenuation2 to 0.0, varying light effects can be achieved by changing this. Для получения более сложных эффектов затухания можно комбинировать различные значения затухания.You can combine attenuation values to get more complex attenuation effects. Также можно задать значения за пределами стандартного диапазона, чтобы создать еще более необычные эффекты затухания.Or, you might set them to values outside the normal range to create even stranger attenuation effects. Однако отрицательные значения затухания не допускаются.Negative attenuation values, however, are not allowed. См. раздел Коэффициент затухания и вспышки.See Attenuation and spotlight factor.

Светлый цветLight Color

Источники света в Direct3D излучают три цвета, которые используются независимо друг от друга в расчетах освещения системы: рассеянный цвет, фоновый цвет и отраженный цвет.Lights in Direct3D emit three colors that are used independently in the system's lighting computations: a diffuse color, an ambient color, and a specular color. Каждый из них интегрирован в модуль освещения Direct3D, взаимодействует с другими компонентами из текущего материала и создает окончательный цвет, используемый во время отрисовки.Each is incorporated by the Direct3D lighting module, interacting with a counterpart from the current material, to produce a final color used in rendering. Рассеянный цвет взаимодействует со свойством рассеивающей отражающей способности текущего материала, отраженный цвет — со свойством зеркальной отражающей способности материала и т. д.The diffuse color interacts with the diffuse reflectance property of the current material, the specular color with the material's specular reflectance property, and so on. Подробные сведения о том, как эти цвета применяются в Direct3D, см. в разделе Математические аспекты освещения.For specifics about how Direct3D applies these colors, see Mathematics of lighting.

В приложении Direct3D обычно есть три значения цвета — рассеянный, фоновый и отраженный, и они определяют отображаемый цвет.In a Direct3D application, typically there are three color values - Diffuse, Ambient, and Specular that defines the color being emitted.

Наиболее значимым типом цвета, применяемым в системных вычислениях, является рассеянный цвет.The type of color that applies most heavily to the system's computations is the diffuse color. Самым распространенным рассеянным цветом является белый (R:1,0 G:1,0 B:1,0), но можно создавать различные цвета, необходимые для достижения нужного эффекта.The most common diffuse color is white (R:1.0 G:1.0 B:1.0), but you can create colors as needed to achieve desired effects. Например, можно использовать для красный свет для камина или зеленый для разрешающего сигнала светофора.For example, you could use red light for a fireplace, or you could use green light for a traffic signal set to "Go."

Как правило, цветовым компонентам освещения присваиваются значения от 0,0 до 1,0 включительно, но это не является обязательным требованием.Generally, you set the light color components to values between 0.0 and 1.0, inclusive, but this isn't a requirement. Например, можно задать всем компонентам значение 2,0, создав источник света, который будет «ярче, чем белый».For example, you might set all the components to 2.0, creating a light that is "brighter than white." Значения такого типа могут быть особенно полезны при использовании параметров затухания, отличных от констант.This type of setting can be especially useful when you use attenuation settings other than constant.

Несмотря на то что Direct3D использует значения RGBA для источников света, цветовой альфа-компонент не используется.Although Direct3D uses RGBA values for lights, the alpha color component is not used.

Обычно для освещения используются цвета материалов.Usually material colors are used for lighting. Тем не менее, вы можете задать переопределение цветов материалов — излучаемых, фоновых, рассеянных и отраженных — рассеянными или отраженными цветами вершин.However, you can specify that material colors-emissive, ambient, diffuse, and specular-are to be overridden by diffuse or specular vertex colors.

Значение альфа-канала и прозрачности всегда поступает только из альфа-канала рассеянного цвета.The alpha/transparency value always comes only from the diffuse color's alpha channel.

Значение дымки всегда поступает только из альфа-канала отраженного цвета.The fog value always comes only from the specular color's alpha channel.

Направление светаLight Direction

Свойство направленности света определяет направление, в котором испускаемый объектом свет проходит через пространство.A light's direction property determines the direction that the light emitted by the object travels, in world space. Направление используется только для направленных и прожекторных источников света и задается вектором.Direction is used only by directional lights and spotlights, and is described with a vector.

Задайте вектор в качестве направления света.Set the light direction as a vector. Векторы направления задаются как расстояния от логического начала координат независимо от расположения источника света в сцене.Direction vectors are described as distances from a logical origin, regardless of the light's position in a scene. Таким образом узконаправленный прожектор, который светит прямо в сцену — вдоль положительной части оси Z, — имеет вектор направления <0,0,1> независимо от того, где задано его расположение.Therefore, a spotlight that points straight into a scene - along the positive z-axis - has a direction vector of <0,0,1> no matter where its position is defined to be. Аналогичным образом можно имитировать сияние солнечного света прямо в сцену, используя направленный свет с направлением <0,-1,0>.Similarly, you can simulate sunlight shining directly on a scene by using a directional light whose direction is <0,-1,0>. Необязательно создавать источники, которые светят вдоль осей координат; можно смешивать и подбирать значения для создания источников, излучающих свет под более интересными углами.You don't have to create lights that shine along the coordinate axes; you can mix and match values to create lights that shine at more interesting angles.

Несмотря на то что нормализация векторов направленности света не требуется, не забывайте задавать им какую-либо величину.Although you don't need to normalize a light's direction vector, always be sure that it has magnitude. Другими словами, не используйте вектор направленности <0,0,0>.In other words, don't use a <0,0,0> direction vector.

Источник светаLight Position

Расположение источника света описывается с помощью векторной конструкции.Light position is described using a vector structure. Считается, что координаты X, Y и Z находятся в пространстве мира.The x, y, and z coordinates are assumed to be in world space. Направленные источники света — это единственный тип источников, не использующих свойство расположения.Directional lights are the only type of light that don't use the position property.

Диапазон светаLight Range

Свойство дальности действия источника света определяет расстояние в пространстве мира, после которого объекты сцены перестают получать свет, излучаемый этим источником.A light's range property determines the distance, in world space, at which meshes in a scene no longer receive light emitted by that object. Направленные источники света не используют свойство дальности действия.Directional lights don't use the range property.

Связанные разделыRelated topics

Источники света и материалыLights and materials