Окружающая среда и постобработка
Godot 4 предоставляет переработанный ресурс Environment, а также новую систему постобработки со множеством готовых эффектов "из коробки".
Примечание
Начиная с Godot 4, настройки производительности/качества Environment определяются в настройках проекта, а не в ресурсе Environment. Это упрощает глобальную настройку, так как больше не требуется индивидуально изменять ресурсы Environment под различные конфигурации оборудования.
Обратите внимание, что большинство настроек производительности/качества Environment видны только после включения переключателя Advanced в настройках проекта.
Окружение
Ресурс Environment хранит всю информацию для управления окружением рендеринга в 2D и 3D. Сюда входят небо, окружающее освещение, тональное отображение, эффекты и коррекции. Сам по себе он не работает, но вы можете активировать его, используя в одном из следующих мест (в порядке приоритета):
Узел Camera3D (высший приоритет)
Enviroment может быть установлен для узла Camera3D. Он будет иметь приоритет над любыми другими настройками.
В основном это полезно, когда вы хотите переопределить существующий environment, но в целом лучше использовать опцию ниже.
Узел WorldEnvironment (средний приоритет, рекомендуется)
Узел WorldEnvironment может быть добавлен в любую сцену, но только один может существовать в активном дереве сцены. Добавление более одного узла приведет к предупреждению.
Любое добавленное окружение имеет более высокий приоритет, чем окружение по умолчанию (объясняется ниже). Это означает, что его можно переопределять для каждой отдельной сцены, что делает его весьма полезным.
Предварительный просмотр окружения и солнца (низкий приоритет)
Примечание
Начиная с Godot 4, система предпросмотра окружения и солнца заменяет файл default_env.tres из Godot 3.
Без узлов WorldEnvironment или DirectionalLight3D в сцене редактор отображает окружение и солнце предпросмотра. Отключить это можно через кнопки вверху 3D-редактора:
Клик по трём точкам справа открывает настройки внешнего вида окружения предпросмотра:
Солнце и небо предпросмотра видны только в редакторе. Кнопки внизу диалога добавляют их в сцену как узлы.
Совет
Удерживая Shift при клике на Добавить солнце в сцену или Добавить окружение в сцену, вы добавите оба элемента сразу. Используйте это для ускорения настройки проекта и прототипирования.
Атрибуты камеры (Camera Attributes)
Примечание
В Godot 4 параметры экспозиции (exposure) и глубины резкости (depth of field) были вынесены из ресурса Environment в отдельный ресурс CameraAttributes. Это упрощает независимую настройку этих свойств.
Ресурс CameraAttributes хранит параметры экспозиции и глубины резкости. Он также включает автоматическую экспозицию (automatic exposure), адаптирующуюся к яркости сцены.
Доступны два типа ресурсов CameraAttributes:
CameraAttributesPractical: Использует произвольные единицы измерения, более удобные для типичных игровых задач.
CameraAttributesPhysical: Использует реальные физические единицы (например, фокусное расстояние в миллиметрах). Рекомендуется для фотореалистичной визуализации.
Оба типа предоставляют одинаковые возможности, но с разными единицами измерения. Для большинства проектов выбирайте CameraAttributesPractical.
Примечание
Использование CameraAttributesPhysical на узле Camera3D блокирует настройки FOV и соотношения сторон в самой камере. При использовании в WorldEnvironment он не переопределяет параметры Camera3D.
Ресурс CameraAttributes можно добавить к узлам Camera3D или WorldEnvironment. Настройки Camera3D имеют приоритет над WorldEnvironment.
Рекомендуется назначать CameraAttributes узлу Camera3D, а не WorldEnvironment. Это предотвращает отображение глубины резкости в 3D-редакторе (кроме режима предпросмотра камеры).
Параметры окружения
Ниже представлено подробное описание всех параметров окружения и их назначения.
Фон
Раздел Background содержит настройки заполнения фона (области экрана, где объекты не отрисованы). Фон не только служит для отображения изображения или цвета. По умолчанию он также влияет на окружающее и отражённое освещение объектов. Это называется освещением на основе изображений (IBL).
В результате фоновое небо может значительно влиять на общий вид сцены, даже если небо никогда не видно напрямую. Это следует учитывать при настройке освещения сцены.
Доступны несколько режимов фона:
Clear Color использует цвет очистки по умолчанию из настроек проекта. Фон будет постоянного цвета.
Custom Color подобен Clear Color, но с пользовательским значением цвета.
Sky позволяет определить материал фонового неба (см. ниже). По умолчанию объекты в сцене будут отражать этот материал неба и поглощать из него окружающий свет.
Canvas отображает 2D-сцену как фон 3D-сцены. Это можно использовать для отображения эффектов окружения в 2D-рендеринге, таких как свечение в 2D.
Keep не отрисовывает небо, сохраняя содержимое предыдущих кадров. Это улучшает производительность в закрытых сценах, но вызывает визуальный артефакт "зеркального зала" при видимом небе.
Материалы неба
При использовании режима фона Sky (или когда режим окружающего/отражённого света установлен в Sky) в ресурсе Environment становится доступен подресурс Sky. Его редактирование позволяет создать ресурс SkyMaterial внутри Sky.
Доступны 3 встроенных материала неба:
PanoramaSkyMaterial: Использует панорамное изображение неба 360° (рекомендуется соотношение 2:1). Для высокого динамического диапазона изображение должно быть в HDR-совместимом формате (
.hdrили.exr), а не в стандартном (.pngили.jpg).ProceduralSkyMaterial: Использует процедурно генерируемое небо с настраиваемыми цветами земли, солнца, неба и горизонта. Это тип неба, используемый в предпросмотре редактора. Позиция солнца автоматически определяется по первым 4 узлам DirectionalLight3D в сцене. Одновременно может быть до 4 солнц.
PhysicalSkyMaterial: Использует физически корректное процедурное небо с настраиваемыми параметрами рассеивания. Позиция солнца автоматически определяется по первому узлу DirectionalLight3D в сцене. PhysicalSkyMaterial требует немного больше ресурсов для рендеринга по сравнению с ProceduralSkyMaterial. Одновременно может быть только 1 солнце.
Панорамные изображения неба иногда называют HDRI (изображения с высоким динамическим диапазоном). Бесплатные лицензированные HDRI можно найти на Poly Haven.
Примечание
Текстуры PanoramaSkyMaterial в HDR с очень яркими участками (например, реальные фотографии с видимым солнцем) могут вызывать видимые блики на окружающем и зеркальном отражениях. Это происходит из-за слишком высокой пиковой экспозиции текстуры.
Чтобы решить эту проблему, выберите панорамную текстуру в панели FileSystem, перейдите в панель Import, включите HDR Clamp Exposure и нажмите Reimport.
Если требуется пользовательский материал неба (например, для процедурных облаков), можно создать собственный шейдер неба.
Окружающий свет
Окружающий свет (как определено здесь) — это тип света, который влияет на каждую геометрическую фигуру с одинаковой интенсивностью. Он глобален и не зависит от источников света, добавленных в сцену. Окружающий свет является одной из двух составляющих освещения на основе изображений. В отличие от отражённого света, окружающий свет не изменяется в зависимости от позиции камеры и угла обзора.
Доступны несколько типов окружающего света:
Background: Источник окружающего света из фона, такого как небо, пользовательский цвет или цвет очистки (по умолчанию). Интенсивность окружающего света будет варьироваться в зависимости от содержимого изображения неба, что может дать более визуально привлекательное окружающее освещение. Для видимости этого режима небо должно быть установлено как фон.
Disabled: Не использовать окружающий свет. Полезно для полностью закрытых сцен.
Color: Использовать постоянный цвет для окружающего света, игнорируя фоновое небо. Интенсивность окружающего света будет одинаковой со всех сторон, что может сделать освещение сцены более плоским. Полезно для закрытых сцен, где абсолютно чёрные тени могут быть слишком тёмными, или для максимизации производительности на слабых устройствах.
Sky: Источник окружающего света из указанного неба, даже если фон установлен в режим, отличный от Sky. Если фоновый режим уже Sky, этот режим ведёт себя идентично Background.
Когда режим окружающего света установлен в Sky или Background (и фон установлен в Sky), можно смешивать цвет окружающего света и небо с помощью свойства Sky Contribution. По умолчанию это значение 1.0, что означает использование только окружающего неба. Цвет окружающего света игнорируется, пока Sky Contribution не уменьшится ниже 1.0.
Вот сравнение того, как разный окружающий свет влияет на сцену:
Наконец, есть настройка Energy, которая является множителем. Она полезна при работе с HDR.
В целом, полагаться только на окружающий свет следует только для простых сцен или больших открытых пространств. Это также можно делать для повышения производительности. Окружающий свет быстро рендерится, но не обеспечивает наилучшего качества освещения. Лучше генерировать окружающий свет из ReflectionProbe, VoxelGI или SDFGI, так как они более точно имитируют распространение непрямого света. Ниже приведено сравнение качества между использованием плоского цвета окружающего света и VoxelGI:
Использование одного из описанных методов заменяет постоянное окружающее освещение на освещение от проб.
Отражённый свет
Отражённый свет (также называемый зеркальным светом) — вторая составляющая освещения на основе изображений.
Отражённый свет можно установить в один из 3 режимов:
Background: Отражение от фона (небо, пользовательский цвет или цвет очистки, по умолчанию).
Disabled: Не отражать свет из окружения. Полезно для закрытых сцен или для максимальной производительности на слабых устройствах.
Sky: Отражение от фонового неба, даже если фон установлен в режим, отличный от Sky. Если фон уже Sky, этот режим идентичен Background.
Туман
Примечание
Этот раздел относится только к необъёмному туману. Можно одновременно использовать и необъёмный туман, и объёмный туман.
Туман, как в реальной жизни, заставляет удалённые объекты растворяться в однородном цвете. В Godot есть два вида тумана:
Depth Fog: Применяется в зависимости от расстояния до камеры.
Height Fog: Применяется к любым объектам ниже (или выше) определённой высоты, независимо от расстояния до камеры.
Оба этих типа тумана можно настроить, сделав их кривую более или менее резким переходом.
Чтобы сделать эффект тумана более интересным, можно настроить два свойства:
Первый - Sun Amount, который использует свойство Sun Color (цвет солнца) тумана. Если смотреть на направленный свет (обычно солнце), цвет тумана будет меняться, имитируя солнечный свет, проходящий сквозь туман.
Второй - Transmit Enabled имитирует более реалистичное пропускание света. На практике это делает свет более заметным на фоне тумана.
Примечание
Туман может вызывать появление полос на вьюпорте, особенно при высоких уровнях плотности. См. Цветовая полоса для рекомендаций по уменьшению полос.
Объемный туман
Объёмный туман обеспечивает реалистичный эффект тумана, при этом цвет тумана изменяется под воздействием проходящего через него света.
См. также
См. документацию по объёмному туману для настройки этого эффекта.
Карта тональности
Tonemap selects the tonemapping algorithm that will be applied to the scene, from a list of standard algorithms used in the film and game industries. Tonemapping modes other than Linear are used to make light and dark areas more homogeneous, while also avoiding clipping of bright highlights. Each algorithm has a different performance characteristic that should be considered when choosing your tonemapper.
Опции тонального отображения (Tone Mapping):
Mode: The tonemapping mode to use.
Linear: Does not modify color data, resulting in a linear tonemapping curve which unnaturally clips bright values, causing bright lighting to look blown out. The simplest and fastest tonemapper.
Reinhard: A simple tonemapping curve that rolls off bright values to prevent clipping. This results in an image that can appear dull and low contrast. Slower than Linear. When White is left at the default value of
1.0, Reinhard produces an identical image to Linear.Filmic: Uses a film-like tonemapping curve to prevent clipping of bright values and provide better contrast than Reinhard. Slightly slower than Reinhard.
ACES: Uses a high-contrast film-like tonemapping curve and desaturates bright values for a more realistic appearance. Slightly slower than Filmic.
AgX: Uses a film-like tonemapping curve and desaturates bright values for a more realistic appearance. Better than other tonemappers at maintaining the hue of colors as they become brighter. The slowest tonemapping option. White is fixed at a value of
16.29, which makes AgX unsuitable for use with the Mobile rendering method.
Exposure: Adjusts the brightness of values before they are provided to the tonemapper. Higher Exposure values result in a brighter image. Values provided to the tonemapper will also be multiplied by
2.0and1.8for Filmic and ACES respectively to produce a similar apparent brightness as Linear.White: The white reference value for tonemapping, which indicates where bright white is located in the scale of values provided to the tonemapper. For photorealistic lighting, recommended values are between
6.0and8.0. Higher values result in less blown out highlights, but may make the scene appear lower contrast. White is not available when using Linear or AgX.
Эффекты промежуточной и последующей обработки
Ресурс Environment поддерживает множество популярных промежуточных и постобрабатывающих эффектов.
Примечание
Экранные эффекты, такие как SSR, SSAO, SSIL и свечение, не работают с геометрией вне вида камеры или перекрытой другими объектами. Учитывайте это при настройке, чтобы избежать отвлекающих изменений во время игры.
Screen-Space Reflections (SSR) (отражения в экранном пространстве)
Эта функция доступна только в рендерере Forward+, но не в Mobile или Compatibility.
Хотя Godot поддерживает несколько источников данных отражений, таких как Датчики отражения, они могут не обеспечивать достаточной детализации во всех ситуациях. Экранные отражения наиболее эффективны при контакте объектов (объект на полу, на столе, плавающий на воде и т.д.).
Помимо большей детализации, экранные отражения работают в реальном времени (в отличие от предварительно рассчитываемых отражений). Это позволяет персонажам, автомобилям и т.д. отражаться на окружающих поверхностях при движении.
Экранные отражения можно использовать вместе с другими источниками для детализированных отражений там, где это возможно, с резервным вариантом для объектов вне экрана.
Для более точной настройки техники имеется несколько параметров, управляемых пользователем:
Max Steps (Макс. шагов): Определяет длину отражения. Чем больше значение, тем выше стоимость вычислений.
Fade In (Появление): Позволяет настроить кривую появления, что полезно для смягчения области контакта.
Fade Out (Затухание): Позволяет настроить кривую исчезновения для плавного затухания на пределе шагов.
Depth Tolerance (Допуск глубины): Позволяет лучам экранного пространства проходить за объекты. Лучи рассматривают объекты с указанной глубиной при определении возможности прохождения. Более высокие значения уменьшают "разрывы" в отражениях, ценой физически некорректных отражений от некоторых объектов.
Учтите, что экранные отражения работают только для непрозрачной геометрии. Прозрачные материалы не отражаются, так как не записываются в буфер глубины. Это также относится к шейдерам, использующим униформы hint_screen_texture или hint_depth_texture.
Затенение окружающего пространства экрана (SSAO)
Эта функция доступна только в рендерере Forward+, но не в Mobile или Compatibility.
Как упоминалось в разделе Ambient, области, недоступные для света (вне радиуса или в тени), освещаются окружающим светом. Godot имитирует это с помощью VoxelGI, ReflectionProbe, неба или постоянного цвета. Однако эти методы работают на крупном масштабе, а не на уровне мелкой геометрии.
Постоянный цвет окружающей среды и Sky везде одинаковы, в то время как зонды GI и Reflection имеют больше локальных деталей, но недостаточно для моделирования ситуаций, когда свет не может заполнить внутренние полые или вогнутые элементы.
Это можно смоделировать с помощью Screen Space Ambient Occlusion. Как видно на изображении ниже, его цель - сделать вогнутые области темнее, имитируя более узкий путь для проникновения света:
Распространённая ошибка: включить эффект, добавить источник света, но не увидеть разницы. SSAO влияет только на окружающий свет, не на прямой.
Поэтому на изображении выше эффект менее заметен под прямым светом (слева). Если вы хотите включить SSAO для влияния на прямое освещение, используйте параметр Light Affect. Хотя это физически некорректно, некоторым нравится такой вид.
SSAO лучше всего выглядит в сочетании с реальным источником непрямого света, таким как VoxelGI:
Настройка SSAO возможна через параметры:
Radius (Радиус): Расстояние, на котором объекты могут перекрывать друг друга. Большие значения увеличивают область эффекта ценой производительности и качества.
Intensity (Интенсивность): Основная интенсивность эффекта. Более высокие значения дают более тёмное перекрытие. Если SSAO, это экранный эффект, рекомендуется использовать умеренные значения, так как слишком сильный SSAO может отвлекать во время игры.
Power (Мощность): Распределение перекрытия. Более высокие значения дают более тёмное перекрытие с резким спадом.
Detail (Детализация): Сила дополнительного уровня детализации. Высокие значения подчёркивают детали, но могут вызывать артефакты сглаживания.
Horizon: Порог определения перекрытия точки поверхности, представленный как угол от горизонта в диапазоне 0.0-1.0. Значение 1.0 означает отсутствие перекрытия.
Sharpness: Степень размытия эффекта SSAO на границах объектов. Слишком высокое значение вызывает ступенчатость на краях, слишком низкое — размытость.
Light Affect: Интенсивность SSAO при прямом освещении. В реальности окружающее перекрытие влияет только на непрямой свет. Значения выше 0 делают SSAO видимым при прямом свете. Значения выше
0.0физически некорректны, но нравятся некоторым художникам.AO Channel Affect: Интенсивность SSAO на материалах с текстурой AO. Значения выше
0.0делают эффект SSAO видимым в областях, затемнённых текстурами AO.
Screen-Space Indirect Lighting (SSIL) (непрямое освещение в экранном пространстве)
Эта функция доступна только в рендерере Forward+, но не в Mobile или Compatibility.
SSIL обеспечивает непрямое освещение для мелких деталей или динамической геометрии, не охваченной другими техниками глобального освещения. Это касается отражённого рассеянного света и эмиссионных материалов. При самостоятельном использовании SSIL эффект может быть малозаметным, что ожидаемо.
Вместо этого SSIL предназначен как дополнение к другим техникам глобального освещения (VoxelGI, SDFGI, LightmapGI). SSIL также обеспечивает лёгкий эффект окружающего перекрытия, похожий на SSAO, но с меньшей детализацией.
Эта функция обеспечивает только непрямое освещение, а не полное глобальное освещение. Это отличает её от SSGI в других движках. SSIL можно комбинировать с SSR и/или SSAO для улучшения визуального качества (ценой производительности).
Настройка SSIL возможна через параметры:
Radius: Расстояние распространения отражённого света. Большие значения увеличивают дальность, но могут вызывать артефакты недодискретизации (длинные лучи вокруг источников света).
Intensity: Множитель яркости непрямого освещения. Более высокие значения дают более яркий свет.
Sharpness: Степень размытия эффекта на границах объектов. Слишком высокое значение вызывает ступенчатость, слишком низкое — размытость краёв.
Normal Rejection: Степень отбраковки по нормалям. Использует нормаль точки для отбраковки выборок, направленных от текущего пикселя. Необходима для предотвращения "утечки света" при освещении одной стороны объекта. Можно отключить для эмиссионных объектов, излучающих свет с невидимых сторон.
Глобальное освещение на основе полей знаковых расстояний (SDFGI)
Эта функция доступна только в рендерере Forward+, но не в Mobile или Compatibility.
Глобальное освещение на основе полей знаковых расстояний (SDFGI) — это форма глобального освещения в реальном времени. Это не экранный эффект, что означает возможность освещения объектов вне экрана (в отличие от SSIL).
См. также
Инструкции по настройке этой технологии глобального освещения смотрите в Глобальное освещение на основе полей знаковых расстояний (SDFGI).
Свечение
Примечание
При использовании метода рендеринга Compatibility реализация эффекта свечения отличается, и некоторые свойства недоступны/скрыты в инспекторе: Levels (Уровни), Normalized (Нормализация), Strength (Сила), Blend Mode (Режим смешивания), Mix (Смешивание), Map (Карта) и Map Strength (Сила карты).
Эта реализация оптимизирована для работы на слабых устройствах и поэтому менее гибкая.
В фотографии и кино, когда количество света превышает максимальную яркость (luminance), поддерживаемую носителем, оно обычно "растекается" на более тёмные области изображения. В Godot это моделируется эффектом Glow (Свечение).
По умолчанию, даже если эффект включен, он будет слабым или невидимым. Чтобы он действительно проявился, должно произойти одно из двух условий:
Свет в пикселе превышает значение HDR Threshold (где 0 - весь свет превышает его, а 1.0 - свет превышает значение tonemapper White ). Обычно ожидается, что это значение будет равно 1.0, но оно может быть снижено, чтобы позволить пропустить больше света. Существует также дополнительный параметр, HDR Scale, который позволяет масштабировать (делать ярче или темнее) свет, превышающий порог.
Свойство Bloom (Свечение) имеет значение больше
0.0. С его ростом весь экран отправляется в процессор свечения в большем количестве.
И то, и другое приведёт к тому, что свет начнет вытекать из более ярких участков.
Когда свечение становится видимым, им можно управлять с помощью нескольких дополнительных параметров:
Intensity (Интенсивность) — общий масштаб эффекта. Его можно усилить или ослабить (
0.0полностью отключает эффект).Strength (Сила) определяет интенсивность обработки ядра гауссова фильтра. Большие значения приводят к насыщению фильтра и его расширению наружу. Как правило, изменять этот параметр не требуется, так как размер можно эффективнее настраивать с помощью Levels (Уровней).
Blend Mode (режим смешивания) эффекта также можно изменить:
Additive (Аддитивный) — самый сильный режим, так как он просто добавляет эффект свечения поверх изображения без смешивания. Обычно он слишком интенсивен для использования, но может хорошо смотреться с низкой интенсивностью Bloom (создает эффект, похожий на сон).
Screen гарантирует, что свечение никогда не будет ярче самого себя, и отлично работает в качестве универсального средства.
Softlight - самый слабый режим по умолчанию, создающий лишь едва заметное нарушение цвета вокруг объектов. Этот режим лучше всего работает в тёмных сценах.
Replace (Заменить) можно использовать для размытия всего экрана или отладки эффекта. Этот режим показывает только эффект свечения без исходного изображения.
Mix (Смешивание) объединяет эффект свечения с основным изображением. Это позволяет добиться большего художественного контроля. Коэффициент смешивания регулируется свойством Mix, которое появляется над режимом смешивания (только когда выбран режим Mix). Высокие значения коэффициента смешивания будут затемнять изображение, если не увеличить значение Bloom.
Чтобы изменить размер и форму эффекта свечения, Godot предоставляет Levels. Маленькие уровни - это сильное свечение, которое появляется вокруг объектов, а большие уровни - это туманное свечение, покрывающее весь экран:
Однако настоящая сила этой системы заключается в возможности комбинировать уровни для создания более интересных узоров свечения:
Наконец, эффект свечения можно контролировать с помощью карты свечения (glow map) — текстуры, которая определяет яркость свечения для каждой части экрана. Эта текстура может быть окрашена для тонирования эффекта свечения в соответствующий цвет. Текстура растягивается под размер вьюпорта, поэтому рекомендуется использовать соотношение сторон, соответствующее вашему вьюпорту (например, 16:9), чтобы избежать видимых искажений.
Основные варианты использования текстуры карты свечения:
Создание эффекта "грязи на объективе" с помощью текстуры с узором грязи.
Уменьшение интенсивности свечения на определённых участках экрана с помощью градиентной текстуры.
By default, glow uses a bicubic scaling filter on desktop platforms and a bilinear scaling filter on mobile platforms. The bicubic scaling filter results in higher quality with a less blocky appearance, but it has a performance cost on the GPU which can be significant on integrated graphics. The scale mode can be controlled using the Rendering > Environment > Glow > Upscale Mode project setting. This setting is only effective when using the Forward+ or Mobile renderers, as Compatibility uses a different glow implementation.
Использование свечения в 2D
Существует два способа использования свечения в 2D:
Начиная с Godot 4.2, вы можете включить HDR для 2D-рендеринга при использовании методов рендеринга Forward+ и Mobile. Это влияет на производительность, но обеспечивает больший динамический диапазон. Это также позволяет контролировать свечение объектов через их свойства Modulate или Self Modulate (используйте режим RAW в палитре цветов). Включение HDR также может уменьшить полосатость в 2D-рендеринге.
Чтобы включить HDR в 2D, откройте Настройки проекта, активируйте Rendering > Viewport > HDR 2D и перезапустите редактор.
Для максимальной производительности можно оставить HDR отключённым для 2D-рендеринга. Однако это уменьшит контроль над свечением объектов.
Включите свечение, установите режим фона окружения на Canvas (Холст), затем уменьшите Glow HDR Threshold (Порог HDR свечения), чтобы свечение распространялось и на не пересвеченные пиксели. Чтобы предотвратить свечение элементов UI, сделайте их дочерними для узла CanvasLayer. Контролировать, какие слои подвержены свечению, можно через свойство Background > Canvas Max Layer (Фон > Макс. слой холста) ресурса Environment.
Пример использования свечения в 2D-сцене. HDR 2D включен, монеты и пуля имеют увеличенные значения свойства Modulate до пересвеченных величин с использованием режима RAW в палитре цветов.
Предупреждение
2D-рендерер работает в линейном цветовом пространстве, если включена настройка проекта Rendering > Viewport > HDR 2D, поэтому подсказка source_color также должна использоваться для uniform-семплеров, которые используются как цветовой вход в шейдерах canvas_item. Если этого не сделать, текстуры будут выглядеть выцветшими.
Если 2D HDR отключен, source_color продолжит корректно работать в шейдерах canvas_item, поэтому рекомендуется использовать его в соответствующих случаях в любом случае.
Использование свечения для размытия экрана
Свечение можно использовать для размытия всего вьюпорта, что полезно для размытия фона при открытом меню. Только 3D-рендеринг будет затронут, если режим фона окружения не установлен в Canvas. Чтобы предотвратить размытие элементов UI при использовании режима фона Canvas, сделайте их дочерними для узла CanvasLayer. Вы можете контролировать, какие слои затрагиваются этим эффектом размытия, с помощью свойства Background > Canvas Max Layer ресурса Environment.
Чтобы использовать свечение в качестве средства размытия:
Включите Normalized (Нормализация) и настройте уровни по своему усмотрению. Увеличение индексов более высоких уровней приведет к более размытому изображению. Рекомендуется оставить один уровень свечения на
1.0, а остальные на0.0, но это не обязательно. Учтите, что итоговый вид будет зависеть от разрешения вьюпорта.Установите Intensity (Интенсивность) в
1.0и Bloom (Свечение) в1.0.Установите режим смешивания в Replace (Заменить) и HDR Luminance Cap (Ограничение яркости HDR) в
1.0.
Пример использования свечения для размытия 2D-рендеринга на фоне меню
Adjustments (настройки)
В конце обработки Godot предлагает возможность выполнить некоторые стандартные корректировки изображения.
Базовые настройки ЯКН (Яркость, Контраст, Насыщенность)
Первая настройка позволяет изменять типичные свойства Brightness (Яркость), Contrast (Контраст) и Saturation (Насыщенность):
Коррекция цвета с использованием 1D-градиента
Вторая настройка осуществляется с помощью градиента для коррекции цвета. Это можно сделать, назначив ресурс GradientTexture1D в свойство Color Correction или загрузив текстуру с горизонтальным градиентом. Левая часть градиента соответствует чёрному цвету в исходном изображении, а правая часть — белому.
Линейный чёрно-белый градиент, как показанный ниже, не даст никакого эффекта:
Но создание собственных позволит сопоставить каждый канал с отдельным цветом:
Коррекция цвета с использованием 3D LUT
Для коррекции цвета также может использоваться 3D текстура поиска (Look-Up-Texture, LUT). Это специальная текстура, используемая для раздельного изменения цветовых каналов (красного, зелёного, синего). Такая текстура может иметь любое разрешение, но поскольку данные коррекции цвета низкочастотные, для производительности рекомендуется использовать низкие разрешения. Типичные разрешения LUT: 17×17×17, 33×33×33, 51×51×51 или 65×65×65 (нечётный размер обеспечивает лучшую интерполяцию).
Для работы текстуры поиска её режим импорта должен быть установлен на Texture3D в панели Import (вместо обычного Texture2D):
Также обязательно настройте количество горизонтальных и вертикальных срезов при импорте. Без этого LUT текстура не будет правильно влиять на вьюпорт. Вы можете предпросмотреть импортированную 3D текстуру, дважды кликнув по ней в панели FileSystem, а затем в инспекторе пролистывая слои текстуры.
Вы можете использовать этот нейтральный шаблон LUT 33×33×33 как основу (нажмите правой кнопкой мыши и выберите Сохранить как…):
Для приведённого шаблона LUT после смены режима импорта на Texture3D установите количество Horizontal (горизонтальных) срезов на 33 в панели Import и нажмите Reimport. После загрузки этой LUT в свойство Color Correction видимых изменений пока не будет, так как эта текстура предназначена быть нейтральной отправной точкой.
Этот шаблон LUT можно модифицировать в графическом редакторе для придания изображению другого настроения. Типичный рабочий процесс: разместить LUT рядом со скриншотом 3D вьюпорта проекта, затем в графическом редакторе одновременно изменять и LUT, и скриншот. Затем LUT можно сохранить и применить в игровом движке для выполнения той же коррекции цвета в реальном времени.
Например, модификация шаблона LUT в графическом редакторе для получения эффекта "сепия" (sepia) даёт результат, показанный справа:
Примечание
Коррекции и настройки применяются после тональной коррекции. Это означает, что свойства тональной коррекции, определённые выше, всё ещё влияют на изображение при включённых настройках.
Параметры атрибутов камеры
Глубина резкости / Дальнее размытие
Этот эффект имитирует фокусное расстояние камер. Он размывает объекты за заданным диапазоном. Имеет начальную Distance (Дистанцию) с областью Transition (Перехода) в мировых единицах:
Параметр Amount (Интенсивность) управляет степенью размытия. Для сильных размытий может потребоваться настройка качества глубины резкости в расширенных настройках проекта, чтобы избежать артефактов.
Глубина резкости / Близкое размытие
Этот эффект имитирует фокусное расстояние камер. Он размывает объекты вблизи камеры (действует в противоположном направлении, чем размытие вдали). Имеет начальную Distance (Дистанцию) с областью Transition (Перехода) в мировых единицах:
Параметр Amount управляет степенью размытия. Для больших размытий может потребоваться настройка параметра Quality, чтобы избежать артефактов.
Обычно оба размытия используются вместе, чтобы сфокусировать внимание зрителя на определённом объекте или создать так называемый эффект "tilt shift".
Примечание
При использовании CameraAttributesPhysical вместо CameraAttributesPractical глубина резкости автоматически рассчитывается на основе дистанции фокусировки, фокусного расстояния и диафрагмы атрибутов камеры.
Экспозиция
Этот параметр умножает общую яркость сцены, видимую с камеры. Более высокие значения приводят к визуально более яркой сцене.
Автоматическая экспозиция
Эта функция доступна только в рендерере Forward+, но не в Mobile или Compatibility.
Хотя в большинстве случаев освещение и текстурирование контролируются художником, Godot поддерживает базовую реализацию высокого динамического диапазона с помощью механизма автоматической экспозиции. Обычно это используется для добавления реализма при сочетании затемнённых интерьеров и ярких наружных сцен. Автоматическая экспозиция имитирует поведение камеры (или глаза), адаптируясь к переходам между светлыми и тёмными зонами с разным уровнем освещённости.
Примечание
Автоматическая экспозиция требует оценки яркости сцены каждый кадр, что умеренно влияет на производительность. Поэтому рекомендуется оставлять её отключённой, если она не вносит существенных изменений в вашу сцену.
Самый простой способ использовать автоэкспозицию - убедиться, что наружное освещение (или другое сильное освещение) имеет энергию больше 1.0. Это делается путём изменения множителя Energy (на самом светильнике). Для согласованности Sky обычно тоже нужно использовать множитель энергии, чтобы соответствовать направленному свету. Обычно значений от 3.0 до 6.0 достаточно для имитации условий внутри и снаружи помещения.
При сочетании автоматической экспозиции с постобработкой Свечение пиксели, превышающие значение White тональной коррекции, переходят в буфер свечения, создавая характерный для фотографии эффект bloom.
В разделе "Auto Exposure" пользовательские значения имеют разумные значения по умолчанию, но вы всё равно можете их подстроить:
Scale: Множитель для масштабирования освещения. Более высокие значения создают более яркие изображения, более низкие — более тёмные.
Min Sensitivity / Min Exposure Value: Минимальная яркость, на которую будет настраиваться автоматическая экспозиция (в ISO при использовании CameraAttributesPractical или в EV100 при использовании CameraAttributesPhysical). Яркость рассчитывается как среднее значение света по всем пикселям экрана.
Max Sensitivity / Max Exposure Value: Максимальная яркость, на которую будет настраиваться автоматическая экспозиция (в ISO при использовании CameraAttributesPractical или в EV100 при использовании CameraAttributesPhysical).
Speed: Скорость коррекции яркости. Чем выше значение, тем быстрее происходит коррекция. Высокие значения могут быть предпочтительны для динамичных игр, но в некоторых сценариях могут отвлекать.
При использовании CameraAttributesPractical экспозиция задаётся чувствительностью в ISO вместо значения экспозиции в EV100. Типичные значения ISO находятся в диапазоне от 50 до 3200, причём более высокие значения дают более высокую итоговую экспозицию. В реальной фотографии дневные съёмки обычно используют ISO от 100 до 800.
См. также
См. Физические световые и камерные блоки, если вы хотите использовать реальные единицы измерения для настройки экспозиции камеры, поля зрения и глубины резкости.