Ru/Fog tutorial: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
m (tidy)
m (Using L template for links)
 
(15 intermediate revisions by 7 users not shown)
Line 1: Line 1:
==Туман с skyboxes==
{{lang|Fog tutorial}}
==Применение тумана для скайбоксов==


[[Image:Fogtute01.jpg|thumb|300px|right|Наиболе частая проблема с туманом то что [[env_fog_controller]] не влияет на skybox и это выглядит вот так.]]
[[File:Fogtute01.jpg|thumb|300px|right|Настройки тумана в ентити {{L|env_fog_controller}} не влияют на скайбокс.]]


Когда у вас есть туман на карте, вы можете столкуться с проблемой что туман действует на геометрию и модели, но не на [[Skybox (2D)|skybox]].
Когда у вас есть туман на карте, вы можете столкнуться с проблемой, что туман действует на геометрию и модели, но не на {{L|Skybox (2D)|скайбокс}}.


Вы можете использовать материалы которые были использованы в других уровнях [[HL2]] ранее или сделать ваш собственный материал для skybox. Последнея версия дает вам не только больше управления туманом но также улучшает производительность.
Для скайбоксов вы можете использовать материалы, которые были использованы в других уровнях {{L|HL2}} или создать новый. В последней версии движка улучшили производительность визуализации тумана и добавили новые возможности для настройки.


{{note|{{L|3D Skybox}} использует свои собственные настройки тумана в энтити {{L|sky_camera}}. Для лучшего результата сопоставьте эти настройки с вашими {{L|env_fog_controller}}.}}
{{clr}}


{{note:ru|[[3D Skybox]] использует свои собственные настройки тумана в энтити [[sky_camera]]. Сопаставьте эти настройки с вашими [[env_fog_controller]] для наилучшего результата.}}
==Быстрое решение проблемы==
<br style="clear:both">


