Рекомендации по производительности для Unreal
В Unreal Engine есть несколько функций, которые могут повысить производительность приложений для смешанной реальности. Прежде чем продолжать, рекомендуется прочесть о факторах, ограничивающих производительность приложения, анализе и профилировании приложений смешанной реальности, а также общих настройках, повышающих производительность.
Рекомендуемые параметры для проекта Unreal
Каждый из параметров, о которых идет речь ниже, можно найти в разделе Edit > Project Settings (Правка > Параметры проекта).
- При использовании мобильного отрисовщика виртуальной реальности:
- Прокрутите до раздела Project (Проект), выберите Target Hardware (Целевое оборудование) и выберите целевую платформу Mobile/Tablet (Мобильное устройство или планшет).
- При использовании стандартного отрисовщика (forward renderer):
- Стандартный отрисовщик гораздо лучше подходит для смешанной реальности, чем конвейер отложенной отрисовки по умолчанию, благодаря тому, что ряд функций можно отключить по отдельности.
- Дополнительные сведения см. в документации по Unreal.
- Использование нескольких представлений для мобильных устройств:
- Прокрутите до раздела Engine (Подсистема), выберите пункт Rendering (Отрисовка), разверните раздел VR (Виртуальная реальность) и установите флажки Instanced Stereo (Параллельное стерео) и Mobile Multi-View (Мобильная мультиотрисовка). Необходимо снять флажок Mobile HDR (HDR для мобильных устройств).
-
[Только для OpenXR] Убедитесь, что выбрано значение Default (По умолчанию) или D3D12 для параметра Default RHI (RHI по умолчанию):
- Вариант D3D11 приведет к ухудшению производительности, так как платформе придется выполнять дополнительный проход отрисовки. D3D12 улучшает производительность отрисовки (и не требует дополнительного прохода).
- Отключение затуманивания вершин (vertex fogging):
- Затуманивание вершин применяет расчеты тумана к каждой вершине в многоугольнике, а затем интерполирует результаты на поверхность многоугольника. Если в игре не используется туман, рекомендуется отключить затуманивание вершин, чтобы повысить производительность шейдеров.
- Отключение отбрасывания загораживаемых объектов:
- Прокрутите до раздела Engine (Подсистема), выберите Rendering (Отрисовка), разверните раздел Culling (Отбрасывание объектов) и снимите флажок Occlusion Culling (Отбрасывание загораживаемых объектов).
- Если вам требуется удаление скрытых объектов для подробной отрисовки сцены, рекомендуется установить флажок Support Software Occlusion Culling (Поддержка программного удаления скрытых объектов) в разделе Engine > Rendering (Движок > Отрисовка). Это позволит Unreal выполнять соответствующую обработку на центральном процессоре, избегая отправки соответствующих запросов к GPU, которые выполняются неэффективно на HoloLens 2.
- GPU мобильных устройств медленно выполняют отбрасывание загораживаемых объектов. Как правило, в основном GPU должен выполнять отрисовку. Если вы считаете, что такое отбрасывание увеличит производительность, попробуйте включить программное отбрасывание.
- Прокрутите до раздела Engine (Подсистема), выберите Rendering (Отрисовка), разверните раздел Culling (Отбрасывание объектов) и снимите флажок Occlusion Culling (Отбрасывание загораживаемых объектов).
Примечание
Включение программного удаления скрытых объектов может ухудшить производительность, если ЦП уже обрабатывает большое количество вызовов отрисовки.
- Отключение настраиваемого прохода трафарета глубины:
- Отключение этой функции требует дополнительного прохода, то есть оно выполняется медленно. Применение прозрачности также выполняется медленно в Unreal. Дополнительные сведения см. в документации по Unreal.
- Сокращение числа каскадных карт теней:
- Сокращение числа карт теней улучшит производительность. Как правило, для этого свойства нужно задать значение 1 (если это не приводит к заметному ухудшению качества).
Необязательные параметры
Примечание
Следующие параметры могут улучшить производительность, но за счет отключения некоторых функций. Используйте их, только если вы уверены, что эти функции вам не потребуются.
- Сокращение числа преобразований шейдеров на мобильных устройствах
- Если ваши источники света не двигаются независимо от камеры, вы можете задать для этого свойства значение 0. Его основное преимущество — он позволяет Unreal не выполнять некоторые преобразования шейдеров и ускорить их компиляцию.