User:Adding Water russian translation
Вода — Это очень сложный шейдер в движке Source: она анимирована, отражающая, освещена туманом, преломляющая, с рельефом, и может также течь, в зависимости от версии движка. Со всей этой сложностью существуют правила и ограничения по тому, как ее размещать и какой вид воды использовать в различных ситуациях.
Contents
"Дорогая" вода
В таком виде выглядит лучше всего, но эта вода является наиболее ресурсозатратным решением в отличие от "дешёвой" воды. Этот шейдер будет отражать мир вокруг, преломлять и туманить мир под ним (на основе линейного интеграла через объем воды) и анимировать текстуру с бамп-картой на поверхности.
"Дешевая" вода
Для случаев, когда требуется более простое решение с водой (обычно из-за производительности), можно использовать "дешевую" воду. Эта версия воды не отражает мир вокруг неё, что делает её менее реалистичной, но и более дешевой. Дорогая вода вернется к дешевой воде на видеокартах, которые не способны поддерживать необходимые функции для её корректного отображения. В настройках игры во вкладке Видео можно настроить качество визуального отображения воды.
Требования
Чтобы сделать более эффективно, вода также обладает набором правил относительно ее размещения и использования на карте.
- В одном PVS может быть только один уровень высоты воды, если вода дорогая.
- "Дорогая" и "Дешевая" вода не могут быть использованы одновременно в одном PVS.
- Note:Так как 3D Skybox не считается частью PVS, дорогая вода в PVS не мешает использовать дешевую воду в Skybox. Комбинирование дорогой и дешевой воды внутри Skybox тоже кажется возможным, хотя для этого требуется экспериментировать.
- Note:Поскольку 3D Skybox не считается частью PVS, то увидеть дорогую воду в skybox без дорогой воды в PVS приведет к тому, что отражения на воде будут отображаться неточно.
- Поверхность воды никогда не должна наклоняться по оси Z; она всегда должна быть параллельна линии горизонта на карте.
- Вода создается путем применения текстуры воды только к верхней поверхности браши, при этом боковые и нижняя часть браша покрываются текстурой
tools\toolsnodraw
. - Сущность
water_lod_control
управляет дистанцией, на которой дорогая вода переходит в дешевую. - Чтобы поверхность воды правильно отображалась на аппаратных средствах ниже DX9, необходим наличие сущности
env_cubemap
. - Ареапорталы и Визкластеры никогда не должны пересекать поверхность воды.
- Браш воды не закрывает seal (лики) вашей карты.
Вода не работает с браш-объектами и не должна быть привязана к объекту. Брашевые объекты с водой включенной в них не будут правильно отображаться. Единственные исключения это — func_water_analog
и func_water
.
Создание
Чтобы добавить воду на вашу карту, выполните следующие шаги:
- Создайте браш размером с объем воды с помощью инструмента блоков (Block Tool).
- Откройте Texture Browser нажав кнопку Browse на панели текстур.
- Дважды щелкните по материалу
tools\toolsnodraw
в Браузере текстур (Texture Browser). - Выберите браш с водой и нажмите кнопку Apply Current Texture, чтобы нанести текстуру
tool textures|tools\toolsnodraw
. - Выберите инструмент Texture Application, который открывает режим Face Edit.
- Щелкните левой кнопкой мыши на верхней грани браша с водой в виде 3D, чтобы выбрать ее.
- Нажмите Browse чтобы снова открыть Texture Browser.
- Введите
water
в поле filter. Это покажет вам все текстуры с ключевым словомwater
в их названии. - Выберите текстуру воды для применения, дважды щелкнув по ней. Одна из текстур воды для тестов
nature/water_canals_water2
. - Нажмите кнопку Apply на панели Face Edit.
- Браш должен быть правильно окрашен водой со всех нужных сторон. Скомпилируйте, запусти и протестируйте свою карту (с включенным VVIS и VRAD).
Чтобы корректно отображались поверхности воды, на карте должен быть skybox (небо), а браш воды должен быть прямоугольной формы. Браш может пересекаться с другими брашами, чтобы скрыть ненужные области. Если вода не отображается правильно (её не видно), значит где-то есть утечка (дыра в карте).
Особенности игры
- Карты L4D2 также требуют наличия
env_fog_controller
. - Все водные браши в Alien Swarm должны быть прикреплены к
func_brush
с названием "structure_seal". - Чтобы создать радиоактивную воду в Portal, необходимо использовать текстуру
nature/hazard_liquid
.
Cubemaps и Вода
Cubemaps важно использовать с водными поверхностями. На видеокартах ниже уровня DX9 невозможно отрисовать рефлективный шейдер воды в реальном времени. Для таких карт используется сущность env_cubemap
, которая предоставляет предварительно рассчитанную карту окружения для отрисовки воды на картках ниже уровня DX9.
Добавление env_cubemap
к водным поверхностям:
- Добавьте
env_cubemap
с помощью инструмента Entity Tool. - Разместите
env_cubemap
над поверхностью воды, близко к центру. - Дважды щелкните на
env_cubemap
в 3D виде, чтобы открытьокно Свойства объекта (Properties). - Нажмите на Brush faces в свойствах объекта Object Properties.
- Нажмите кнопку Pick... Курсор мыши изменится на иконку пипетки.
- С помощью курсора-пипетки кликните на верхнюю поверхность воды, чтобы выбрать её. Поверхность подсветится красным, чтобы показать, что она связана с сущностью
env_cubemap
. - Закройте окно Object properties (Свойства объекта).
- Скомпилируйте и запустите свою карту. После загрузки карты откройте консоль разработчика и введите в консоль команду
buildcubemaps
. Движок рассчитает карту окружения для каждой сущностиenv_cubemap
и сохранит данные в файл BSP.