Ru/Fog tutorial

From Valve Developer Community
Jump to navigation Jump to search

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

Настройки тумана в ентити 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

Создание своего skybox

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

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

Теперь создайте 6 .vmt необходимых для skybox. Если хотите назовите ваш skybox sky_fog, здесь:

sky_fogbk.vmt
sky_fogdn.vmt
sky_fogft.vmt
sky_foglf.vmt
sky_fogrt.vmt
sky_fogup.vmt

Они все содержат одно содержимое:

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

Мы не используем "$nofog" 1 как skybox'ы обычно делают.

Если вы используете этот skybox и только разрешен primary fog color в env_fog_controller, затуманеная неометрия и модели имеют тот же цвет что skybox.

Как бы нибыло, если вы используете secondary fog color что хорошо, вы должны быть уверенны что расстояние между игроком и skybox'ом всегда больше чем fogend. Запомните что мы неиспользовали "$nofog" 1, это означает что туман будет рисоваться на skybox. Тем не менее, это только делается в обоснованном пути когда skybox полностью перерисовывается - как геометрия. Вы можете использовать 3D Skybox для этой цели.

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

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