Постоянный-Линейный-Квадратичный спад яркости

From Valve Developer Community
Jump to navigation Jump to search
English (en)Français (fr)Русский (ru)Translate (Translate)

Введение

При удалении от источника света яркость его освещения обычно уменьшается, тем самым ограничивая область, которую этот источник может освещать. Это уменьшение называется "истощение света" (англ. Light attenuation) или "спад освещённости" (англ. Falloff).

По умолчанию весь свет имеет полностью квадратичный спад, так как это поведение света в реальной жизни (в соответствии с законом обратных квадратов). Такой темп спада иногда слишком резок для виртуального освещения, а так же иногда создаёт слишком яркие места на близких к источнику поверхностях, таких как потолки и стены.

Система Constant-Linear-Quadratic - старый способ описать поведения спада освещённости. Она была заменена системой процентных спадов, которую многие найдут проще в использовании.

Отношение между тремя значениями Constant (_constant_attn), Linear (_linear_attn) and Quadratic (_quadratic_attn) (или по-русски Постоянный, Линейный и Квадратичный) определяют спад освещённости. Эти три параметра получили свои имена от математической функции, описывающей спад света.

Постоянный спад

Постоянный спад

Картинка справа поясняет самый простой случай затенения: постоянное. Constant, Linear и Quadratic устанавливаются в 1, 0 и 0 соответственно, создавая Constant-Linear-Quadratic отношение 1:0:0, означая, что спад равен 100% Constant, 0% Linear и 0% Quadratic.

Полностью постоянный спад означает, что яркость света не будет спадать вообще. Яркость света, создаваемого источником, не будет изменяться с расстоянием и осветит всю область, на которую падает свет с одной и той же яркостью. Теоретически, такой источник может освещать поверхность бесконечного размера. Такой тип света можно увидеть от неба (солнечный свет, лунный свет и звёздный свет) и других больших и отдалённых источников света. Он также может быть использован для создания эмбиентного освещения (позволяя освещать тени в помещении) или освещения для настроения.

Линейный спад

Линейный спад

Это тот же самый источник света, но с соотношением 0:1:0, делающим его освещение полностью линейным.

Математически спад этого типа света линеен, то есть обратно пропорционален расстоянию до источника света (I = 1/d, где I - яркость, а d - расстояние). Это означает, что яркость света (установленная его настройками яркости) будет постоянно спадать при движении от своего источника. Чтобы скомпенсировать этот спад, Valve сделали так, чтобы инструменты компиляции автоматически увеличивали яркость линейного света в 100 раз.

В реальном мире полностью линейный свет практически невозможен, так как он бы представлял собой мягкий свет бесконечного размера. В виртуальном мире такой свет выглядит реалистично в большинстве случаев.

Квадратичный спад

Квадратичный спад

Это обычный, немодифицированный источник света, соотношение которого по умолчанию установлено на 0:0:1, тем самым делая источаемый свет полностью квадратичным.

Математически спад полностью квадратичного света экспоненциален (квадратичен), и высчитывается по формуле I = 1/d^2 (где I - яркость, а d - расстояние). Чем дальше свет уходит от своего источника, тем сильнее он будет спадать. Это создаёт очень резкий спад в уровне освещённости. Чтобы скомпенсировать этот резкий спад, Valve сделали так, чтобы инструменты компиляции автоматически увеличивали яркость линейного света в 100^2 (или же 10000) раз.

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

При использовании в меру, квадратичный спад может быть использован не только для небольших источников света, но и для отражения света, проходящего через что-либо более преломляющее, чем воздух, например, туман или воду.

Смешанный спад

Смешивая эти три типа спада яркости, Вы устанавливаете пропорцию между ними. Помните, что кратные пропорции означают один и тот же тип затенения (к примеру, 3:6:1 равнозначно 6:12:2 или 30:60:10).

Соотношение Постоянный-Линеный-Квадратичный в сравнении с процентным спадом

Как упоминалось выше, при ослаблении света с использованием соотношения Постоянный-Линейный-Квадратичный яркость света может быть изменена в 10000 раз. Хотя такие высокие значения невозможно отобразить с помощью LDR, при освещении HDR(en) с функцией Bloom свет умеренной яроксти будет казаться ослепительно белым. Такого масштабирования не произойдёт, если опредлены дистанции спада до 50% и полного исчезновения (спад до 0%) яркости.

Яркость реального источника света будет в основном спадать в соотвествии с законом обратных квадратов. Так же реальный свет частично распространяется линейно в связи с преломлением в атмосфере. Чтобы найти подходящее расстояние 50% спада яркости, можно использовать следующее уравнение:

I/2 = I/d^2
d = sqrt(2)*100

Переводя из математики в слова: яркость света уменьшится до 50%, когда расстояние от источника света станет равно квадратному корню из 2 (приблизительно 1.41), умноженному на 100. С этим уравнением свет с яркостью 100 станет незаметным на расстоянии в 1000 юнитов.

Полное исчезновение (спад до 0%) на самом деле явлется точкой, в которой яркость становится равной 1/256, которую компилятор освещения(en) считает незначительным. Эту точку можно найти следующим образом:

1/256 = I/d^2
d = sqrt(I)*16

Свет пропадёт на расстоянии равному шестнадцатикратному квадратному корню от первоначальной яркости.

Внешние ресурсы