Повышение производительности проекта на Unreal Engine 4
По умолчанию Unreal Engine 4 (UE4) использует Deferred Renderer, поскольку он обеспечивает максимальную гибкость и предоставляет доступ к большему количеству функций рендеринга. Однако при использовании Deferred Renderer есть некоторые компромиссы, которые могут не подходить для всех видов VR. Forward Rendering обеспечивает более быстрый базовый уровень и более быстрые проходы рендеринга, что может привести к повышению производительности на платформах VR. Forward Rendering не только быстрее, но и предоставляет лучшие варианты сглаживания, чем Deferred Renderer, что может привести к улучшению визуализации.
Включение Forward Shading:
1. В меню Edit откройте Project Settings.
2. Выберите вкладку Rendering слева и найдите категорию Forward Shading.
3. Включите Forward Shading.
Вам будет предложено перезапустить редактор, где после перезапуска вы можете начать использовать параметры и функции Forward Renderer.
Производительность и особенности
Переход от Deferred Renderer к Forward Renderer может повысить производительность вашего проекта.
Forward Renderer может быть быстрее, чем Deferred Renderer для некоторого контента. Большая часть улучшения производительности достигается за счет функций, которые можно отключить для каждого материала. По умолчанию только ближайший захват отражения будет применен без коррекции параллакса, если материал не включит High Quality Reflections, высота тумана рассчитывается для каждой вершины, а плоские отражения применяются только к материалам, которые его разрешают.
Используя эти опции в новой VR-игре Robo Recall от Epic Games, Forward Renderer примерно на 22% быстрее, чем Deferred Renderer на NVIDIA 970 GTX.
Обязательно используйте инструменты производительности и профилирования Unreal Engine, чтобы измерить производительность вашей игры при переключении с Deferred Renderer на Forward Renderer. Вы должны уделить особое внимание профилированию графических процессоров, чтобы увидеть, куда идет стоимость графического процессора, а также использовать команды Stat для помощи по профилированию.
Известные проблемы и общие вопросы
Следующие функции не поддерживаются при использовании Forward Renderer:
1. Техника экранного пространства (SSR, SSAO, Contact Shadows)
2. Полупрозрачные динамические тени и теней от стационарного света
3. MSAA на D-Buffer декалей и Motion Blur
Ниже приведены некоторые общие вопросы / проблемы, которые могут возникнуть при использовании Forward Renderer.
Мой материал ломается при переключении на Forward Renderer из-за текстур GBuffer?
- GBuffer недоступен для выборки текстур в Forward Renderer он доступен только для Deferred Renderer.
Forward Renderer ограничивает меньшим кол-ом текстур в материале чем Deferred Render?
- Forward Renderer объединяет все функции в один шейдер, поэтому для вашего материала доступно меньшее кол-во текстур.
- Обычно это можно решить с помощью Shared Samplers.
Почему у меня проблемы с MSAA, при отображении примера Atmospheric Fog?
- Atmospheric Fog еще не обрабатывает MSAA правильно.
- Для Height Fog вы можете обойти с помощью Vertex Fogging (который включен по умолчанию при включении Forward Renderer).