Environment Probe
Environment Probe — это источник света, который также обеспечивает отражение на объекте внутри своего объема с помощью кубической карты (предварительно запеченной или динамически изменяющейся для каждого кадра). В UNIGINE , Environment Probe имеет три типа проекций:
- Прямоугольная проекция — лучше подходит для сцен в помещении (когда комната имеет форму 3D-коробки) или сцен на открытом пространстве в форме коробки (переулок между зданиями).
- Сферическая проекция — лучше работает в случаях сферических отражений.
- Raymarching — работает во всех остальных случаях, используется для отражений от окружающих поверхностей различной формы. Освещение расчитывается по физическим формулам, обеспечивая большую реалистичность отражений и диффузного освещения по сравнению с проекциями Box и Sphere, а следовательно и требуя больше ресурсов.
С помощью Environment Probe вы можете создавать отражения вместо создания отражающих материалов.
Смотрите также#
- Статья об Использовании Environment Probe
- Статья о Параметрах источников света
- Класс LightEnvironmentProbe для управления Environment Probe через API
Общая информация#
Environment Probe — отличный инструмент для повышения производительности, уменьшения количества материалов и облегчения жизни дизайнерам контента.
Environment Probe использует кубические карты, которые были запечены (или получены с помощью специального инструмента). Кубическая карта будет играть роль отражения и имитации света. Вот пример:
У нас есть два дома с разным цветом интерьера, и мы помещаем в них одинаковые предметы (с отражающим материалом, например, металл). Что случится?
Если не говорить о динамических отражениях, вам нужно отразить интерьер на каждом объекте. Но интерьеры имеют разный окружающий цвет, поэтому вам нужно создать для них 2 разных материала. Совсем не оптимизирован.
Environment Probe устраняет этот недостаток. После того, как вы добавили объект, вы не думаете об отражающем материале для него. Environment Probe отобразит кубическую карту на объект.
Есть разница в отображении кубических карт на прозрачные и непрозрачные объекты:
- Если объект прозрачный, Environment Probe отобразит кубическую карту, только если весь объект находится внутри радиуса Environment Probe. В противном случае на объект вообще не повлияет Environment Probe.
- Если объект непрозрачен, Environment Probe отобразит кубическую карту на любую часть объекта, которая находится внутри.
Прозрачный объект, на который влияет Environment Probe |
Непрозрачный объект, на который влияет Environment Probe |
Если вы поместите несколько нод Environment Probe, которые влияют на непрозрачный объект (отображаемый в отложенный проход ) их кубические карты будут плавно смешаны. Вот пример длинного коридора, стены которого выкрашены в разные цвета.
Мы помещаем две ноды Environment Probe, и оба они влияют на объект (когда объект находится в области пересечения). Если у вас большие локации, вы должны использовать несколько нод Environment Probe вместо одного, чтобы сделать окончательное изображение более реалистичным.
Эффект SSR (Screen Space Reflections) делает конечное изображение более реалистичным, поскольку он добавляет отражения, которые невозможно запечь в кубические карты. Использование Environment Probe и SSR — отличный метод для довольно быстрой имитации отражений с динамическим освещением.
Множество Environment Probes для прозрачных объектов#
Параметр Multiple Environment Probes установлен для прозрачного объекта (отображаемого в forward pass ) позволяет нескольким нодам Environment Probe воздействовать на объект и отображать на него свои кубические карты.
- Когда опция отключена, только последний набор Environment Probe будет влиять на объект. При этом весь объект должен находиться внутри радиуса Environment Probe. В противном случае этот Environment Probe на него вообще не повлияет.
- Когда опция включена, объект будет освещен всей Environment Probe: каждый зонд будет воздействовать на ту часть объекта, которая находится внутри зонда. Кубические карты нод Environment Probe будут смешаны в областях пересечения.
Multiple Environment Probes выключен: объекту сопоставляется только левая кубическая карта |
Multiple Environment Probes включен: обе кубические карты отображаются и смешиваются |
Добавление Environment Probe#
Чтобы добавить ноду Environment Probe в сцену через UnigineEditor, сделайте следующее:
- Запустите проект с UnigineEditor.
В меню выберите Create -> Lights и выберите необходимую форму Environment Probe: Box, Sphere или Raymarching. После создания можно изменить исходную форму проекции в окне Parameters.
- Поместите Environment Probe.
- Возьмите текстуру кубической карты для Environment Probe. Вы можете получить его через окно Parameters или использовать инструмент Bake Lighting.
- Отрегулируйте настройки Environment Probe.
- Вы не можете запечь в Environment Probe источники света в реальном времени (Omni Light, Projected Light и т.д.). Лучшее, что вы можете сделать, — это разместить сферы с излучающими материалами вместо источников света, отрегулировать интенсивность излучения и затем запечь освещение. Однако результат будет хуже, чем при использовании источников света в реальном времени.
- Используйте опцию Bake to Environment Probes, чтобы определить, должны ли отражения поверхности запекаться в Environment Probe.
Когда Environment Probe выбран в окне просмотра UnigineEditor, эталонные сферы визуализируются в центре probe:
- Сфера непрямых отражений помогает оценить отражение, обеспечиваемое probe.
- Сфера непрямого рассеивания помогает оценить окружающее освещение, обеспечиваемое probe (требуется включить опцию Indirect Diffuse).
Настройки Environment Probe#
Настройки Environment Probe можно найти на вкладке Node окна Parameters. Эта вкладка содержит как параметры, относящиеся ко всем источникам света так и параметры, специфичные для Environment Probe. Последние описаны ниже.
Общие параметры#
Тип проекции, которая будет использоваться Environment Probe: |
|
---|---|
Box Projection Size | Задает размер проекции. |
Attenuation Distance | Устанавливает расстояние затухания для Environment Probe. |
Attenuation Power | Устанавливает мощность затухания для Environment Probe. |
Параметры рендеринга#
Color | Устанавливает цвет свет в формате RGBA . Цвет определяет правдоподобие виртуального изображения и его эстетическую составляющую. |
---|---|
Intensity |
Устанавливает светлый цвет множитель , который обеспечивает точный контроль интенсивности цвета излучаемого света:
|
Shadow Mask | Shadow маска управляет рендерингом тени, отбрасываемой объектом, освещенным источником света. |
Viewport Mask | Устанавливает маску Viewport для света. |
Visibility Distance | Расстояние от камеры в единицах, до которого будет отображаться Environment Probe. |
Fade Distance | Расстояние от камеры в единицах, начиная с которого Environment Probe начинает постепенно исчезать. |
Render On Water | Отображает Environment Probe на поверхности воды. |
Render On Transparent | Отображает Environment Probe на прозрачных поверхностях. |
Multiply By Sky Color |
Включает влияние цвет солнечного света на Environment Probe. Если этот параметр включен, цвет Environment Probe становится черным ночью или оранжевым на закате. |
Additive Blending | Включает режим аддитивного смешивания для Environment Probe. Эта опция обеспечивает большую гибкость в управлении освещением и отражениями. Вы можете использовать его для смешивания освещения и отражений нескольких нод Environment Probe вместе и управления ими по отдельности. |
Noise Frame Number | Количество вариаций шумового рисунка, который меняется каждый кадр. Большие значения приводят к более динамичному эффекту шума, но при значительном временном накоплении кадров изображение будет выглядеть так, как будто используется больше лучей. Меньшие значения приводят к более статичному шумовому рисунку. |
Last Step Cubemap |
Позволяет выбрать кубическую карту, которая будет использоваться на последнем шаге прохода лучей:
|
Косвенные диффузные и зеркальные параметры#
В общем случае существует две группы параметров:
Indirect Diffuse | Включает непрямое рассеянное (окружающее) освещение для Environment Probe. По умолчанию Environment Probe используется только для отражений; что касается освещения, рекомендуется имитировать его с помощью Voxel Probe и световых карт — такой подход обеспечивает наилучший результат. Однако вы все равно можете использовать Environment Probe для непрямого рассеянного освещения, включив эту опцию. |
---|---|
Indirect Specular | Включает отраженное освещение для Environment Probe. |
Параметры различаются в зависимости от типа Environment Probe.
Сферическая проекция#
Contrast | Устанавливает контрастность непрямого рассеянного освещения. |
---|---|
Parallax |
Позволяет отображать отражения с учетом положения камеры. Когда эта опция отключена, кубические карты отражения просто проецируются на объекты и не учитывают перспективу зрителя.
Коррекция параллакса не влияет на отражения на прозрачных объектах. |
Cubic Filtering |
Включает бикубическую интерполяцию для кубической карты Environment Probe вместо стандартной билинейной интерполяции. Этот эффект применяется только к отражённому освещению и рассчитывается, если у пикселя низкое значение Roughness. Изменения затрагивают только первый мип-уровень кубической карты. Эффект визуально представляет собой лёгкое размытие соседних пикселей. Однако это не является антиалиасингом и может повлиять на качество изображения для Probe высокого разрешения. Эту опцию можно сочетать с sRGB Filtering Correction для достижения более плавного градиента между пикселями.
|
Прямоугольная проекция#
Ambient Parallax | Позволяет имитировать глобальное освещение. Environment Probe генерирует поддельный GI с помощью кубической карты. |
---|---|
Contrast | Устанавливает контрастность непрямого рассеянного освещения. |
Gloss Corners | Интенсивность отраженного блеска вблизи углов проекции прямоугольника. |
Cubic Filtering | См. выше. |
Raymarching#
Num Rays | Количество лучей на пиксель, которые используются для расчета рассеянного/отраженного освещения от шероховатых поверхностей. Использование большего количества лучей обеспечивает более точный расчет отражения от шероховатых поверхностей, однако это обходится дороже. |
---|---|
Num Steps | Количество шагов на луч, которые используются для вычисления трассировки. Количество шагов определяет точность измерения рассеянного/отраженного освещения и оказывает существенное влияние на производительность. Чем выше значение, тем точнее учитываются препятствия между объектами. |
Step Size | Размер шага трассировки, используемого для расчета рассеянного/отраженного освещения. Более высокие значения приводят к более длинным трассировкам (однако крошечные объекты могут отсутствовать), более низкие значения приводят к более детальному отражению крошечных объектов. |
Num Steps Roughness Threshold | Значение шероховатости, при котором количество шагов (Num Steps) равно 1. Это необходимо для оптимизации, так как максимально корректный расчет матовых отражений может оказаться ненужным. |
Information Lost Rays Multiplier | Множитель для количества лучей (Num Rays) в областях, где обычно возникает эффект ореола. Увеличение этого значения уменьшает появление ореолов, но чем больше случаев появления ореолов, тем больше это влияет на производительность. |
Mip Offset | Смещение mip-карты для кубической карты, которая используется для расчета рассеянного/отраженного освещения. Увеличение значения влияет на производительность, освещение становится менее детализированным и реалистичным, мелкие объекты на кубической карте могут быть потеряны. Значение 0 обеспечивает наиболее визуально достоверный результат, но для устранения шума требуется больше лучей. |
Threshold | Порог, используемый для расчета рассеянного/отраженного освещения, чтобы ограничить имитацию отражений в областях, где информация не может быть получена. Более высокие значения делают эффект менее выраженным. |
Threshold Occlusion | Значение, ограничивающее имитацию перекрытия кубической карты окружения в областях, где информация не может быть получена. Более высокие значения делают эффект менее выраженным. Этот параметр в основном используется в помещениях для коррекции ложных отражений на закрытых участках (ложные отражения заменяются черным цветом). Для наружного применения рекомендуются более высокие значения этого параметра. |
Reconstruction Samples Screen | Количество итераций, необходимое для более точного определения пересечения луча с поверхностью внутри экранного пространства. Более высокие значения определяют пересечение более точно, однако существенно влияют на производительность. |
Threshold Binary Search | Пороговое значение, используемое для обнаружения пересечений и определяющее глубину проникновения луча под поверхность. Более высокие значения могут приводить к увеличению числа ложных пересечений, но облегчают процесс обнаружения пересечений. |
Perspective Compensation | Перспективная компенсация для размера шага прохода лучей. 0 означает, что размер шага прохода лучей привязан к мировому пространству, а 1 означает, что он привязан к экранному пространству. В результате при значении 1 длина луча на расстоянии от камеры будет больше, чем на более близком расстоянии, что имеет смысл для крупных объектов, но детали на мелких объектах вдали могут быть потеряны. |
Non Linear Step Size | Значение настройки размера шага прохода лучей. Значение 0 означает, что размер шага одинаков для каждого шага, а при значении 1 каждый последующий шаг прохода лучей в два раза шире предыдущего. |
AO Intensity | Интенсивность фонового затенения. Следует помнить, что фонового затенения в реальном мире не существует, это метод имитации теней между объектами. Для фотореалистичной визуализации мы рекомендуем оставить это значение равным 0. |
AO Radius | Радиус выборки пикселей, используемых в эффекте Ambient Occlusion, определяющий размер затемненной области. |
Translucent Anisotropy |
Величина, определяющая степень проникновения света через прозрачные поверхности.
|
Replace With Diffuse Roughness Threshold | Значение шероховатости, начиная с которого Indirect Specular перестает вычисляться и заменяется на Indirect Diffuse. Этот параметр используется для оптимизации матовых отражений. |
BRDF | Модель распределения света для матовых поверхностей. GGX более реалистичен, хотя увеличивает уровень шума и немного снижает производительность. |
Настройки запекания#
Mode |
Указывает, обновляется ли отражение в реальном времени или является запеченным в текстуру. Опция Dynamic Reflections должна быть включена: Rendering -> Features -> Dynamic Reflections. |
---|---|
Faces Per Frame |
Интервал обновления кубической карты.
Доступно только для режима Realtime Update. |
Grab by Bake Lighting | Определяет, должна ли текстура кубической карты изменяться инструментом Bake Lighting. |
Reflection Viewport Mask | Маска которая управляет рендерингом отражений Environment Probe во вьюпорте камеры отражения. |
Resolution |
Разрешение текстуры отражения в пикселях. Установка слишком высокого разрешения для низкопроизводительного графического процессора с малым объемом памяти может привести к сбою движка. |
Supersampling | Количество выборок на пиксель, используемых для суперсэмплинга при захвате изображения. |
Mipmaps Quality |
Качество мипмапов для отражений окружающей среды на шероховатых поверхностях. Режимы качества различаются количеством лучей, используемых для создания отражения на шероховатых поверхностях.
|
Distance Scale |
Множитель глобального расстояния в диапазоне [0.0f;1.0f] для отражения LODs дальность видимости. Шкала расстояний применяется к расстоянию, измеренному от камеры отражения до границы ноды (поверхности). Доступно только для режима Realtime Update или Environment Probe типа Raymarching. |
Environment Ambient Intensity | Интенсивность рассеянного освещения окружающей среды. Доступно только для режима Realtime Update или Environment Probe типа Raymarching. |
Environment Reflection Intensity | Интенсивность отражения окружающей среды. Доступно только для режима Realtime Update или Environment Probe типа Raymarching. |
Near Clipping | Расстояние до ближней плоскости отсечения для захвата изображения. |
Far Clipping |
Расстояние до дальней плоскости отсечения для захвата изображения. Чрезвычайно большая разница между ближней и дальней плоскостями отсечения может привести к запеканию пространства в черный цвет. Поэтому, если требуемое значение дальней плоскости отсечения выходит за пределы диапазона, отрегулируйте значение ближнего отсечения пропорционально. |
Sky Cutout |
Вырезать рендеринг неба в Environment Probe и рендерить динамическое отражение вместо неба. Этот параметр можно использовать для визуализации изменений градиента неба в окне при изменении времени суток. |
Local Space |
Включает локальное пространство (локальные координаты) для Environment Probe. Может использоваться для сцен с движущимися объектами. Рекомендуется использовать этот параметр, если вы планируете повернуть Environment Probe после запекания. |
Вы можете использовать следующие 7 параметров видимости в комбинации с аддитивным смешиванием чтобы обеспечить большую гибкость в запекании освещения. Таким образом, вы можете сделать ноды Environment Probe независимыми друг от друга и объединить их, чтобы создать своего рода динамический эффект GI. |
|
Visibility Sky | Позволяет запекать освещение с неба в Environment Probe. |
Visibility Light World | Включает запекание источников World Light в Environment Probe. |
Visibility Light Omni | Включает запекание источников Omni Light в Environment Probe. |
Visibility Light Proj | Включает запекание источников Projected Light в Environment Probe. |
Visibility Voxel Probe | Включает запекание в Environment Probe других источников света Voxel Probe. |
Visibility Environment Probe | Включает запекание в Environment Probe других источников света Environment Probe. |
Visibility Emission | Позволяет запекать эмиссионные источники света в Environment Probe. |
Visibility Lightmap | Позволяет запекать поверхности с картами освещения в Environment Probe. |
Texture |
Текстура кубической карты для отражения. Каждая процедура запекания освещения вносит изменения в ассет, выбранный в этом поле, когда включен режим Grab by Bake Lighting. Вы можете оставить поле пустым, чтобы не потерять содержимое. В этом случае новая сгенерированная текстура освещения будет установлена для этого параметра после процедуры запекания освещения. Сгенерированные текстуры хранятся в папке data/bake_lighting. |
Cutout By Shadow |
Позволяет обрезать отражения, перекрытые препятствиями (находящимися в затененных областях относительно источника света). Эта функция использует текстуру глубины запеченную Environment Probe, чтобы определить отражения, которые должны быть видны.
При включении доступны три параметра, перечисленные ниже (Bias, Normal Bias и Depth Texture). |
sRGB Filtering Correction |
Включает преобразование выпеченной кубической карты или расчетов в режиме реального времени в цветовое пространство sRGB и модификацию в меньший динамический диапазон. Применение этой опции обеспечивает корректный линейный градиент между соседними пикселями в зоне действия Probe и делает переход между очень яркими и другими пикселями более плавным. Визуально улучшает зонды с низким разрешением, уменьшая их пикселизацию, а также делает яркие или однотонные пиксели менее заметными. Эта опция модифицирует кубическую карту, поэтому её состояние должно оставаться неизменным после запекания кубической карты для статического зонда. Если статический Environment Probe повторно использует кубическую карту, которая была выпечена с включённой опцией, опция также должна быть включена для данного Probe. В противном случае разница в яркости источников света будет очевидна. Эту опцию можно комбинировать с Cubic Filtering для улучшения градиента между пикселями. |
Bias | Смещение, которое используется для исправления неточного затенения объектов сцены для функции Cutout By Shadow. Он управляет смещением глубины, добавленным к текущему значению глубины, хранящемуся в карте теней. Аналогично параметру Bias для теней. |
Normal Bias | Смещение, полученное для функции Cutout By Shadow за счет смещения поверхности, на которую падает тень. Поверхность смещается по нормалям, хранящимся в карте нормалей. Аналогично параметру Normal Bias для теней. |
Depth Texture |
Текстура глубины, используемая для отсечения отражений, перекрытых препятствиями. Эта текстура статична и требует повторной генерации каждый раз, когда изменяется позиция или размер Environment Probe. Чтобы захватить текстуру глубины для обрезки, выполните следующие действия:
Каждая процедура запекания освещения вносит изменения в ассет, выбранный в этом поле, когда включены режим Grab by Bake Lighting вместе с режимом Cutout By Shadow. Вы можете оставить поле пустым, чтобы не потерять содержимое. В этом случае для этого параметра будет установлена новая сгенерированная текстура глубины после процедуры запекания освещения. Сгенерированные текстуры хранятся в папке data/bake_lighting. |