Несколько способов повысить производительность при работе с постобработкой в Unity:
- Выбрать подходящий тип рендеринга. 1 В Unity поддерживаются три типа рендеринга: Deferred (отложенная), Forward (заблаговременная) и Vertex Lit (освещение вертексов). 1 В каждом из них тени и свет обрабатываются по-разному, и для их обработки требуется разный объём ресурсов ЦП и ГП. 1 Важно понимать, для какой платформы и для какого оборудования ведётся разработка, чтобы выбрать соответствующий рендерер. 1
- Включить расширенный динамический диапазон (HDR). 1 HDR создаёт буфер изображения, поддерживающий значения вне диапазона от 0 до 1, и выполняет постобработку графических эффектов, таких как размытие и блики. 1
- Использовать пакетную обработку (батчинг). 14 Она позволяет поместить несколько игровых объектов в один вызов рендеринга. 1 Статическая пакетная обработка предназначена для статических объектов, а динамическая — для движущихся. 1
- Использовать заранее просчитанные карты освещения. 2 Целевое устройство, на котором будет запускаться игра, будет загружать карту освещения один раз, вместо того, чтобы пересчитывать её постоянно во время игры. 2
- Ограничить перерисовку. 3 В Unity можно отобразить перерисовку сцены, переключившись на меню режима отрисовки в верхнем левом углу представления сцены и выбрав параметр Overdraw (Перерисовка). 3 Обычно перерисовка устраняется отбрасыванием объектов до того, как они будут отправлены в GPU. 3
Для более точной оптимизации производительности рекомендуется использовать профайлеры, например, встроенный в Unity Frame Debugger. 2