Коротко
- Virtual Shadow Maps — метод построения теней для геометрии Nanite и динамического освещения.
- В новых проектах система включена по умолчанию; в проектах, созданных до Unreal Engine 5.0, её нужно включить отдельно.
- При уровне качества Shadows Epic количество лучей по умолчанию для точечных и направленных источников света равно восьми.
- На мягкость теней от точечных источников влияет Source Radius, а от Directional Light — Source Angle.
Virtual Shadow Maps (VSM) — метод создания детализированных теней в Unreal Engine 5, разработанный для работы с Nanite. В официальной документации Epic Games объясняется, как настраивать VSM, особенно в сценах со сложной геометрией и динамическим освещением. В этом руководстве параметры проекта, настройки источников света и баланс качества и производительности, описанные в документации Unreal Engine 5, рассматриваются с точки зрения рабочего процесса архитектурной визуализации.
Для каких сцен подходят Virtual Shadow Maps?
VSM призвана создавать детализированные тени, обрабатывая виртуальные карты теней с учётом потребностей видимых на экране пикселей. Виртуальные карты имеют разрешение 16K × 16K и разделены на страницы размером 128 × 128 пикселей. Необходимые страницы выделяются и обрабатываются, а доступные кешируются между кадрами. Если из-за движения объектов или источников света страницы становятся недействительными, их можно обработать заново.
Метод разработан для проектов, совместимых с Nanite. Использование традиционных shadow map для геометрии Nanite с источниками света Stationary не поддерживается; в проектах с Nanite в таких случаях следует использовать Movable Light или VSM. VSM может не подойти проекту без Nanite или целевой платформе. При выборе метода построения теней учитывайте и геометрию сцены, и подвижность источников света.
1. Проверьте метод построения теней в проекте
Откройте раздел Shadows в настройках проекта: Engine > Rendering. В параметре Shadow Map Method выберите Virtual Shadow Maps или традиционный метод Shadow Maps. В новых проектах VSM включена по умолчанию. В проектах, созданных до Unreal Engine 5.0, эту функцию нужно включить через настройки проекта или консольную переменную r.Shadow.Virtual.Enable.
После включения VSM заменяет некоторые методы построения теней. К ним относятся предварительно рассчитанные тени от источников света Stationary, pre-shadow, тени для отдельных объектов и Cascaded Shadow Maps. При этом в сценариях без Lumen полностью запечённые тени от источников света Static продолжают работать через карты освещения. У источников света Stationary непрямое освещение может поступать из запечённых карт освещения, а прямое освещение и тени рассчитываются динамически.
2. Настройте размер источника света с учётом сцены
Shadow Map Ray Tracing (SMRT) использует выборку вместе с VSM, чтобы создавать мягкие тени с контактным ужесточением. Для точечных источников света параметр Source Radius, а для Directional Light — Source Angle влияют на распределение лучей относительно источника света. Подходящий размер источника может дать более мягкие тени — в зависимости от типа света.
| Параметр | Рекомендуемое значение | Эффект |
|---|---|---|
Source Radius для точечных источников света | Умеренное значение с учётом сцены; пример в документации — 10 | Позволяет получать мягкие тени с контактным ужесточением при использовании SMRT. |
Source Angle для Directional Light | Значение с учётом сцены; пример в документации — 5,0 | Влияет на мягкость теней от направленного света. |
SamplesPerRayLocal и SamplesPerRayDirectional | 4–8 выборок | Настраивают количество выборок теней на луч; меньшее число ограничивает диапазон мягкости. |
RayCountLocal и RayCountDirectional | По умолчанию восемь лучей при уровне качества Shadows Epic | Количество лучей влияет на шум в полутени. |
Значения в таблице стоит рассматривать как отправную точку: одна настройка не даст одинакового результата во всех сценах. Epic отмечает, что слишком большие значения Source Radius или Source Angle могут увеличить нагрузку на производительность и вызвать визуальные артефакты в полутени, когда камера приближается к тени. Поэтому после увеличения размера источника проверяйте результат с разных положений камеры.
3. Найдите баланс между качеством выборки и производительностью
Количество лучей для точечных источников света задаётся переменной r.Shadow.Virtual.SMRT.RayCountLocal, а для направленных — r.Shadow.Virtual.SMRT.RayCountDirectional. Чтобы настроить количество выборок на луч, используйте r.Shadow.Virtual.SMRT.SamplesPerRayLocal и r.Shadow.Virtual.SMRT.SamplesPerRayDirectional. Меньшее количество выборок теней может сократить вычислительные затраты, но ограничит доступную мягкость полутени. Epic указывает, что хорошие результаты дают 4–8 выборок на луч.
Если установить в ноль переменную, контролирующую количество лучей, SMRT отключится, и система вернётся к резким теням с одной выборкой. При уровне качества Shadows Epic количество лучей по умолчанию для точечных и направленных источников света равно восьми. Изменяя параметры, одновременно оценивайте шум и мягкость теней, а также производительность сцены.
Кеш VSM включён по умолчанию. Если движение камеры открывает области, которые ранее не были видны, могут обрабатываться новые страницы теней. Поэтому измерять производительность только для неподвижного кадра недостаточно: тестируйте также сцены с движением камеры. Переменная r.Shadow.Virtual.Cache 0 отключает кеш для отладки; для обычной работы документация рекомендует оставить кеш включённым по умолчанию.
4. На что обратить внимание в рабочем процессе архитектурной визуализации?
В архитектурных сценах с геометрией Nanite и динамическим освещением VSM призвана упростить настройку детализированных теней. В интерьерах оценивайте размер источников локального света, а на открытых пространствах — значение Source Angle у Directional Light, исходя из характера освещения сцены. Увеличение размера источника не всегда улучшает результат: мягкость, шум и производительность нужно оценивать вместе.
Сначала проверьте версию Unreal Engine, использование Nanite и метод построения теней в проекте. Затем меняйте настройки освещения небольшими шагами и проверяйте результат не только на статичных изображениях, но и при движении камеры. В документации не указаны конкретные требования к оборудованию или универсальное значение производительности для всех проектов. Поэтому важно оценивать настройки на целевой сцене, особенно если в ней много геометрии и динамических источников света.
Распространённые ошибки
Считать, что VSM автоматически включена в проектах, созданных до Unreal Engine 5.0. Проверьте настройки проекта и при необходимости консольную переменную.
Использовать традиционный метод shadow map для источников света Stationary вместе с Nanite. В документации указано, что такая комбинация не поддерживается; рассмотрите Movable Light или VSM.
Слишком сильно увеличивать
Source RadiusилиSource Angle. Это может повлиять на производительность и вызвать артефакты в полутени.Не учитывать, что уменьшение количества выборок также ограничивает мягкость теней.
Проверять сцену только со статичной камеры. Движение камеры может привести к обработке ранее невидимых страниц теней.
Источники
Источников: 2Тексты источников не перепечатываются; короткие цитаты отмечены, остальное — наш пересказ и комментарий.
Для студий архитектурной визуализации в Турции практическая ценность VSM — в возможности проще настраивать детализированные тени в динамических сценах с Nanite. Но одного включения функции недостаточно: параметры размера источников света и выборки нужно проверять на реальной сцене, в том числе при движении камеры.
Командам с ограниченным бюджетом на оборудование или временем рендеринга стоит сначала оценить пользу для изображения, прежде чем увеличивать количество выборок. В официальной документации не приводятся конкретные требования к оборудованию, поэтому производительность нужно оценивать для каждого проекта отдельно. Проверка статуса функции в старых проектах и совместимости Nanite с источниками света Stationary также поможет избежать лишних проб и ошибок.
Частые вопросы
Как включить Virtual Shadow Maps в Unreal Engine 5?
В настройках проекта выберите `Shadow Map Method` в разделе `Shadows` по пути `Engine > Rendering`. В проектах, созданных до Unreal Engine 5.0, VSM нужно включить отдельно.
Можно ли использовать Virtual Shadow Maps с Nanite?
VSM разработана для работы с Nanite. Использование традиционных shadow map для геометрии Nanite с источниками света Stationary не поддерживается; в таких проектах можно использовать Movable Light или VSM.
Какие настройки управляют мягкостью теней в VSM?
На мягкость теней от точечных источников света влияет `Source Radius`, а от Directional Light — `Source Angle`. Количество лучей и выборок SMRT также определяет баланс качества и вычислительных затрат.



