Ru/Fog tutorial: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
Line 27: Line 27:
==Создание своей текстуры неба (скайбокса)==
==Создание своей текстуры неба (скайбокса)==


В этой части статьи мы создадим скайбокс, который использует <code>primary fog color</code>. Хотя обычный skybox имеет 6 [[Vtf|файлов текстур]], размером 1024x1024 пикселов, нам только нужна одна меньшего размера, так мы уменьшим размер кешированной текстуры.
В этой части статьи мы создадим скайбокс, который использует '''primary fog color'''. Обычно их 6, и разрешение каждого файла равно 1024x1024, но в этом уроке мы создадим один файл с меньшим размером для улучшения производительности.


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


Теперь создайте 6 [[VMT|.vmt-материалов]], необходимых для скайбокса. В этом уроке текстура называется ''sky_fog'':
Теперь создайте 6 [[VMT|.vmt-материалов]], необходимых для скайбокса. В этом уроке текстура называется ''sky_fog'':
Line 50: Line 50:
При использовании этого скайбокса и с использованием только '''primary fog color''' у ентити [[env_fog_controller]], все затуманенные модели и геометрические примитивы будут иметь такой же цвет.
При использовании этого скайбокса и с использованием только '''primary fog color''' у ентити [[env_fog_controller]], все затуманенные модели и геометрические примитивы будут иметь такой же цвет.


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



Revision as of 10:09, 30 April 2009

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

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

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

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

Template:Note:ru

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

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

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

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

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

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

Template:Note:ru

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

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

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

Теперь создайте 6 .vmt-материалов, необходимых для скайбокса. В этом уроке текстура называется 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, все затуманенные модели и геометрические примитивы будут иметь такой же цвет.

Template:Note:ru Template:Tip:ru

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

Template:Otherlang:ru Template:Otherlang:ru:en