Ru/Adding Water: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
No edit summary
m (obsolete language category)
 
(14 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{otherlang2
{{LanguageBar}}
|title=Добавление воды
 
|en=Adding Water
 
|zh-cn=Adding Water:zh-cn
}}
Вода - очень сложный шейдер в движке Source: она анимированная, отражающая, мутная, искажающая отражение и использует бамп, поэтому нужно знать определенные правила и ограничения по размещению воды, и какую воду использовать в разных случаях.
Вода - очень сложный шейдер в движке Source: она анимированная, отражающая, мутная, искажающая отражение и использует бамп, поэтому нужно знать определенные правила и ограничения по размещению воды, и какую воду использовать в разных случаях.


== "Дорогая" вода ==
== "Дорогая" вода ==


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


<div style="margin:0.4em 1em 0.5em;"><strong style="display:table-cell;text-align:right;white-space:nowrap;padding-right:0.3em;">[[File:Note.png|link=|alt=]] Примечание:</strong><span style="display:table-cell;">"Дорогая" вода будет только корректного отображения, если эти [[Adding_Water:ru#Требования|требования]] будут выполнены.</span></div>
<div style="margin:0.4em 1em 0.5em;"><strong style="display:table-cell;text-align:right;white-space:nowrap;padding-right:0.3em;">[[File:Note.png|link=|alt=]] Примечание:</strong><span style="display:table-cell;">"Дорогая" вода будет только корректного отображения, если эти {{L|Adding_Water#Требования|требования}} будут выполнены.</span></div>


== "Легкая" Вода ==
== "Легкая" Вода ==
Line 21: Line 18:
Чтобы вода правильно работала, имеется несколько правил по её размещению и использованию на карте.
Чтобы вода правильно работала, имеется несколько правил по её размещению и использованию на карте.


* Может быть только один уровень высоты воды в [[PVS]], если вода "дорогая".
* Может быть только один уровень высоты воды в {{L|PVS}}, если вода "дорогая".
* "Дорогая" и "Дешевая" вода не может использоваться одновременно в одном [[PVS]].
* "Дорогая" и "Дешевая" вода не может использоваться одновременно в одном {{L|PVS}}.
* Поверхность воды никогда не должна склоняться по оси Z, она всегда должна быть параллельна линии горизонта на карте.
* Поверхность воды никогда не должна склоняться по оси Z, она всегда должна быть параллельна линии горизонта на карте.
* Вода создаётся с помощью применения водного материала к верхним поверхностям браша, когда другие стороны должны быть закрашены материалом <code>tools\toolsnodraw</code>
* Вода создаётся с помощью применения водного материала к верхним поверхностям браша, когда другие стороны должны быть закрашены материалом <code>tools\toolsnodraw</code>
* Энтити [[water_lod_control]] контролирует дистанцию, на которой дорогая вода переходит в дешевую.
* Энтити {{L|water_lod_control}} контролирует дистанцию, на которой дорогая вода переходит в дешевую.
* Энтити [[env_cubemap]] должна присутствовать над водной поверхностью, чтобы правильно отображать на аппаратных средствах sub-DX9
* Энтити {{L|env_cubemap}} должна присутствовать над водной поверхностью, чтобы правильно отображать на аппаратных средствах sub-DX9
* [[Areaportal|Areaportals]] никогда не могут пересекать поверхность воды.
* {{L|Areaportal|Areaportals}} никогда не могут пересекать поверхность воды.
* Вода не [[Leak|запечатывает]] карту.
* Вода не {{L|Leak|запечатывает}} карту.
* Только верх браша отображается правильно, если смотреть. Бока и дно не отображаются.
* Только верх браша отображается правильно, если смотреть. Бока и дно не отображаются.


Line 40: Line 37:
# Откройте '''Texture Browser''' нажав на кнопку Browse на Texture Bar.
# Откройте '''Texture Browser''' нажав на кнопку Browse на Texture Bar.
# Дважды кликните tools\toolsnodraw материал в Texture Browser.
# Дважды кликните tools\toolsnodraw материал в Texture Browser.
# Теперь нажмите на Apply Current Texture кнопку чтобы применить текстуру nodraw на браш.
# Теперь нажмите на кнопку Apply Current Texture чтобы применить текстуру nodraw на браш.
# Выберете Texture Application Tool, который откроет режим '''Face Edit'''.
# Выберете Texture Application Tool, который откроет режим '''Face Edit'''.
# Кликните левой кнопкой мыши на верхний фейс водного браша в 3D виде, чтобы выделить его..
# Кликните левой кнопкой мыши на верхний фейс водного браша в 3D виде, чтобы выделить его.
# Нажмите '''Browse''', чтобы снова отобразить '''Texture Browser'''.
# Нажмите '''Browse''', чтобы снова отобразить '''Texture Browser'''.
# Введите <code>water</code> в поле '''filter'''. Это отобразит вам все материалы с ключевым словом <code>water</code> в названии.
# Введите <code>water</code> в поле '''filter'''. Это отобразит вам все материалы с ключевым словом <code>water</code> в названии.
# Выберите водный материал для применения, дважды щелкнув по нему. Один из материалов можете попробовать <code>nature/water_canals_water2</code>.
# Выберите водный материал для применения, дважды щелкнув по нему. Один из материалов можете попробовать <code>nature/water_canals_water2</code>.
# Нажмите кнопку'''Apply''' кнопку на панели '''Face Edit'''
# Нажмите кнопку '''Apply''' на панели '''Face Edit'''
# Браш должен иметь правильно созданную воду. Скомпилируйте и запустите вашу карту (с включенными VVis и VRad) для тестирования.
# Браш должен иметь правильно созданную воду. Скомпилируйте и запустите вашу карту (с включенными VVIS и VRAD) для тестирования.


Для правильного отображения водных поверностей, необходимо для вашей карты иметь skybox, и водный браш прямоугольной формы.
Для правильного отображения водных поверхностей, браш должна иметь прямоугольною форму, и необходимо карте иметь скайбокс. Водная браш может пересекаться с другими брашами. Если вода не правильно отображается (невидимая), то в карте находится утечка.


=== Конкретные игровые предупреждения ===
=== Конкретные игровые предупреждения ===


* {{l4d2}} L4D2 карты также требуют [[env_fog_controller]].
* {{l4d2}} L4D2 карты также требуют {{L|env_fog_controller}}.
* {{as}} Все водные браши в Alien Swarm должны быть присоединены [[func_brush]], названному "structure_seal".
* {{as}} Все водные браши в Alien Swarm должны быть присоединены {{L|func_brush}}, названному "structure_seal".
* {{Portal}} Чтобы создать ядовитую воду в Portal, вы должны использовать текстуру <code>nature/hazard_liquid</code>.
* {{Portal}} Чтобы создать ядовитую воду в Portal, вы должны использовать текстуру <code>nature/hazard_liquid</code>.


== Cubemaps и вода ==
== Cubemaps и вода ==


Cubemaps важны для использования с водными поверхностями. На видеокартах, которые работают на DX меньше чем 9, невозможно отображать в реальном времени отражения водной поверхности. Для этих карт создаётся энтити [[env_cubemap]], которая предварительно просчитывает карту отражений.
Cubemaps важны для использования с водными поверхностями. На видеокартах, которые работают на DX меньше чем 9, невозможно отображать в реальном времени отражения водной поверхности. Для этих карт создаётся энтити {{L|env_cubemap}}, которая предварительно просчитывает карту отражений.


Добавляем [[env_cubemap]] к водным поверхностям:
Добавляем {{L|env_cubemap}} к водным поверхностям:


# Добавьте энтити [[env_cubemap]] используя Entity Tool.
# Добавьте энтити {{L|env_cubemap}} используя Entity Tool.
# Разместите [[env_cubemap]] выше поверхности воды, около центра.
# Разместите {{L|env_cubemap}} выше поверхности воды, около центра.
# Дважды кликните на [[env_cubemap]] в 3D виде,чтобы отобразить Object Properties.
# Дважды кликните на {{L|env_cubemap}} в 3D виде,чтобы отобразить Object Properties.
# Кликните на ключ '''Brush faces'''  в '''Object Properties'''.
# Кликните на ключ '''Brush faces'''  в '''Object Properties'''.
# Кликните кнопку '''Pick...'''. Курсор мыши смениться на иконку пипетки.
# Кликните кнопку '''Pick...'''. Курсор мыши смениться на иконку пипетки.
# Кликните на верхний фейс воды, чтобы выделить его с пипеткой. Он выделиться красным, чтобы показать ассоциацию фейса с энтити [[env_cubemap]].
# Кликните на верхний фейс воды, чтобы выделить его с пипеткой. Он выделиться красным, чтобы показать ассоциацию фейса с энтити {{L|env_cubemap}}.
# Закройте '''Object properties'''
# Закройте '''Object properties'''
# Скомпилируйте и запустите вашу карту. Когда карта загрузилась, откройте консоль разработчика и введите <code>buildcubemaps</code>. Движок просчитает карту окружения для каждой энтити env_cubemap , и сохранит информацию в [[BSP]] файл.
# Скомпилируйте и запустите вашу карту. Когда карта загрузилась, откройте консоль разработчика и введите <code>buildcubemaps</code>. Движок просчитает карту окружения для каждой энтити env_cubemap , и сохранит информацию в {{L|BSP}} файл.


== См. также ==
== См. также ==
* [[Water]]
* {{L|Water}}
* [[Water (shader)]]
* {{L|Water (shader)}}
 
{{ACategory|Level Design Tutorials}}
{{ACategory|Water}}


[[Category:Level Design Tutorials]]
{{ACategory|Level Design}}
[[Category:Water]]
{{ACategory|Tutorials}}
{{ACategory|Water}}

Latest revision as of 03:41, 22 August 2024

English (en)Français (fr)Русский (ru)中文 (zh)Translate (Translate)


Вода - очень сложный шейдер в движке Source: она анимированная, отражающая, мутная, искажающая отражение и использует бамп, поэтому нужно знать определенные правила и ограничения по размещению воды, и какую воду использовать в разных случаях.

"Дорогая" вода

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

Примечание:"Дорогая" вода будет только корректного отображения, если эти требования(en) будут выполнены.

"Легкая" Вода

В ситуациях, когда требуется более простое решение в плане воды (чтобы уменьшить затрату ресурсов системы), может быть использована “быстрая” вода. Она не отражает окружающего пространства, что делает менее реалистичной, но более быстродейственной. Качественная вода будет проигрывать быстрой на видеокартах без поддержки возможностей, нужных для ее правильного отображения. Она также будет уступать быстрой воде, если пользователь поставит в настройках плохое качество воды.

Требования

Чтобы вода правильно работала, имеется несколько правил по её размещению и использованию на карте.

  • Может быть только один уровень высоты воды в PVS(en), если вода "дорогая".
  • "Дорогая" и "Дешевая" вода не может использоваться одновременно в одном PVS(en).
  • Поверхность воды никогда не должна склоняться по оси Z, она всегда должна быть параллельна линии горизонта на карте.
  • Вода создаётся с помощью применения водного материала к верхним поверхностям браша, когда другие стороны должны быть закрашены материалом tools\toolsnodraw
  • Энтити water_lod_control(en) контролирует дистанцию, на которой дорогая вода переходит в дешевую.
  • Энтити env_cubemap(en) должна присутствовать над водной поверхностью, чтобы правильно отображать на аппаратных средствах sub-DX9
  • Areaportals(en) никогда не могут пересекать поверхность воды.
  • Вода не запечатывает(en) карту.
  • Только верх браша отображается правильно, если смотреть. Бока и дно не отображаются.

Вода не работает с брашевыми энтити и не должна к ним привязана. Водные браши, привязанные к любым брашевым энтити, не будут отображаться правильно.

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

Для добавления толщи воды на ваш уровень, следуйте этим шагам:

  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. Введите water в поле filter. Это отобразит вам все материалы с ключевым словом water в названии.
  9. Выберите водный материал для применения, дважды щелкнув по нему. Один из материалов можете попробовать nature/water_canals_water2.
  10. Нажмите кнопку Apply на панели Face Edit
  11. Браш должен иметь правильно созданную воду. Скомпилируйте и запустите вашу карту (с включенными VVIS и VRAD) для тестирования.

Для правильного отображения водных поверхностей, браш должна иметь прямоугольною форму, и необходимо карте иметь скайбокс. Водная браш может пересекаться с другими брашами. Если вода не правильно отображается (невидимая), то в карте находится утечка.

Конкретные игровые предупреждения

  • Left 4 Dead 2 L4D2 карты также требуют env_fog_controller(en).
  • Alien Swarm Все водные браши в Alien Swarm должны быть присоединены func_brush(en), названному "structure_seal".
  • Portal Чтобы создать ядовитую воду в Portal, вы должны использовать текстуру nature/hazard_liquid.

Cubemaps и вода

Cubemaps важны для использования с водными поверхностями. На видеокартах, которые работают на DX меньше чем 9, невозможно отображать в реальном времени отражения водной поверхности. Для этих карт создаётся энтити env_cubemap(en), которая предварительно просчитывает карту отражений.

Добавляем env_cubemap(en) к водным поверхностям:

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

См. также