Освещение

From Valve Developer Community
Jump to: navigation, search
English 简体中文
Серия полезных советов Выскажите свои мысли (EN) — Помогите нам воплотить больше идей

Амуниция | Животные | Анимированные облака | Анимированное небо | Муравьиные львы | Лучи | Растительность | Провода | Цвет | Сражение | Комбайны | Существа | Двери | Туман | Лифты | Освещение | Взрывы | Огонь | Туман | Листва | Стекло | Земля | Хедкраб | Здоровье | Лестницы | Лазеры и лучи | Свечение | Двигающиеся облака | Звук и музыка | Оптимизация | Окружение | Физика | Сканер сетчатки | Провода и веревки | Дым | Звуки | Спецэффекты | Солнце | Почва | Поезда | Деревья | Турели | Вода | Погода | Окна | Зомби

Руководства

Пример хорошо освещённой комнаты.

Виды

Статичные источники света

Tip.png Совет: Статичный свет компилируется в лайтмапы, освещающие браши, модели, кубмапы и дают статичные отражения. Это упрощает процесс рендеринга, поскольку источники освещения уже прописаны в карту.
light
Неподвижный, все-направленный точечный источник света (различные лампы, огонь и др.).
light_spot
Неподвижный, однонаправленный точечный источник света (например, направленный прожектор). Конический угол луча не должен превышать 90°.
light_environment
Содержит два связанных источника света:
  • Рассеянный 'окружающий' свет (отраженный от облаков и атмосферы в целом), исходящий из всех поверхностей скайбокса.
  • Направленный 'яркий' свет (солнечный или лунный), падающий в одном направлении.
Оба излучаются материалом toolsskybox везде, где он есть на карте. См. также Скайбокс.
env_particlelight
Освещает частицы, порождаемые env_smokestack. Частицы не подвержены нормальному освещению. Используйте не более двух.
Светящиеся текстуры
Брашевые поверхности со светоизлучающим материалом (определяемым в game_dir/lights.rad), который отбрасывает свет на угол 180°.

Статичные светоприёмники

Браши
Инструмент Масштаб карты освещения диалогового окна Hammer Face Edit Dialog может быть использован для управления резкостью и размытостью лайтмапа на поверхности браша - эффект наиболее заметен в зонах с повышенной контрастностью, например, в затенённых местах. Обратите внимание, что добавление новых источников света не сильно скажется на производительности, но уменьшение масштаба карты освещения (т.е. увеличение разрешения) сразу увеличит размер карты и объём занимаемой памяти.
prop_static
В отличие от других моделей, prop_static светится статично: значение освещения сохраняется для каждой вершины, а модель сетки столкновений (или, опционально, reference mesh) используется для расчёта теней.
Существуют следующие опции:
  • disableshadows - Не отбрасывать тени;
  • disablevertexlighting - Сохранять только одно значение освещения для всей модели;
  • disableselfshadowing - Не позволять энтити отбрасывать тень на себя;
  • ignorenormals - При расчёте освещения игнорировать данные нормалей вершин. Это чрезвычайно полезно для листвы и других тонких типов вершин сетки.

Динамические источники света

Tip.png Совет: Динамическое освещение вычисляется в процессе игры, что делает рендеринг более дорогим.
env_projectedtexture светит из дверного проёма.
light_dynamic
Простой, однонаправленный динамический свет, который может быть перемещён, повёрнут и отрегулирован.
point_spotlight
Эффект луча от прожектора с дополнительным динамическим источником света в точке падения на поверхность.
npc_spotlight
Прожектор NPC, похожий на point_spotlight, но с возможностью отслеживания целей.
env_projectedtexture
Динамический источник, который светит не однотонным цветом, а определённой текстурой и в то же время 'вычитает' реалистичные динамические тени. Влияет на все поверхности, которые могут принимать свет, и используется в качестве фонарика игрока в Episode Two.

Динамические тени

