Коротко
- Virtual Shadow Maps созданы для динамических теней высокого разрешения и предназначены для работы с Nanite.
- Выбор метода расчёта теней во многом зависит от типа Mobility источника света: Static, Stationary или Movable.
- Ограничение значения Attenuation Radius у источников Point, Spot и Rect может сократить область, участвующую в расчёте теней.
- В Shadow Map Ray Tracing размер источника света и число сэмплов влияют на мягкость теней и вычислительные затраты.
Официальная документация Unreal Engine объясняет, как Virtual Shadow Maps (VSM), подвижность источников света и их параметры влияют на внешний вид теней и стоимость рендеринга. В этом руководстве собраны настройки, которые помогут выбрать подходящий метод для архитектурной визуализации, интерьеров и сцен для презентаций в реальном времени. Цель — не выставить максимальное качество в каждой сцене, а найти баланс с учётом геометрии, освещения и желаемого результата.
1. Сначала выберите метод расчёта теней и подвижность света
Главный параметр, определяющий поведение теней от источника света в Unreal Engine, — это настройка Mobility. Статические источники света могут использовать данные lightmap, созданные при сборке освещения; тени от Movable источников рассчитываются в реальном времени. Stationary источники могут сочетать предварительно рассчитанные данные и динамические составляющие. Подвижность каждого источника в сцене можно настраивать независимо.
Если в проекте используется геометрия Nanite, традиционный метод Shadow Mapping её не поддерживает. В документации Unreal Engine 5 рекомендуется использовать в проектах с Nanite Movable Lights или Virtual Shadow Maps. VSM разработан для работы с Nanite; для проектов без Nanite и целевых платформ это может быть неподходящий вариант.
Чтобы включить VSM, в разделе Shadows по пути Project Settings › Engine › Rendering выберите параметр Shadow Map Method. В проектах, созданных до Unreal Engine 5.0, переключить метод можно через настройки проекта или консольную переменную r.Shadow.Virtual.Enable. В новых проектах VSM выбран по умолчанию.
2. Настройте тени с помощью размера источника и области его действия
Мягкость теней зависит не только от метода их расчёта. Параметры Source Angle, Source Radius, Source Height и Source Width определяют видимый размер источника света. Согласно документации, с увеличением этих значений тени от объектов, освещённых источником, становятся мягче. В сцене реального времени нужной мягкости проще добиться небольшими изменениями параметров — так можно избежать неоправданно высоких значений.
У источников Point, Spot и Rect параметр Attenuation Radius ограничивает область их действия в сцене. Важно задавать радиус так, чтобы он охватывал только необходимые объекты: чем дальше распространяется свет от источников, создающих тени, тем больше объектов может участвовать в расчётах, особенно при традиционном Shadow Mapping. Если свет не освещает всю сцену, проверьте радиус его действия.
| Параметр | Рекомендуемое значение | Эффект |
|---|---|---|
Source Radius (локальный источник) | Умеренное значение, подходящее для сцены; в документации в качестве примера для Point Light указано 10 | Создаёт мягкие тени и контактное ужесточение; чрезмерные значения могут ухудшить изображение и сказаться на производительности. |
Source Angle (Directional Light) | Реалистичный угол умеренной величины; в документации приведён пример 5,0 | Определяет мягкость теней от направленного света. |
Attenuation Radius | Ограничьте областью, которую действительно должен освещать источник | Помогает сократить количество объектов и размер области, участвующих в расчёте теней. |
SMRT Samples Per Ray | 4–8 | Большее число сэмплов может сделать тени мягче; меньшее снижает вычислительные затраты, но ограничивает достижимую мягкость. |
Приведённые в таблице примеры размеров источников — не универсальный рецепт. В архитектурных интерьерах окна, светильники и схемы непрямого освещения дают разные результаты. Оценивайте настройки с учётом масштаба сцены и кадрирования камеры.
3. Найдите баланс качества и затрат для VSM и мягких теней
VSM делит карту теней на страницы размером 128 × 128 пикселей и обрабатывает страницы, необходимые для пикселей, видимых на экране. Страницы кэшируются между кадрами, пока движение или изменение источника света не сделает их недействительными. Такой подход позволяет получать тени высокого разрешения и не пересчитывать каждую страницу в каждом кадре.
В локальных источниках Shadow Map Ray Tracing (SMRT) может создавать мягкие тени и контактное ужесточение в зависимости от размера источника. На локальных источниках на этот эффект влияет Source Radius, а на Directional Light — Source Angle. В документации указано, что при масштабе теней Epic число лучей по умолчанию для локальных и направленных источников составляет 8. Меньшее число лучей может усилить шум в полутени; при значении 0 для соответствующего числа лучей SMRT отключается, и используются резкие тени с одним сэмплом.
Для более точной настройки можно использовать переменные r.Shadow.Virtual.SMRT.SamplesPerRayLocal и r.Shadow.Virtual.SMRT.SamplesPerRayDirectional. В документации диапазон 4–8 сэмплов предлагается как подходящая отправная точка. Меньшее число сэмплов снижает затраты, но ограничивает степень мягкости теней. Слишком сильное увеличение размера источника может повлиять на производительность и привести к визуальным артефактам, когда камера приближается к полутени.
4. Контрольный список для архитектурных сцен и интерьеров
Для команд, готовящих интерактивные прогулки, презентации дизайна или анимацию, первоочередная задача — определить, какая геометрия и какие источники света в сцене будут подвижными. Поэтому в проектах с Nanite выбор VSM особенно важен. При этом в сценах со Static источниками, где не используется Lumen, полностью запечённые тени по-прежнему отображаются в lightmap. Если не проверить выбранный метод в настройках проекта, одних изменений параметров источников света может быть недостаточно для ожидаемого результата.
Рекомендуемый порядок работы: сначала проверьте значения Mobility у источников света и метод расчёта теней, затем настройте область действия и размер каждого источника с учётом потребностей сцены. После этого проверьте тени на движущихся объектах и при движении камеры. Слишком большая область действия Point и Spot источников может создавать лишние вычислительные затраты. Тени от Static или Stationary источников, видимые в редакторе до завершения сборки освещения, являются только предварительным просмотром. Чтобы оценить итоговый результат, выполните сборку освещения с помощью Build › Build All Levels.
Распространённые ошибки
Выбирать традиционный Shadow Mapping в сцене с Nanite и ожидать, что тени Nanite будут работать.
Оставлять для Point, Spot или Rect значение
Attenuation Radiusбольше необходимого.Чрезмерно увеличивать размер источника, не учитывая артефакты в полутени и снижение производительности.
Принимать предварительные тени от Static или Stationary источников за итоговый результат до завершения сборки.
Уменьшать число сэмплов SMRT, не проверяя уровень шума в полутени.
Источники
Источников: 2Тексты источников не перепечатываются; короткие цитаты отмечены, остальное — наш пересказ и комментарий.
Для команд архитектурной визуализации в Турции практическая ценность этих настроек особенно заметна при подготовке презентаций и анимации в реальном времени: они позволяют подбирать качество теней под требования сцены. Вместо того чтобы выставлять максимальные значения для каждого источника, следует учитывать Mobility, использование Nanite и область действия света — это поможет избежать лишних вычислений.
Командам в офисах, работающим на разных системах, стоит проверять число сэмплов SMRT и размеры источников света отдельно для каждой сцены. В исходной документации не указаны конкретные требования к оборудованию или стоимость лицензий, поэтому производительность необходимо измерять на самом проекте и целевой системе. Также стоит включить в список проверок перед сдачей проекта пункт о том, что предварительный просмотр после сборки нельзя принимать за итоговое освещение.
Частые вопросы
Как включить Virtual Shadow Maps в Unreal Engine 5?
В разделе `Shadows` по пути `Project Settings › Engine › Rendering` выберите Virtual Shadow Maps в настройке `Shadow Map Method`. В проектах, созданных до Unreal Engine 5.0, также можно изменить настройку проекта или использовать `r.Shadow.Virtual.Enable`.
Нужно ли использовать Virtual Shadow Maps с Nanite?
В документации Unreal Engine VSM описываются как метод, разработанный для работы с Nanite. Для проектов с Nanite рекомендуется использовать Movable Lights или Virtual Shadow Maps.
Сколько сэмплов SMRT использовать для мягких теней?
В документации диапазон 4–8 для `Samples Per Ray` указан как подходящий. Меньшее число сэмплов снижает затраты, но ограничивает достижимую мягкость теней.