==Быстрое исправление==
[[File:Fogtute02.jpg|thumb|300px|right|Пример удачного использования тумана, из-за совпадения его цвета с оттенком текстуры неба.]]
Чтобы добиться результата, когда скайбокс не виден в тумане, вам надо применить текстуру <code>sky_day02_10</code> для [[Skybox (2D)#Changing the displayed skybox| скайбокса]] (если посмотреть на исходник, то это текстура с нарисованным эффектом тумана). Для списка текстур неба, смотрите статью {{L|Sky List}}.


[[Image:Fogtute02.jpg|thumb|300px|right|Пример удачного тумана, из за того что цвет тумана совпадает с 2D skybox.]]Для быстрого исправление эти исправления работают хорошо. Однака, вы ограничены одной настройкой цвета и это не будет выглядеть хорошо если вы используете фунцию далекой плоскости z-clip  [[env_fog_controller]].
Затем, в свойствах {{L|env_fog_controller}} должны стоять такие настройки:


Во-первых, вы должны использовать <code>sky_day02_10</code> в качестве вашей [[Skybox (2D)#Changing the displayed skybox|skybox]] текстуры (если вы посмотрите на неё, она уже затуманенная текстура поэтому это и работает). Для списка небес, смотрите [[Sky List]].
'''Primary fog color'''(первичный цвет тумана): <code>176 192 202</code><br/>
'''Secondary fog color'''(вторичный цвет тумана): <code>206 216 222</code>


Затем, ваш [[env_fog_controller]] должен быть чемто вроде этого:
Эти настройки используется в главе {{L|Highway 17}} на уровне с ж/д мостом в {{L|HL2}}.


Primary fog color: <code>176 192 202</code><br/>
{{note|Для быстрого решения проблемы этот способ подойдёт. Однако результат может отличаться от ожидаемого, если вы используете функцию '''"far z-clip plane"''' ентити {{L|env_fog_controller}}, т.к. вы ограничены одной настройкой цвета.}}
Secondary fog color: <code>206 216 222</code>
{{clr}}


Эти настройки используется в часте [[Highway 17]] пересечения моста в [[HL2]].
==Создание своей текстуры неба (скайбокса)==
<br style="clear:both">


==Создание своего skybox==
В этой части статьи мы создадим скайбокс, который использует '''primary fog color'''. Обычно их 6, и разрешение каждого файла равно 1024x1024, но в этом уроке мы создадим один файл с меньшим размером для улучшения производительности.


Мы просто создаем skybox который использует <code>primary fog color</code>. Хотя обычный skybox имеет 6 [[Vtf|файлов текстур]] каждая 1024x1024 пикселов, нам только нужна одна меньшего размера, так мы уменьшим размер кешированной текстуры.
Cоздадим {{L|VTF|.vtf-файл}} с цветом вашего тумана. Лучше сохранить его в папку '''skybox'''. Запомните его имя. В этом уроке он называется ''sky_fog_tex''.


Во-первых, создаем [[VTF|.vtf]] с цветом вашего тумана. Лучше сохранить его в вашу папку skybox. Запомните его имя, для этого учебника я пологаю оно называется ''sky_fog_tex''.
Теперь создайте 6 {{L|VMT|.vmt-материалов}}, необходимых для скайбокса. В этом уроке текстура называется ''sky_fog'':
<pre>sky_fogbk.vmt //Back - Задняя стенка скайбокса
sky_fogdn.vmt //Down - Нижняя стенка скайбокса
sky_fogft.vmt //Front - Передняя стенка скайбокса
sky_foglf.vmt //Left - Левая стенка скайбокса
sky_fogrt.vmt //Right - Правая стенка скайбокса
sky_fogup.vmt //Up - Верхняя стенка скайбокса
</pre>


Теперь создайте 6 [[VMT|.vmt]] необходимых для skybox. Если хотите назовите ваш skybox ''sky_fog'', здесь:
Они все должны содержать следующие строки:
<pre>sky_fogbk.vmt
sky_fogdn.vmt
sky_fogft.vmt
sky_foglf.vmt
sky_fogrt.vmt
sky_fogup.vmt</pre>
 
Они все содержат одно содержимое:
<pre> "UnlitGeneric"
<pre> "UnlitGeneric"
  {
  {
Line 45: Line 47:
  }</pre>
  }</pre>


Мы не используем <code>"$nofog" 1</code> как skybox'ы обычно делают.
В отличии от обычных текстур неба, мы не используем переменную<code>"$nofog" 1</code>.


Если вы используете этот skybox и только разрешен <code>primary fog color</code> в [[env_fog_controller]], затуманеная неометрия и модели имеют тот же цвет что skybox.
При использовании этого скайбокса и с использованием только '''primary fog color''' у ентити {{L|env_fog_controller}}, все затуманенные модели и геометрические примитивы будут иметь такой же цвет.


Как бы нибыло, если вы используете <code>secondary fog color</code> что хорошо, вы должны быть уверенны что расстояние между игроком и skybox'ом всегда больше чем <code>fogend</code>. Запомните что мы неиспользовали <code>"$nofog" 1</code>, это означает что туман будет рисоваться на skybox. Тем не менее, это только делается в обоснованном пути когда skybox полностью перерисовывается - как геометрия. Вы можете использовать [[3D Skybox]] для этой цели.
{{note|Это не значит, что не надо использовать значение '''secondary fog color'''. Просто с использованием этого параметра необходимо помнить, что расстояние между игроком и скайбоксом должно быть всегда меньше параметра '''Fog End'''(конец тумана), к тому же мы не стали использовать переменную <code>"$nofog" 1</code> в файлах материалов нашего скайбокса. При отсутствии переменной <code>"$nofog" 1</code> туман будет отображаться и на текстуре неба. Однако этот метод используется только тогда, когда перерисовывается вся геометрия уровня.}}
{{tip|для этой цели можно использовать {{L|3D Skybox}}.}}


==Смотрите также==
==Смотрите также==
* Пример HL2 vmf проекта с [http://www.sourcemapping.org/download/wiseEscape.zip смешанным 3D skybox туманом]
* Пример HL2 vmf проекта с [http://type3studios.com/downloads/tutorials/SdkNutsTutorials/wiseEscape.zip смешанным 3D skybox туманом]
* [[Dust, Fog, & Smoke|Пыль, туман и дым]]
* {{L|Dust, Fog, & Smoke|Пыль, туман и дым}}
 
{{otherlang:ru}}
{{otherlang:ru:en|Fog tutorial}}


[[Category:Level_Design]]
[[Category:Level Design]]
[[Category:Level_Design:ru]]
[[Category:Russian]]

Latest revision as of 07:26, 11 July 2024

English (en)Русский (ru)中文 (zh)Translate (Translate)

Применение тумана для скайбоксов

Настройки тумана в ентити env_fog_controller(en) не влияют на скайбокс.

Когда у вас есть туман на карте, вы можете столкнуться с проблемой, что туман действует на геометрию и модели, но не на скайбокс(en).

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

Note.pngПримечание:3D Skybox(en) использует свои собственные настройки тумана в энтити sky_camera(en). Для лучшего результата сопоставьте эти настройки с вашими env_fog_controller(en).

Быстрое решение проблемы

Пример удачного использования тумана, из-за совпадения его цвета с оттенком текстуры неба.

Чтобы добиться результата, когда скайбокс не виден в тумане, вам надо применить текстуру sky_day02_10 для скайбокса (если посмотреть на исходник, то это текстура с нарисованным эффектом тумана). Для списка текстур неба, смотрите статью Sky List(en).

Затем, в свойствах env_fog_controller(en) должны стоять такие настройки:

Primary fog color(первичный цвет тумана): 176 192 202
Secondary fog color(вторичный цвет тумана): 206 216 222

Эти настройки используется в главе Highway 17(en) на уровне с ж/д мостом в HL2(en).

Note.pngПримечание:Для быстрого решения проблемы этот способ подойдёт. Однако результат может отличаться от ожидаемого, если вы используете функцию "far z-clip plane" ентити env_fog_controller(en), т.к. вы ограничены одной настройкой цвета.

Создание своей текстуры неба (скайбокса)

В этой части статьи мы создадим скайбокс, который использует primary fog color. Обычно их 6, и разрешение каждого файла равно 1024x1024, но в этом уроке мы создадим один файл с меньшим размером для улучшения производительности.

Cоздадим .vtf-файл(en) с цветом вашего тумана. Лучше сохранить его в папку skybox. Запомните его имя. В этом уроке он называется sky_fog_tex.

Теперь создайте 6 .vmt-материалов(en), необходимых для скайбокса. В этом уроке текстура называется sky_fog:

sky_fogbk.vmt 		//Back - Задняя стенка скайбокса
sky_fogdn.vmt		//Down - Нижняя стенка скайбокса
sky_fogft.vmt		//Front - Передняя стенка скайбокса
sky_foglf.vmt		//Left - Левая стенка скайбокса
sky_fogrt.vmt		//Right - Правая стенка скайбокса
sky_fogup.vmt		//Up - Верхняя стенка скайбокса

Они все должны содержать следующие строки:

 "UnlitGeneric"
 {
 	"$baseTexture" "skybox/sky_fog"
 }

В отличии от обычных текстур неба, мы не используем переменную"$nofog" 1.

При использовании этого скайбокса и с использованием только primary fog color у ентити env_fog_controller(en), все затуманенные модели и геометрические примитивы будут иметь такой же цвет.

Note.pngПримечание:Это не значит, что не надо использовать значение secondary fog color. Просто с использованием этого параметра необходимо помнить, что расстояние между игроком и скайбоксом должно быть всегда меньше параметра Fog End(конец тумана), к тому же мы не стали использовать переменную "$nofog" 1 в файлах материалов нашего скайбокса. При отсутствии переменной "$nofog" 1 туман будет отображаться и на текстуре неба. Однако этот метод используется только тогда, когда перерисовывается вся геометрия уровня.
Tip.pngСовет:для этой цели можно использовать 3D Skybox(en).

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