Статья
Раздел:
Ландшафт

О статье

Мини статья о тумане на местности (а не туман войны или погодный эффект). Т.е. тот что используется для эффекта уменьшения видимости объектов с увеличением расстояния.

Описание

В редакторе настройки тумана можно найти в Сценарий - Параметры карты:
А так же есть следующие нативки:
native ResetTerrainFog takes nothing returns nothing
native SetTerrainFogEx takes integer style, real zstart, real zend, real density, real red, real green, real blue returns nothing
ResetTerrainFog ну тут понятно что просто убирает туман вовсе.
SetTerrainFogEx по аргументам соответствует настройкам на скриншоте выше, только значения red green blue нужно указывать в диапазоне от 0 до 1.
Теперь по порядку:
  1. Стиль (style) - идентификатор стиля тумана (0 - Линейный, 1 - Экспонентный1; 2 - Экспонентный2);
  2. Нач. Z (zstart) - начало линейного тумана по глубине z-буфера;
  3. Кон. Z (zend) - конец линейного тумана по глубине z-буфера;
  4. Плотн. (density) - плотность туманов экспонентный1/экспонентный2;
  5. Цвет (red/green/blue) - цвет тумана.
Параметры zstart и zend относятся не к высоте ландшафта (как некоторые могли бы подумать) а к буферу глубины (z-буферу), то есть то насколько объект удален от камеры:
Передняя отсекающая плоскость и есть наш экран, вот от него и идет отсчет вглубь.

Линейный

Как понятно из названия, интенсивность такого тумана изменяется линейно от 0 до 1 на промежутке от zstart до zend.
Формула:
f = (zend-z)/(zend-zstart)
Итоговый f может быть меньше 0 или больше 1, в таком случае он просто обрезается до этих значений.
То есть:
  • от 0 до zstart тумана нет вовсе, пиксели имеют свои цвета;
  • от zstart до zend пиксели переходят от своего цвета в цвет тумана;
  • от zend и далее пиксели имеют цвет тумана.
График и демонстрация:
ЭЭЭЭЭЭксперементы
zstart можно делать и отрицательным, т.е. начало тумана будет за отсекающей плоскостью.
Ради теста ставил zstart = -1000000000 и zend = 1000000000, тогда исходя из формулы получим что все видимые камере пиксели будут иметь ~0.5 интенсивности тумана. Таким образом можно имитировать константный туман, но это почти то же самое что и наложение фильтр-маски.

Экспонентный1

Экспонентный1 - он же экспоненциальный туман, его интенсивность увеличивается экспоненциально с расстоянием и зависит от плотности density. Сам по себе более реалистичный чем линейный, однако его невозможно применить через Параметры карты, т.к. они не позволяют указывать больше 2-ух цифр после запятой (короче плотность 0,01 это слишком много, там нужно указывать около 0,001 чтоб понять что оно работает).
Формула (e ≈ 2,72):
f = e^-(density*z)
Итоговый f всегда будет в диапазоне от 0 до 1.
График и демонстрация:

Экспонентный2

Экспонентный2 - он же экспоненциальный квадратичный туман, разновидность экспоненциального тумана с более быстрым ростом интенсивности.
Формула (e ≈ 2,72):
f = e^-((density*z)^2)
Итоговый f всегда будет в диапазоне от 0 до 1.
График и демонстрация:

Сравнение

`
LOADING AD...
22
Судя по скринам, линейного более чем достаточно, просто подстроить нужно будет z start end )
Replies (3)
25
EugeAl, так и есть. Для художественных ракурсов вполне могут пригодится и экспонентные версии, для тех, кто понимает как и зачем)
16
EugeAl, В последнем графике zend подобран так чтобы все линии пересекались в одной точке, таким образом делая их максимально похожими друг на друга. Ну вообще чисто разница "на глаз" которую я заметил это то что экспоненциальные туманы в отличие от линейного не полностью покрывают объекты вдали, их все еще еле видно.
Вот например zend = 5000
Uploaded files
22
OVOgenez, ну тут конечно разница сильнее, разве что для художественных ракурсов подойдёт, как выше написали)
24
Во - 👍, а не статья, спасибо OVO тебе за неё!
2
Удивительно, что только чичас кто-то написал статью про туман. Респект автору.
38
Самое важное - что туман надо ставить в цвет неба, чтобы не было видно отсечки рендеринга - не упомянули
Replies (1)
16
ScorpioT1000, Точняк, ну это уже скорее как совет. Думаю к этому каждый приходит кто туман использует в карте.
21
Забавно. Туман войны может быть просто как белый туман. Вот, если бы боевая единица могла в тумане войны "шкериться" как разведчик, не открывая ее в видимом точкой индикаторе ( как сенсорная вышка у Терранов во втором старкрафте) То цены бы ей не было. А так - просто красиво.
Replies (2)
16
SсRealm, чёт не понял, причем тут туман войны?
22
SсRealm, это не туман войны, это второй туман, обычный
To leave a comment please sign in to the site.