Поделиться через


Свойства light

Свойства света описывают тип источника света (точка, направление, центр внимания), аттенуацию, цвет, направление, положение и диапазон. В зависимости от типа используемого света свет может иметь свойства для аттенуации и диапазона или для эффектов в центре внимания. Не все типы света используют все свойства.

Свойства положения, диапазона и аттенуации определяют расположение света в мировом пространстве и как свет, который он выдает на расстоянии.

Легкая аттенуация

Аттенуация определяет, как интенсивность света уменьшается к максимальному расстоянию, указанному свойством диапазона. Три значения с плавающей запятой иногда используются для представления легкой аттенуации: Attenuation0, Attenuation1 и Attenuation2. Эти значения с плавающей запятой варьируются от 0,0 до бесконечности, управляя затуханием света. Некоторые приложения устанавливают для элемента Attenuation1 значение 1.0, а другие — 0,0, что приводит к изменению интенсивности света как 1/D, где D — расстояние от источника света к вершине. Максимальная интенсивность света находится в источнике, уменьшаясь до 1 /(светлый диапазон) в диапазоне света.

Хотя обычно приложение устанавливает attenuation0 равным 0,0, attenuation1 константному значению и attenuation2 до 0,0, различные эффекты света можно достичь, изменив это. Вы можете объединить значения аттенуации, чтобы получить более сложные эффекты аттенуации. Кроме того, их можно задать для значений за пределами обычного диапазона, чтобы создать даже незнакомые эффекты аттенуации. Однако отрицательные значения аттенуации не допускаются. См . сведения о аттенуации и факторе внимания.

Светлый цвет

Свет в Direct3D выдает три цвета, которые используются независимо в вычислениях освещения системы: диффузный цвет, внешний цвет и спектрулярный цвет. Каждый из них включается модулем освещения Direct3D, взаимодействуя с коллегой из текущего материала, чтобы создать окончательный цвет, используемый при отрисовке. Диффузный цвет взаимодействует с свойством диффузного отражения текущего материала, зрителя цветом с свойством отражения материала и т. д. Сведения о том, как Direct3D применяет эти цвета, см. в статье "Математика освещения".

В приложении Direct3D обычно существует три значения цвета — диффузный, внешний и спекулярный, определяющий создаваемый цвет.

Тип цвета, который применяется наиболее сильно к вычислениям системы, является диффузным цветом. Наиболее распространенный диффузный цвет — белый (R:1.0 G:1.0 B:1.0), но вы можете создавать цвета по мере необходимости для достижения нужных эффектов. Например, вы можете использовать красный свет для камина, или вы можете использовать зеленый свет для сигнала дорожного движения, установленного на "Go".

Как правило, для компонентов светлого цвета заданы значения от 0,0 до 1.0, включительно, но это не обязательно. Например, можно задать для всех компонентов значение 2.0, создав свет, который является "ярким, чем белый". Этот тип параметра может быть особенно полезным при использовании параметров аттенуации, отличных от констант.

Хотя Direct3D использует значения RGBA для освещения, компонент альфа-цвета не используется.

Обычно цвета материала используются для освещения. Тем не менее, можно указать, что цвет материала— эмистивный, внешний, диффузный и зрительный , должны быть переопределены диффузными или зрительными цветами вершин.

Значение альфа-прозрачности всегда приходит только из альфа-канала диффузного цвета.

Значение тумана всегда приходит только из альфа-канала зрителя цвета.

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

Свойство направления света определяет направление, которое свет, генерируемый объектом, перемещается в мировом пространстве. Направление используется только указателями и векторами, а также описывается с помощью вектора.

Задайте направление света в качестве вектора. Векторы направления описываются как расстояния от логического источника, независимо от положения света в сцене. Таким образом, внимание, которое указывает прямо на сцену - вдоль положительной оси z - имеет вектор <направления 0,00,1> независимо от того, где его позиция определена. Аналогичным образом можно имитировать солнечный свет, сияющий непосредственно на сцене, с помощью направления света, направление которого составляет <0,-1,0>. Вам не нужно создавать огни, которые светят вдоль осей координат; вы можете смешивать и соответствовать значениям, чтобы создать свет, который светится на более интересных углах.

Хотя вам не нужно нормализовать вектор направления света, всегда убедитесь, что он имеет величину. Другими словами, не используйте <вектор направления 0,0 0> .

Светлая позиция

Световая позиция описывается с помощью структуры векторов. Предполагается, что координаты x, y и z находятся в мировом пространстве. Указатели света являются единственным типом света, который не использует свойство положения.

Светлый диапазон

Свойство диапазона света определяет расстояние в мировом пространстве, при котором сетки в сцене больше не получают света, генерируемого этим объектом. Направление света не использует свойство диапазона.

Свет и материалы