Env fog controller

Материал из CSM Wiki
Перейти к навигации Перейти к поиску

Оригинал Env_fog_controller

Описание

Объект env_fog_controller эмитирует туман или дымку на всей карте. Так же может отсекать геометрию карты по Z координате от камеры. Если вы используете на своей карте объект sky_camera, то настройте туман в sky_camera, так как этот объект.

Особенности использования

  • Этот объект НЕ обновляется в каждом раунде. Это означает что любые изменения объекта будут наследоваться в последующих раундах. Удаление объекта в одном из раундов удаляет объект на все последующие раунды. При удалении этого объекта, туман будет так же удалён с карты.
  • Объект может быть установлен в любом месте на карте.
  • На карте достаточно одного такого объекта.
  • Туман, создаваемый этим объектом, применяется только при отображении в игровом пространстве карты и не действует на 3D-Skybox. Для отображении тумана в 3D-Skybox’е необходимо использовать настройки объекта sky_camera.

Ошибки

Не обнаружены.

Заметки

Многие игроки используют читы, имеют устаревшие и ошибочные версии драйверов видеокарты, или настраивают свой клиент для CS:S так, что туман либо вообще не отображается, либо сквозь туман становиться видно намного дальше, чем другим игрокам. Поэтому не рекомендуется создавать карты целиком построенные на том, что игроки не должны видеть сквозь туман. Ярким примером карты, в основу которой заложен густой туман, является карта cs_silenthill [28.8 MB].

Скачать и ознакомиться с этой картой вы можете по ссылке: http://www.fpsbanana.com/maps/69366


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

Чтобы проверить как на этой карте в тумане отсекается геометрия, запустите карту и в консоли по очереди выполните две команды "fog_enable 0" и "fog_override 1". Это отключит туман и вы увидите отсечение геометрии в действии. Чтобы включить туман, выполните в консоли команду "fog_override 0".

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


Использование "Far Z Clip Plane" может привести к серьёзным тормозам на карте, потому что при отсечении активно используются ресурсы центрального процессора и выполняется активная подгрузка/выгрузка текстур на видеокарте. Карта cs_silenthill, кстати, лагает именно из-за этого.

Параметры

  • Pitch Yaw Roll (Y Z X) – направление в котором цвет тумана равен "Primary Fog Color"; используется только при включенном свойстве "Use Angles for Fog Dir";
  • Fog Enable - включить туман (Да/Нет);
  • Fog Blend – включить смешанные цвета для тумана (Нет/Да); если включено, то будет использоваться свойство "Secondary Fog Color";
  • Use Angles for Fog Dir – использовать свойство "Pitch Yaw Roll" в качестве направления в котором цвет тумана равен "Primary Fog Color" (Нет/Да); если отключено, то в качестве направления тумана используется свойство "Fog Dir";
  • Fog Dir – направление в котором цвет тумана равен "Primary Fog Color"; не используется, если значение свойства "Use Angles for Fog Dir" равно "Yes";
  • Primary Fog Color – первый цвет тумана;
  • Secondary Fog Color – второй цвет тумана; используется только если значение свойства "Fog Blend" равно "Yes";
  • Fog Start – расстояние от камеры игрока, на котором начинает видеться туман;
  • Fog End – расстояние от камеры игрока, на котором туман имеет максимальную интенсивность;
  • Far Z Clip Plane – расстояние от камеры игрока (в юнитах), на котором происходит отсечение геометрии и объектов сцены; при значении -1 берутся настройки по умолчанию;
  • Interpolate Time – в течение этого времени настройки тумана будут плавно заменяться другими настройками, установленными при помощи функций "SetColorLerpTo", "SetColorSecondaryLerpTo", "SetStartDistLerpTo" и "SetEndDistLerpTo"; (см. функцию "StartFogTransition").

