User:Zakecoc41/Adding Water russian translation: Difference between revisions
(Created page with "{{langsp}} Вода — Это очень сложный шейдер в движке Source: он анимированный, отражающий, с туманом, пре...") |
m (Nescius moved page Adding Water/ru to User:Zakecoc41/Adding Water russian translation without leaving a redirect: Moving here to make place for earlier created page Adding Water:ru. Apply any wanted changes back and mark this for deletion) |
||
(14 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{langsp}} | {{langsp}} | ||
Вода — Это очень сложный шейдер в движке Source: | Вода — Это очень сложный шейдер в движке Source: она анимирована, отражающая, освещена туманом, преломляющая, с рельефом, и может также течь, в зависимости от версии движка. Со всей этой сложностью существуют правила и ограничения по тому, как ее размещать и какой вид воды использовать в различных ситуациях. | ||
== "Дорогая" вода == | == "Дорогая" вода == | ||
В таком | В таком виде выглядит лучше всего, но эта вода является наиболее ресурсозатратным решением в отличие от "дешёвой" воды. Этот шейдер будет отражать мир вокруг, преломлять и туманить мир под ним (на основе линейного интеграла через объем воды) и анимировать текстуру с бамп-картой на поверхности. | ||
{{note| | {{note|Дорогая вода будет работать правильно только при условии соблюдения всех требований (смотрите ниже).}} | ||
== "Дешевая" вода == | == "Дешевая" вода == | ||
Для | Для случаев, когда требуется более простое решение с водой (обычно из-за производительности), можно использовать "дешевую" воду. Эта версия воды не отражает мир вокруг неё, что делает её менее реалистичной, но и более дешевой. Дорогая вода вернется к дешевой воде на видеокартах, которые не способны поддерживать необходимые функции для её корректного отображения. В настройках игры во вкладке Видео можно настроить качество визуального отображения воды. | ||
== Требования == | == Требования == | ||
Line 18: | Line 18: | ||
: {{Note|Поскольку [[3D Skybox]] не считается частью PVS, то увидеть дорогую воду в skybox без дорогой воды в PVS приведет к тому, что отражения на воде будут отображаться неточно.}} | : {{Note|Поскольку [[3D Skybox]] не считается частью PVS, то увидеть дорогую воду в skybox без дорогой воды в PVS приведет к тому, что отражения на воде будут отображаться неточно.}} | ||
* Поверхность воды никогда не должна наклоняться по оси Z; она всегда должна быть параллельна линии горизонта на карте. | * Поверхность воды никогда не должна наклоняться по оси Z; она всегда должна быть параллельна линии горизонта на карте. | ||
* Вода создается путем применения | * Вода создается путем применения текстуры воды только к верхней поверхности браши, при этом боковые и нижняя часть браша покрываются текстурой <code>tools\toolsnodraw</code>. | ||
* Сущность {{ent|water_lod_control}} управляет дистанцией, на которой дорогая вода переходит в дешевую. | * Сущность {{ent|water_lod_control}} управляет дистанцией, на которой дорогая вода переходит в дешевую. | ||
* Чтобы поверхность воды правильно отображалась на аппаратных средствах ниже DX9, необходим наличие сущности {{ent|env_cubemap}}. | * Чтобы поверхность воды правильно отображалась на аппаратных средствах ниже DX9, необходим наличие сущности {{ent|env_cubemap}}. | ||
Line 31: | Line 31: | ||
Чтобы добавить воду на вашу карту, выполните следующие шаги: | Чтобы добавить воду на вашу карту, выполните следующие шаги: | ||
# Создайте | # Создайте браш размером с объем воды с помощью инструмента блоков (Block Tool). | ||
# Откройте '''Texture Browser''' нажав кнопку '''Browse''' на панели текстур. | # Откройте '''Texture Browser''' нажав кнопку '''Browse''' на панели текстур. | ||
# Дважды щелкните по материалу <code>tools\[[tool textures#nodraw|toolsnodraw]]</code> в Браузере текстур (Texture Browser). | # Дважды щелкните по материалу <code>tools\[[tool textures#nodraw|toolsnodraw]]</code> в Браузере текстур (Texture Browser). | ||
Line 58: | Line 58: | ||
# Добавьте <code>env_cubemap</code> с помощью инструмента Entity Tool. | # Добавьте <code>env_cubemap</code> с помощью инструмента Entity Tool. | ||
# Разместите <code>env_cubemap</code> над | # Разместите <code>env_cubemap</code> над поверхностью воды, близко к центру. | ||
# Дважды щелкните на <code>env_cubemap</code> в 3D виде, чтобы | # Дважды щелкните на <code>env_cubemap</code> в 3D виде, чтобы открытьокно Свойства объекта (Properties). | ||
# Нажмите на '''Brush faces''' в свойствах объекта '''Object Properties'''. | # Нажмите на '''Brush faces''' в свойствах объекта '''Object Properties'''. | ||
# Нажмите кнопку '''Pick...''' | # Нажмите кнопку '''Pick...''' Курсор мыши изменится на иконку пипетки. | ||
# | # С помощью курсора-пипетки кликните на верхнюю поверхность воды, чтобы выбрать её. Поверхность подсветится красным, чтобы показать, что она связана с сущностью <code>env_cubemap</code>. | ||
# Закройте окно '''Object properties''' (Свойства объекта). | # Закройте окно '''Object properties''' (Свойства объекта). | ||
# Скомпилируйте и запустите свою карту. После загрузки карты откройте консоль разработчика и введите в консоль команду <code>buildcubemaps</code>. Движок рассчитает карту окружения для каждой сущности <code>env_cubemap</code> и сохранит данные в файл [[BSP]]. | # Скомпилируйте и запустите свою карту. После загрузки карты откройте консоль разработчика и введите в консоль команду <code>buildcubemaps</code>. Движок рассчитает карту окружения для каждой сущности <code>env_cubemap</code> и сохранит данные в файл [[BSP]]. |
Latest revision as of 07:27, 9 July 2024

Вода — Это очень сложный шейдер в движке Source: она анимирована, отражающая, освещена туманом, преломляющая, с рельефом, и может также течь, в зависимости от версии движка. Со всей этой сложностью существуют правила и ограничения по тому, как ее размещать и какой вид воды использовать в различных ситуациях.
"Дорогая" вода
В таком виде выглядит лучше всего, но эта вода является наиболее ресурсозатратным решением в отличие от "дешёвой" воды. Этот шейдер будет отражать мир вокруг, преломлять и туманить мир под ним (на основе линейного интеграла через объем воды) и анимировать текстуру с бамп-картой на поверхности.

"Дешевая" вода
Для случаев, когда требуется более простое решение с водой (обычно из-за производительности), можно использовать "дешевую" воду. Эта версия воды не отражает мир вокруг неё, что делает её менее реалистичной, но и более дешевой. Дорогая вода вернется к дешевой воде на видеокартах, которые не способны поддерживать необходимые функции для её корректного отображения. В настройках игры во вкладке Видео можно настроить качество визуального отображения воды.
Требования
Чтобы сделать более эффективно, вода также обладает набором правил относительно ее размещения и использования на карте.
- В одном 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.