netlib.narod.ru | < Назад | Оглавление | Далее > |
Direct3D поддерживает пять различных типов источников света: рассеянный свет, точечный источник света, направленный свет, параллельный свет и зональное освещение, или прожектор. Единственный общий для всех источников света параметр — цвет. Для каждого поддерживаемого Direct3D типа источника света может быть указано местоположение и ориентация, но в некоторых случаях эти параметры игнорируются.
Источники света представлены интерфейсом Direct3DRMLight и создаются функциями CreateLight() и CreateLightRGB() интерфейса Direct3DRM. Обе функции требуют, чтобы вы указали цвет и тип источника света, хотя в дальнейшем эти параметры могут быть в любой момент изменены.
Местоположение и ориентация источников света определяется посредством фреймов, поэтому перед использованием в сцене источник света должен быть присоединен к фрейму. Для этой цели интерфейс Direct3DRMFrame предоставляет функцию AddLight().
Рассеяный свет является самым простым типом источника света, поскольку имеет всего один параметр: цвет. Хотя источник рассеяного света и должен быть перед помещением в сцену присоединен к фрейму, он игнорирует местоположение и ориентацию фрейма. Поэтому источник рассеяного света может быть присоединен к любому фрейму сцены.
В сцене может быть любое количество источников рассеяного света. Получаемое в результате освещение будет определяться суммой параметров всех источников рассеяного света. Например, добавление в сцену трех источников рассеяного света с красным, зеленым и синим цветом, аналогично добавлению единственного источника рассеяного света с белым цветом.
Точечный источник света испускает лучи во всех направлениях, поэтому его ориентация не имееет значения. Местоположение точечного источника света определяет точку, из которой будут испускаться световые лучи.
Направленный источник света является противоположностью точечному. Направленный источник света имеет ориентацию, но не имеет местоположения. Он испускает параллельные световые лучи, в связи с чем отсутствует определенное местоположение, откуда эти лучи исходят. Направление параллельных лучей задается вектором направления фрейма, к которому присоединен источник света.
Использование направленных источников света повышает быстродействие по сравнению с точечными источниками света, поэтому направленное освещение полезно при иммитации удаленных источников света.
Параллельный источник света является вариацией направленного. Параллельный источник света также испускает параллельные световые лучи, но они распространяются не в одном, а в двух противоположных направлениях.
На источник параллельного света оказывает влияние и его местоположение и ориентация. Ориентация устанавливает два направления, в которых распространяется свет, а местоположение задает испускающую свет плоскость.
Зональный источник света, или прожектор (spotlight), испускает свет в форме конуса. При этом используется местоположение фрейма для определения точки испускания света (вершины конуса) и ориентация фрейма для определения направления светового потока.
Излучаемый источником свет описывается двумя углами: углом светового пятна (umbra angle) и углом зоны освещенности (penumbra angle). Угол светового пятна определяет конус, в котором свет имеет максимальную интенсивность. Угол зоны освещенности описывает больший конус, который определяет границу освещенной области. Между двумя этими конусами освещенность постепенно изменется от цвета источника света до черного (отсутствие света).
Угол светового пятна и угол зоны освещенности могут быть установлены с помощью функций SetUmbra() и SetPenumbra() интерфейса Direct3DRMLight.
netlib.narod.ru | < Назад | Оглавление | Далее > |