Tip.png Совет: Динамические тени отбрасываются только моделями (NPC, физическими пропами и т.д.), и только на брашевые поверхности (от статичных и динамических источников света). Они рассчитываются в реальном времени, поэтому довольно грубы и достаточно затратны для визуализации.
Warning.png Предупреждение:  Это не *настоящие* тени, а процедурные (создаваемые кодом) текстуры, проецируемые объектом. В Left 4 Dead, Portal 2 и Alien Swarm направление теней вычисляется на основе энтити, и обусловлено близостью к ней света. Но не в модах Source2006/2007/2013, если там не используются Динамические RTT углы теней из Source 2007-го года.
Warning.png Предупреждение: Иногда динамические тени проникают сквозь стены и полы, выдавая местоположение игроков или объектов. Если вы столкнулись с этой проблемой, используйте info_no_dynamic_shadow.
Note.png Примечание: Тени "скользят" по визуальной сетке, если только нет shadowlod, задаваемого в QC. Shadow LOD при создании тени используют низкую детализацию. Это не относится к теням на карте (фонарикам, env_projectedtexture)
Note.png Примечание: Если динамические тени пересекаются, то они не сливаются друг с другом или освещением карты. Это может приводить к нежелательным эффектам 'удвоения', когда, например, физические пропы находятся на физическом пропе стола. Чтобы обойти эту проблему, вы можете включать и отключать динамические тени требуемых энтити.
Note.png Примечание: Динамические тени поддерживают полупрозрачность. Если ваша модель имеет разные уровни прозрачности, они могут отразиться на тени.
shadow_control
Точечная энтити, использует управление динамическими тенями по всей карте, в том числе максимальное расстояние отбрасывания, направление отбрасывания и резкость/рассеяние.
info_no_dynamic_shadow
Точечное энтити, использет список брашевых поверхностей, чтобы не отбрасывать динамические тени.
Энтити prop_physics 
Имеет значение "shadowcastdist" для переопределения дальности отбрасывания динамических теней.
Энтити prop_dynamic 
Имеет значение "disableshadows" и входы "enableshadows" и "disableshadows" для управления отбрасываемыми ими динамическими тенями.
Энтити NPC 
Имеет управление prop_dynamic shadow, а также "disablereceiveshadows" To do: чтобы предотвращать...?

Эффекты Тиндаля

Эффекты Тиндаля вызваны рассеянием света на взвешенных (коллоидных) частицах в прозрачной среде. Например, автомобильные фары в тумане.

  • env_sprite - энтити, используемая для создания всенаправленного свечения или засветки.
  • env_lightglow - асимметричное свечение (для зон с контрастным освещением).
  • env_sun - добавляет яркое пятно с ореолом в скайбоксе для задания положения Солнца или Луны.
  • Брашевая текстура : models/effects/vol_light001
  • Брашевая текстура : models/effects/vol_light002
  • Модель : models/Effects/vol_light.mdl - используется вместе с prop_static.

Стандартные значения

Яркость
Автомобильные фары 231 223 192
Лампа Комбайнов 147 226 240
Вольфрамовая лампа 254 216 146
Флуоресцентная труба 159 237 215
Лампа накаливания 255 245 145

Значения для скайбоксов смотрите в списке.

Примечания

  • Указание имени источника делает его гораздо тяжелее для рендеринга. Давайте имена только необходимым источникам света. Несколько источников света с одинаковыми именами движку проще обрабатывать, чем с разными.
  • light_dynamic - самый тяжёлый, и на некоторых системах может не отображаться
  • Основные энтити света не связаны с видимыми источниками (например, лампочки). Для этого вам нужна модель. Смотрите список моделей освещения.
  • Основные энтити света не "отсвечивают", как будто в тумане или сумерках. Чтобы это заработало, скомпилируйте и запустите карту с включённым HDR, или добавьте point_spotlightотключенным динамическим освещением, если таковое не нужно) или энтитю env_lightglow.
  • Карты не будут освещены, если вы не запустите vrad (или эквивалент). VRAD не сможет работать как надо и не будет рассчитывать реалистичное отражение света, если на карте присутствуют утечки.
  • Некоторые текстуры сами отбрасывают свет и могут быть созданы с помощью lights.rad в папке мода или в sourcesdk/bin.
  • Перемещаемые объекты не меняют свечения. Их освещение будет рассчитываться только в соответствии с их положением в Хаммере (например, браш из тёмной комнаты не станет ярче, если его перенести в освещённую комнату).

Консольные команды

mat_fullbright 2. Ярко-белые физические модели, кажется, работают с ошибкой; они освещаются правильно во время движения.
mat_fullbright <0-2>
0 - нормальное освещение.
1 - 'полноценное' освещение, когда всё освещено на 100%.
2 был введён в Orange Box и отображает 'только освещение'. Он заменяет все текстуры на однотонный цвет, позволяя вам увидеть что, где и как излучает свет.

См. также

Внешние ссылки