Объёмный туман (Fog Volumes)
Объёмный туман был реализован в X-Ray 1.5 для проекта "Чистое небо". Технология скорее для галочки, чем для практического применения, поэтому неудивительно, что источники объёмного тумана встречаются всего лишь в одном месте за всю игру — в подземке Агропрома.
Создание зон объёмного тумана[править]
В режиме Fog Volumes есть всего одна команда — добавить (Add). Добавляется примитив, которому можно задать одно из двух свойств:
- Emitter — излучатель частиц
- Occlusion — препятствие для частиц
Принцип простой: ставится одна зона-эмиттер, а вокруг неё статичную геометрию окружают примитивами-окклюдерами, чтобы создать впечатление, что туман отражается от видимой геометрии. Но ввиду того, что пысы создали лишь один примитив — куб — окклюзия вокруг сложной геометрии может выглядеть... странно.
Сама зона-эмиттер может содержать более одного источника объёмных частиц (см. конфиг).
Настройка конфига[править]
Путь к конфигам захардкожен и читается только из X:\gamedata\configs\environment\fog
[volume] ; на файл одна такая секция
EmittersNum = 2 ; кол-во секций эмиттеров ниже
ConfinementScale = 0.9 ; Турбулентность. 0 - поток гладкий. Можно не указывать
Decay = 0.1 ; Затухание дыма. 1 - дым не затухает. Можно не указывать
Type = Fog ; Тип симуляции: Fog или Fire. Можно не указывать, по умолчанию будет Fog
GravityBuoyancy = 0.001 ; Вес дыма положительный/отрицательный. Можно не указывать
Hemi = 1.0 ; Видимо, влияние hemi-компоненты освещения
[emitter00] ; нумерация начинается с 00, 01, 02...
Type = SimpleGaussian ; Тип эмиттера (SimpleGaussian или SimpleDraught)
Position = 35.5, 7.0, 7.0 ; Позиция (в локальном пространстве)
Radius = 0.2 ; Размер источника (чем больше число, тем меньше источник)
Sigma = 1 ; ???
FlowSpeed = 0.1 ; Скорость потока частиц
FlowDirection = 0.0, 1.8, 0.4 ; Направление потока (в локальном пространстве)
Density = 0.6 ; Плотность частиц
ApplyDensity = 1 ; Источник генерирует вещество
ApplyImpulse = 1 ; Источник применяет скорость
[emitter01] ; вторая секция
Type = SimpleDraught ; Другой тип эмиттера, требует других параметров (см. ниже)
Position = 61.0, 58.0, 18.0
Radius = 0.23
Sigma = 1
FlowSpeed = 0.5
FlowDirection = 0.0, 0.0, 0.5
Density = 1.0
DraughtPeriod = 10.0 ; Период колебаний скорости в секундах
DraughtPhase = 0.0 ; Фаза колебаний скорости [0..1]
DraughtAmp = 0.5 ; Амплитуда колебаний [FlowSpeed*(1-DraughtAmp)..FlowSpeed*(1+DraughtAmp)]
ApplyDensity = 0
ApplyImpulse = 1
Настройка всей этой байды при полном отсутствии визуального взаимодействия займёт очень много времени. Для быстрого ознакомления с убогостью реализации можно создать кубическую зону тумана в чистом поле и указать ей пысовский конфиг agroprom_underground_area_01.ltx.