Шаг 59 - Описание структуры D3DLIGHT8

Определяет свойства устанавливаемого источника света:

typedef struct _D3DLIGHT8 {
	D3DLIGHTTYPE Type;
	D3DCOLORVALUE Diffuse;
	D3DCOLORVALUE Specular;
	D3DCOLORVALUE Ambient;
	D3DVECTOR Position;
	D3DVECTOR Direction;
	float Range;
	float Falloff;
	float Attenuation0;
	float Attenuation1;
	float Attenuation2;
	float Theta;
	float Phi;
} D3DLIGHT8;

Описание параметров

Type - тип источника света. Он может принимать значения из перечисляемого типа D3DLIGHTTYPE.

Diffuse - диффузный цвет издаваемым источником света. Может принимать значения из структуры D3DCOLORVALUE.

Specular - зеркальный цвет издаваемым источником света. Может принимать значения из структуры D3DCOLORVALUE.

Ambient - подсветка издаваемым источником света. Может принимать значения из структуры D3DCOLORVALUE.

Position - координаты расположения источника света в сцене, задается при помощи структуры D3DVECTOR. Для направленных (directional) источников света этот вектор не имеет никакого значения, т.е. игнорируется.

Direction - направление падающего света в определенную точку, задается при помощи структуры D3DVECTOR. Применяется только для направленного (directional) или нацеленного (spotlight) источников света.

Range - расстояние до которого этот свет действует (освещает). Максимум какое может принять значение, это квадратный корень из FLT_MAX (FLT_MAX = 3.402823466e+38F).

Falloff - уменьшение освещения между внутренним конусом (указанный угол Theta) и внешним конусом (указанный угол Phi) источника света. Эффект яркого пятна внутри другого менее яркого пятна. Происходят большие вычисления, что влияют на скорость отображения. Поэтому многие разработчики устанавливают по умолчанию этот параметр в 1.0.

Attenuation0, Attenuation1 и Attenuation2 - определяет интенсивность источника света за счет изменения расстояния. Не влияет на направленный (directional) источник света. Эти параметры представляют собой константы интенсивности. Для более подробной информации см. Позиция источника света, диапазон и интенсивность. Значения могут принимать от 0.0 до бесконечности. Для ненаправленных источников света все три значения интенсивности не могут принимать значения 0.0.

Theta - угол внутреннего конуса, в радианах, для нацеленного источника света. Это значение может принимать от 0 до значения Phi.

Phi - угол внешнего конуса источника света. Т.е. вне этого конуса свет уже не освещает. Может принимать значения между 0 и pi.

Требования

Заголовки: объявить D3d8types.h.

Примеры

См. раздел Direct3D: "Шаг 15 - Устанавливаем направленный источник света".


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Хавов Евгений Валерьевич - 30.08.2002