Inputs

  • TurnOn – включить объект;
  • TurnOff – выключить объект;
  • SetStartDist <float> – установить новое значение свойства "Fog Start";
  • SetEndDist <float> – установить новое значение свойства "Fog End";
  • SetColor <R G B> – установить новое значение свойства "Primary Fog Color";
  • SetColorSecondary <R G B> – установить новое значение свойства "Secondary Fog Color";
  • SetFarZ <integer> – установить новое значение свойства "Far Z Clip Plane";
  • SetAngles <Pitch Yaw Roll> – установить новое направление распространения тумана;
  • SetColorLerpTo <R G B> – указать и запомнить новое значение свойства "Primary Fog Color"; изменения вступят в силу только после вызова команды "StartFogTransition";
  • SetColorSecondaryLerpTo <R G B> – указать и запомнить новое значение свойства "Secondary Fog Color"; изменения вступят в силу только после вызова команды "StartFogTransition";
  • SetStartDistLerpTo <float> – указать и запомнить новое значение свойства "Fog Start"; изменения вступят в силу только после вызова команды "StartFogTransition";
  • SetEndDistLerpTo <float> – указать и запомнить новое значение свойства "Fog End"; изменения вступят в силу только после вызова команды "StartFogTransition";
  • StartFogTransition – начать изменения настроек тумана; при этом все текущие настройки заменяются настройками, указанными при помощи функций "SetColorLerpTo", "SetColorSecondaryLerpTo", "SetStartDistLerpTo" и "SetEndDistLerpTo"; изменения будут происходить в течение времени "Interpolate Time".

Карта

  • 1) csssdk_env_fog_controller.vmf
  • 2) csssdk_env_fog_controller_2.vmf

Используются файлы

  • /materials/skybox/csssdk_env_fog_controller_2.vtf
  • /materials/skybox/csssdk_env_fog_controller_2bk.vmt
  • /materials/skybox/csssdk_env_fog_controller_2dn.vmt
  • /materials/skybox/csssdk_env_fog_controller_2ft.vmt
  • /materials/skybox/csssdk_env_fog_controller_2lf.vmt
  • /materials/skybox/csssdk_env_fog_controller_2rt.vmt
  • /materials/skybox/csssdk_env_fog_controller_2up.vmt

Используются объекты

  • 1)
  • env_fog_controller
  • light
  • 2)
  • env_fog_controller
  • light
  • logic_auto
  • logic_timer

Описание карты

  • 1)

На этой карте приведён пример использования обыкновенного тумана, не прибегая к созданию дополнительных материалов или чего либо ещё. Текстура неба и цвет тумана подобраны таким образом, чтобы соответствовать друг другу. Благодаря правильно подобранным цветам создаётся ощущение, что всё сделано правильно, но стоит немного изменить цвет тумана и сразу становится отчётливо заметно, что объекты, находящиеся в тумане, не исчезают в нём, а всего лишь приобретают цвет тумана и отчётливо видны на фоне неба. Это происходит из-за того, что в текстуре неба указан параметр ("$nofog" 1) который указывает материалу игнорировать туман. Этот параметр указан во всех стандартных материалах неба. Так же, при использовании материалов неба с параметром "$nofog", не стоит использовать ручное отсечение геометрии (свойство "Far Z Clip Plane"). Чтобы понять, почему этого не стоит делать, на карте-примере установите свойство "Far Z Clip Plane" равным "1500" (600.0 * 2.5) и посмотрите к чему это приведёт. Почему "1500"? Формула расчёта наилучшей дистанции отсечения равна:

"Far Z Clip Plane" = "Fog End" * 2.5"

где "2.5" – наилучший множитель при стандартном FOV камеры игрока. В карте-примере csssdk_env_fog_controller_2.vmf продемонстрирован способ использования материала неба без параметра "$nofog".

  • 2)

Для этой карты, в отличие от первой, был создан дополнительный материал неба, который был помещён в папку /cstrike/materials/skybox/. В качестве материала используется обыкновенный квадрат жёлтого цвета. Цвет квадрата может быть любым или вместо цвета могла бы быть любая другая картинка. Это не важно, потому что этой картинки совершенно не будет видно. Причина этому то, что туман перекрывает всё пространство карты. Цвет тумана, удалённость тумана от камеры игрока и любые другие свойства тумана можно изменять как угодно и всё равно неба не будет видно, создавая иллюзию очень густого тумана. В отличие от первой карты-примера, на этой карте можно использовать ручное отсечение геометрии (свойство "Far Z Clip Plane"). Для этого установите значение свойства "Far Z Clip Plane" равным "1500" (600.0 * 2.5). Отсечение будет проходить абсолютно незаметно для игрока. Отсечение даёт огромный прирост быстродействия рендеринга карты, однако сильно нагружает центральный процессор и шину видеокарты.

На этой карте так же демонстрируется работа функции "StartFogTransition" и применение свойства "Interpolate Time". Благодаря функции "StartFogTransition" туман то отдаляется от игрока, то приближается к игроку, и при этом меняет свой цвет. Изменения тумана происходят каждые 4 секунды и длятся в течение времени "Interpolate Time", которое в данном случае равно 3 секундам.

Смотрите также