Постобработка
Профили камер, Volume, экспозиция, Bloom, LUT и диагностика.
Профиль камеры
PostProcessProfile хранит эффекты изображения отдельно от света и материалов уровня. Один профиль можно назначить нескольким камерам; его изменение затронет все ссылки на этот ресурс. Для независимого оформления создайте копию профиля.
Для полного набора 3D-эффектов используйте Forward+ или Deferred. В Mobile, Compatibility и Canvas доступность отличается: сохранённый параметр ещё не означает, что эффект выполняется выбранным рендерером. Выбор рендерера.
- Выберите игровую
Camera3D, а не камеру свободного обзора редактора. - В разделе Post Processing назначьте или создайте
PostProcessProfile. - Откройте профиль в Inspector и добавьте нужный эффект.
- Включите эффект и флажки переопределения у изменяемых параметров. Флажок возле параметра означает, что профиль задаёт его значение.
- У камеры проверьте
Post Process Weight: при нуле профиль не влияет на изображение. - Сохраните профиль как
.rdataи сцену. Запустите игру с той же камерой.
Начните с ручной экспозиции и тонального оператора. Пока настраиваете освещение, держите экспозицию постоянной: иначе автоматическая адаптация будет компенсировать ваши изменения.
В каком порядке настраивать изображение
| Задача | Инструмент | Что проверить |
|---|---|---|
| Убрать пересвет или слишком тёмный кадр | Exposure, Tonemap | Сначала яркость источников и ручную экспозицию, затем тональный оператор |
| Поднять детали в тенях без изменения всей сцены | Local Exposure | Доступность в текущем рендерере; отсутствие ореолов на контрастных границах |
| Настроить цвет | Color Grading, Channel Mixer, Curves, LUT | Не компенсируйте ошибочную экспозицию сильной цветокоррекцией |
| Добавить свечение | Bloom | Яркие области должны давать осмысленный источник свечения |
| Настроить размытие вне фокуса | Depth of Field | Расстояние фокусировки, режим камеры и доступность глубины |
| Добавить оптический характер | Vignette, Grain, Flare, Aberration | Читаемость деталей и интерфейса при целевом разрешении |
Автоматическая экспозиция использует замер изображения; для неё нужны Forward+ или Deferred. Физический режим DOF требует CameraAttributesPhysical у камеры. Дополнительная резкость поверх апскейлера может подчёркивать шум и контуры: сначала проверьте уже включённую резкость апскейлера.
Bloom, LUT и готовые профили
Обычный Bloom подходит для мягкого свечения. Convolution Bloom использует оптическое ядро; при его настройке учитывайте стоимость эффекта и размер ядра. Не усиливайте одновременно все слои: проверяйте контраст и детали около ярких объектов.
Цвет можно настроить колёсами, RGB-микшером, кривыми и LUT. Доступен импорт .cube. Сохраняйте используемый LUT в проекте вместе с необходимой лицензией: ссылка на внешнюю папку не делает файл частью поставки игры.
Готовые профили и шейдерные пресеты редактируются. Возьмите близкий образ, сохраните собственный ресурс и меняйте отдельные параметры. Удаление эффекта и отключение его переопределений имеют разный смысл: отключённый override позволяет использовать значение из другого источника.
Локальные зоны и смешивание
PostProcessVolume3D назначает профиль по положению камеры. Вход персонажа в зону сам по себе не гарантирует смену изображения, если камера остаётся снаружи.
- Добавьте
PostProcessVolume3Dи назначьте отдельный профиль, например для интерьера. - Для локальной зоны выключите
Global; выберите Box или Sphere и задайтеSizeлибоRadius. - Задайте
Blend Distance, чтобы переход происходил постепенно. - Проверьте
Enabled,WeightиPriorityзоны. - У камеры включите
Post Process Use Volumes. Маска камеры иVolume Maskзоны должны пересекаться. - Переместите игровую камеру через границу и сравните изображение внутри и снаружи.
У глобальной зоны расстояние до границ не ограничивает влияние. При пересечении нескольких зон итог зависит от их приоритетов, весов и включённых переопределений. Для понятного поведения задавайте в локальном профиле только те параметры, которые действительно должны меняться.
Для 2D предусмотрены профили камер и PostProcessVolume2D. Canvas не содержит глубину и нормали 3D-сцены: SSAO, SSR и другие эффекты, которым нужны эти данные, нельзя переносить туда как обычный цветовой фильтр. Обработку сцены и HUD настраивайте раздельно, если интерфейс должен оставаться читаемым.
Назначение профиля из C#
Прикрепите компонент к Camera3D, назначьте ресурс в поле Look инспектора:
using Reckfell;
public partial class CameraLook : Camera3D
{
[Export] public PostProcessProfile Look { get; set; } = null!;
public override void _Ready()
{
PostProcessProfile = Look;
PostProcessWeight = 1.0;
PostProcessUseVolumes = true;
}
}Если результат отличается от ожидаемого
| Признак | Что проверить |
|---|---|
| Параметр меняется, изображение нет | Активную камеру, вес профиля, Enabled эффекта и флажок override |
| Зона не действует | Положение камеры, Global/размер зоны, Weight и пересечение масок |
| Значение неожиданно возвращается | Другие Volume и источник итогового параметра в диагностике |
| Эффект работает в 3D, но не в Canvas | Требования к глубине, нормалям и рендереру |
| Кадр слишком яркий или нестабильный | Автоэкспозицию, яркость света и смену профилей |
| После перемещения камеры тянется след | Временное накопление и несовпадение настроек редактора и игры |
Используйте просмотр до/после, источники параметров, веса Volume и измерители изображения: гистограмму, waveform, RGB Parade и вектороскоп. Меняйте один эффект за раз при одинаковой камере и экспозиции.
Собственные полноэкранные материалы поддерживают точки включения, контекст камеры и промежуточные текстуры. Выбирайте этап по нужным входам; данные поверхности и глубина доступны не на всех этапах. Шейдеры и Shader Graph.