Moving Water:ru

From Valve Developer Community
Revision as of 22:40, 13 August 2018 by Cyr0k91 (talk | contribs) (Cubemaps и движущаяся вода)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
English
См. также: Flowing Water

Движок Source поддерживает воду как энтити func_water_analog, которая может передвигаться так же, как и func_movelinear .

Ограничения

Хотя перемещение воды в принципе возможно, есть некоторые ограничения.

  • Не используется шейдер воды. Для воды используется bump mapping (чтобы "удешевить" воду, т.е. сделать менее ресурсоёмкой).
  • Перемещение воды не всегда корректно реагирует как нормальная вода. Ентити клиента, например, осколки от объектов в HL2MP или рэгдоллы,не всплывают.
  • Всплески (чаще всего видны при взрывах) неправильно визуализируются. Скорее всего, они будут появляться на начальном уровне воды, чем на конечном,.
  • Под водой не происходит изменения вида, и вода выглядит "ярче", чем нормальная.

Изготовление

To add a moving water volume to your level, follow these steps:

Создание водный браши

Шаг 1
  1. Создайте браш размера водной массы используя Block Tool.
  2. Откройте Texture Browser нажав на кнопку Browse на Texture Bar.
  3. Дважды кликните tools\toolsnodraw материал в Texture Browser.
  4. Теперь нажмите на кнопку Apply Current Texture чтобы применить текстуру nodraw на браш.
  5. Выберете Texture Application Tool, который откроет режим Face Edit.
  6. Кликните левой кнопкой мыши на верхний фейс водного браша в 3D виде, чтобы выделить его.
  7. Нажмите Browse, чтобы снова отобразить Texture Browser.
  8. Введите movingplane в поле filter и выберити текстуру nature/water_movingplane.
  9. Нажмите кнопку Apply на панели Face Edit.

Конфигурация энтити func_water_analog

Шаг 2
  1. Now you have constructed the water brush, press Ctrl + T to tie the brush to an entity. Select func_water_analog from the list.
  2. In order to trigger your water, you must name it. Enter an identifier for the water in the Name field.
  3. Select the direction for the water to move in the Move Direction field. For most cases, you should select Up from the list.
  4. Enter a speed at which your water should move. 55 works well, but the speed should depend on the situation.
  5. The entity uses the Move Distance field to determine how far the water should move. If you enter the height of your water brush, it will move fully above its starting position (the bottom of the brush will be where the top of the brush was originally).
  6. You can select sounds to be played when the water starts or stops moving with the Sounds played... fields.

Triggering the Water

The func_water_analog entity can be moved via two inputs, Open and Close. See Inputs & Outputs for more information.

Cubemaps и движущаяся вода

As mentioned earlier, moving water cannot use the water shader and instead has the same visual properties as "cheap" water, using a pre-calculated environment map from an env_cubemap instead.

Cubemaps are important to use with water surfaces. On lower than DX9 level video cards, it is not possible to render the real-time reflective water shader. For these cards, an env_cubemap entity provides the pre-calculated environment map use to render water on sub-DX9 cards.

Чтобы добавить env_cubemap:ru к водным поверхностям:

  1. Добавьте энтити env_cubemap использовая Entity Tool.
  2. Разместите env_cubemap над поверхности воды, около центра.
  3. Дважды кликните на env_cubemap в 3D виде, чтобы отобразить Object Properties.
  4. Кликните на кнопку Brush faces в Object Properties.
  5. Кликните кнопку Pick.... Курсор мыши смениться на иконку пипетки.
  6. Кликните на верхний фейс воды, чтобы выделить его пипеткой. Он выделиться красным, чтобы показать ассоциацию фейса с энтити env_cubemap.
  7. Закройте Object properties.
  8. Скомпилируйте и запустите вашу карту. Когда карта загрузилась, откройте консоль разработчика и введите buildcubemaps. Движок просчитает карту окружения для каждой энтити env_cubemap, и сохранит информацию в BSP файл.