reckfellENGINE

ReflectionProbe

Локальный захват окружения и область применения отражения.

На этой странице
class ReflectionProbeReckfellSharpНаследует VisualInstance3D

Size задаёт полный локальный объём влияния; OriginOffset смещает точку захвата внутри него, MaxDistance задаёт запрошенную дальность внутренних камер. CullMask выбирает захватываемую геометрию, ReflectionMask — геометрию, получающую результат: это разные маски.

Методы GetSize, GetOriginOffset и GetMaxDistance возвращают сохранённые настройки. Они не сообщают о готовности GPU-захвата или его визуальном качестве. Для первоначальной настройки используйте корректный положительный Size, затем OriginOffset и проверяйте результат на материале, который поддерживает отражённый свет.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

ReflectionProbeКонструктор
# ReflectionProbe
C#
public ReflectionProbe();

Создаёт Entity пробы и принадлежащий ей ресурс RenderingServer. Начальные настройки: Size=(20,20,20), OriginOffset=0, MaxDistance=0, Intensity=1, BlendDistance=1, UpdateMode=Once; обе маски включают первые 20 слоёв. BoxProjection, Interior и EnableShadows выключены, AmbientMode=Environment. Конструктор не означает, что GPU-захват уже завершён: пробу необходимо добавить в активный 3D-мир. Освобождайте Entity обычным способом; её внутренний RID не принадлежит вызывающему коду.

Свойства15

AmbientColorСвойство
# AmbientColor
C#
public Color AmbientColor { get; set; }

Постоянный ambient-цвет для AmbientMode.Color, по умолчанию чёрный. В RD RGB переводится из sRGB в линейное пространство и умножается на AmbientColorEnergy и вклад пробы. Альфа не задаёт прозрачность получателя. В остальных ambient-режимах значение сохраняется, но этот цвет не используется.

AmbientColorEnergyСвойство
# AmbientColorEnergy
C#
public float AmbientColorEnergy { get; set; }

Множитель AmbientColor в режиме Color, по умолчанию 1. Не меняет энергию источников света или запечатлённую геометрию. Intensity дополнительно масштабирует вклад пробы. Используйте неотрицательные значения; setter не ограничивает их диапазоном подсказки инспектора. При 0 RGB вклада становится чёрным; режим Color остаётся активным.

AmbientModeСвойство
# AmbientMode
C#
public ReflectionProbe.AmbientModeEnum AmbientMode { get; set; }

Способ добавления диффузного ambient-вклада, по умолчанию Environment. Disabled не добавляет такой вклад; Environment использует наиболее размытый уровень захвата; Color использует AmbientColor и AmbientColorEnergy. Это приближение локального освещения, не расчёт многократных отражений. Сам режим Disabled не запрещает зеркальное отражение, но при нулевом общем ambient стандартное specular occlusion может его погасить.

BlendDistanceСвойство
# BlendDistance
C#
public float BlendDistance { get; set; }

Ширина затухания вклада у внутренних границ области Size, по умолчанию 1. Значение 0 отключает плавный переход, сохраняя ограничение областью. В текущем RD переход вычисляется по осям и ограничивается полуразмерами коробки; это не линейная прозрачность по одному расстоянию и не дальность захвата.

BoxProjectionСвойство
# BoxProjection
C#
public bool BoxProjection { get; set; }

Коррекция параллакса отражения по коробке Size, по умолчанию false. В RD направление пересчитывается с учётом положения отражаемой поверхности внутри коробки и OriginOffset. Полезно для прямоугольных помещений, но не восстанавливает точную геометрию комнаты. Не перемещает точку захвата и не задаёт разрешение атласа.

CullMaskСвойство
# CullMask
C#
public uint CullMask { get; set; }

Маска слоёв VisualInstance3D, попадающих в захват; по умолчанию включены первые 20 слоёв. Сравнивается со слоями захватываемой геометрии, а не с номером слоя. Не выбирает получателей отражения: для них используется ReflectionMask. Ноль исключает геометрию, но не останавливает пробу и не обязательно исключает небо.

EnableShadowsСвойство
# EnableShadows
C#
public bool EnableShadows { get; set; }

Разрешает вычисление теней источников света при захвате, по умолчанию false. В RD для этого передаётся атлас теней пробы; сами источники и их настройки также должны поддерживать тени. Увеличивает работу при обновлении, особенно с Always. Не выключает уже запечённое затемнение в материалах или картах освещения.

IntensityСвойство
# Intensity
C#
public float Intensity { get; set; }

Множитель зеркального и добавочного ambient-вклада пробы, по умолчанию 1. Значение 0 убирает её световой вклад, но не удаляет пробу и не останавливает захват. Это не мощность источников света внутри захвата. Используйте неотрицательное значение; setter не ограничивает его подсказкой инспектора 0…1.

InteriorСвойство
# Interior
C#
public bool Interior { get; set; }

Интерьерный захват без фонового неба, по умолчанию false. В текущем RD окружение Environment исключается из рендера самой пробы. Это не создаёт свет внутри комнаты и не отключает всё освещение основной камеры; видимый ambient-вклад также зависит от AmbientMode и других источников.

MaxDistanceСвойство
# MaxDistance
C#
public float MaxDistance { get; set; }

Запрошенная дальность внутренних камер захвата, по умолчанию 0. Обёртка ограничивает значение диапазоном 0…262144. Фактическая дальняя плоскость дополнительно расширяется до границ области относительно OriginOffset, поэтому 0 не отключает захват. Это не расстояние видимости пробы от основной камеры и не размер её области влияния.

MeshLodThresholdСвойство
# MeshLodThreshold
C#
public float MeshLodThreshold { get; set; }

Порог экранного размера для выбора существующих LOD геометрии при захвате, по умолчанию 1. В текущем RD нормируется на разрешение атласа. Большие значения могут выбирать менее подробные LOD. Не создаёт LOD и не меняет их выбор основной камерой. Используйте неотрицательные значения; setter не ограничивает диапазон.

OriginOffsetСвойство
# OriginOffset
C#
public Vector3 OriginOffset { get; set; }

Локальное смещение точки захвата относительно центра пробы, по умолчанию (0,0,0). Для корректного положительного Size компоненты ограничиваются диапазоном ±(Size/2−0.01); уменьшение Size может изменить ранее заданное смещение. Смещение используется внутренними камерами захвата, а при BoxProjection — также коррекцией направления отражения. Оно не перемещает саму область влияния.

ReflectionMaskСвойство
# ReflectionMask
C#
public uint ReflectionMask { get; set; }

Маска слоёв геометрии, получающих отражение и ambient-вклад этой пробы; по умолчанию включены первые 20 слоёв. В текущем RD сравнивается со слоями экземпляра при применении пробы. Не меняет набор захватываемой геометрии — это CullMask. Ноль убирает получателей, но не освобождает захват и не является выключением процесса обновления.

SizeСвойство
# Size
C#
public Vector3 Size { get; set; }

Полные локальные размеры области влияния, а не половины размеров. По умолчанию (20,20,20). Используйте положительные компоненты; setter сохраняет переданный вектор без проверки положительности. Изменение размера также ограничивает сохранённый OriginOffset внутри области. Для размеров используйте это свойство, а не масштаб Entity: у ReflectionProbe отключено наследуемое масштабирование трансформации.

UpdateModeСвойство
# UpdateMode
C#
public ReflectionProbe.UpdateModeEnum UpdateMode { get; set; }

Политика обновления захвата, по умолчанию Once. Once сохраняет результат до инвалидации; изменения материала постороннего объекта сами по себе не гарантируют перезахват. Always повторяет захват при обработке активной пробы. Доступность результата зависит от видимости, планирования и обработки roughness, а не только от вызова setter. В текущем RD Always использует размер захвата 256 на грань куба; переход может пересоздать общий атлас и сопровождается известным ограничением освобождения текстур из руководства.

Методы30

AreShadowsEnabledbool
# AreShadowsEnabled
C#
public bool AreShadowsEnabled();

Возвращает флаг EnableShadows. Он не сообщает, есть ли подходящие источники или готовые тени в текущем захвате.

Возвращает bool

true, если вычисление теней при захвате разрешено; по умолчанию false.

GetAmbientColorColor
# GetAmbientColor
C#
public Color GetAmbientColor();

Возвращает сохранённый AmbientColor, включая компоненты Color, без замены на готовый линейный RGB освещения.

Возвращает Color

Назначенный Color; по умолчанию чёрный.

GetAmbientColorEnergyfloat
# GetAmbientColorEnergy
C#
public float GetAmbientColorEnergy();

Возвращает сохранённый AmbientColorEnergy независимо от активного AmbientMode.

Возвращает float

Настроенный множитель постоянного цвета; по умолчанию 1.

GetAmbientModeReflectionProbe.AmbientModeEnum
# GetAmbientMode
C#
public ReflectionProbe.AmbientModeEnum GetAmbientMode();

Возвращает сохранённый режим ambient пробы. Это не запрос готовности захвата.

Возвращает ReflectionProbe.AmbientModeEnum

Значение AmbientModeEnum; по умолчанию Environment.

GetBlendDistancefloat
# GetBlendDistance
C#
public float GetBlendDistance();

Возвращает сохранённую ширину перехода BlendDistance.

Возвращает float

Настроенная ширина в локальных единицах пробы; по умолчанию 1.

GetCullMaskuint
# GetCullMask
C#
public uint GetCullMask();

Возвращает сохранённую маску захватываемых слоёв.

Возвращает uint

Битовая маска CullMask; по умолчанию 0x000FFFFF.

GetIntensityfloat
# GetIntensity
C#
public float GetIntensity();

Возвращает сохранённый Intensity, а не измеренную яркость пикселей отражения.

Возвращает float

Настроенный множитель вклада; по умолчанию 1.

GetMaxDistancefloat
# GetMaxDistance
C#
public float GetMaxDistance();

Возвращает сохранённый MaxDistance после ограничения диапазона. Не возвращает фактическую дальнюю плоскость захвата: рендерер может увеличить её с учётом Size и OriginOffset.

Возвращает float

Сохранённая запрошенная дальность в диапазоне 0…262144. Это не вычисленная дальняя плоскость внутренних камер.

GetMeshLodThresholdfloat
# GetMeshLodThreshold
C#
public float GetMeshLodThreshold();

Возвращает сохранённый порог LOD для захвата.

Возвращает float

Значение MeshLodThreshold; по умолчанию 1.

GetOriginOffsetVector3
# GetOriginOffset
C#
public Vector3 GetOriginOffset();

Возвращает сохранённый OriginOffset после ограничения внутри размеров пробы. Результат может отличаться от переданного в SetOriginOffset или измениться после SetSize.

Возвращает Vector3

Локальное смещение после ограничения размерами пробы; по умолчанию (0,0,0).

GetReflectionMaskuint
# GetReflectionMask
C#
public uint GetReflectionMask();

Возвращает сохранённую маску получателей, а не маску камер захвата.

Возвращает uint

Битовая маска ReflectionMask; по умолчанию 0x000FFFFF.

GetSizeVector3
# GetSize
C#
public Vector3 GetSize();

Возвращает сохранённые полные локальные размеры Size. Локальный GetAabb() пробы задаётся позицией -Size/2 и размером Size; это не дальность внутренней камеры.

Возвращает Vector3

Сохранённый вектор полных локальных размеров Size, по умолчанию (20,20,20). Это не полуразмеры и не дальность захвата.

GetUpdateModeReflectionProbe.UpdateModeEnum
# GetUpdateMode
C#
public ReflectionProbe.UpdateModeEnum GetUpdateMode();

Возвращает настроенную политику обновления. Метод не сообщает о завершении захвата или фильтрации.

Возвращает ReflectionProbe.UpdateModeEnum

Значение UpdateModeEnum; по умолчанию Once.

IsBoxProjectionEnabledbool
# IsBoxProjectionEnabled
C#
public bool IsBoxProjectionEnabled();

Возвращает настройку BoxProjection. Значение true не подтверждает точность параллакса конкретной комнаты.

Возвращает bool

true, если коррекция коробки включена; по умолчанию false.

IsSetAsInteriorbool
# IsSetAsInterior
C#
public bool IsSetAsInterior();

Возвращает сохранённый флаг Interior, а не результат проверки помещения на замкнутость.

Возвращает bool

true для интерьерного режима; по умолчанию false.

SetAmbientColorvoid
# SetAmbientColor
C#
public void SetAmbientColor(Color ambient);

Сохраняет постоянный цвет ambient. Для его применения выберите AmbientMode.Color; для силы вклада используйте AmbientColorEnergy и Intensity.

Параметры
ИмяТипПо умолчанию
ambientColor—
ambient

Цвет ambient; используются RGB. Альфа не превращает материал в полупрозрачный.

SetAmbientColorEnergyvoid
# SetAmbientColorEnergy
C#
public void SetAmbientColorEnergy(float ambientEnergy);

Задаёт множитель постоянного ambient-цвета. Для видимого действия нужен AmbientMode.Color; увеличение не добавляет светильники или тени.

Параметры
ИмяТипПо умолчанию
ambientEnergyfloat—
ambientEnergy

Неотрицательный множитель RGB: 1 сохраняет исходную силу цвета. При 0 RGB вклада становится чёрным, но AmbientMode не переключается в Disabled.

SetAmbientModevoid
# SetAmbientMode
C#
public void SetAmbientMode(ReflectionProbe.AmbientModeEnum ambient);

Выбирает источник диффузного ambient-вклада. Настройки AmbientColor и AmbientColorEnergy хранятся независимо, но используются в режиме Color.

Параметры
ИмяТипПо умолчанию
ambientReflectionProbe.AmbientModeEnum—
ambient

Допустимый AmbientModeEnum: Disabled, Environment или Color. Для зеркального вклада отдельно проверяйте материал и specular occlusion.

SetAsInteriorvoid
# SetAsInterior
C#
public void SetAsInterior(bool enable);

Переключает интерьерный режим и помечает данные пробы для обновления. Разместите точку захвата вне сплошной геометрии и обеспечьте освещение помещения.

Параметры
ИмяТипПо умолчанию
enablebool—
enable

true исключает окружение из интерьерного захвата; false разрешает обычное окружение.

SetBlendDistancevoid
# SetBlendDistance
C#
public void SetBlendDistance(float blendDistance);

Задаёт ширину перехода у границ области. Используйте неотрицательное значение: setter не проверяет диапазон. Не увеличивает область Size и не создаёт дополнительные пробы.

Параметры
ИмяТипПо умолчанию
blendDistancefloat—
blendDistance

Ширина затухания внутри коробки; 0 задаёт резкую границу. Это не MaxDistance.

SetCullMaskvoid
# SetCullMask
C#
public void SetCullMask(uint layers);

Назначает слои геометрии для внутренних камер и инвалидирует захват. Маска основной Camera3D остаётся отдельной настройкой.

Параметры
ИмяТипПо умолчанию
layersuint—
layers

Биты слоёв: 1u — первый, 2u — второй, 3u — оба. Ноль исключает всю геометрию из захвата.

SetEnableBoxProjectionvoid
# SetEnableBoxProjection
C#
public void SetEnableBoxProjection(bool enable);

Включает или выключает коррекцию направления отражения по коробке. Сначала подгоните Size и OriginOffset под помещение.

Параметры
ИмяТипПо умолчанию
enablebool—
enable

true для коррекции коробки, false для обычного направления выборки захвата.

SetEnableShadowsvoid
# SetEnableShadows
C#
public void SetEnableShadows(bool enable);

Переключает вычисление теней при захвате и инвалидирует данные пробы. Проверяйте качество и стоимость на целевой платформе.

Параметры
ИмяТипПо умолчанию
enablebool—
enable

true разрешает поддерживаемые тени в новом захвате; false убирает их вычисление пробой.

SetIntensityvoid
# SetIntensity
C#
public void SetIntensity(float intensity);

Назначает множитель вклада пробы. Изменение не является запросом нового захвата сцены; проверьте итог вместе с экспозицией, материалом и BlendDistance.

Параметры
ИмяТипПо умолчанию
intensityfloat—
intensity

Неотрицательный множитель: 1 — исходный вклад, 0 — отсутствие вклада. Захват может продолжаться при нулевом значении.

SetMaxDistancevoid
# SetMaxDistance
C#
public void SetMaxDistance(float maxDistance);

Запрошенная дальность внутренних камер захвата, по умолчанию 0. Обёртка ограничивает значение диапазоном 0…262144. Фактическая дальняя плоскость дополнительно расширяется до границ области относительно OriginOffset, поэтому 0 не отключает захват. Это не расстояние видимости пробы от основной камеры и не размер её области влияния.

Параметры
ИмяТипПо умолчанию
maxDistancefloat—
maxDistance

Запрошенная дальность захвата в единицах проекта; отрицательные значения становятся 0, значения выше 262144 ограничиваются верхней границей.

SetMeshLodThresholdvoid
# SetMeshLodThreshold
C#
public void SetMeshLodThreshold(float ratio);

Задаёт порог выбора LOD для следующих захватов. Сам setter не инвалидирует уже сохранённое изображение Once; изменение настройки не доказывает, что новая геометрия уже захвачена.

Параметры
ИмяТипПо умолчанию
ratiofloat—
ratio

Неотрицательный порог экранного размера. Несмотря на имя ratio, это не процент уменьшения числа полигонов.

SetOriginOffsetvoid
# SetOriginOffset
C#
public void SetOriginOffset(Vector3 originOffset);

Локальное смещение точки захвата относительно центра пробы, по умолчанию (0,0,0). Для корректного положительного Size компоненты ограничиваются диапазоном ±(Size/2−0.01); уменьшение Size может изменить ранее заданное смещение. Смещение используется внутренними камерами захвата, а при BoxProjection — также коррекцией направления отражения. Оно не перемещает саму область влияния.

Параметры
ИмяТипПо умолчанию
originOffsetVector3—
originOffset

Локальное смещение точки захвата; задавайте после корректного положительного Size и проверяйте сохранённое значение, если точное положение важно.

SetReflectionMaskvoid
# SetReflectionMask
C#
public void SetReflectionMask(uint layers);

Задаёт слои объектов, на которые действует проба, и обновляет её зависимости. Для исключения самого объекта из изображения захвата меняйте CullMask, а не эту маску.

Параметры
ИмяТипПо умолчанию
layersuint—
layers

Биты слоёв получателей; 0 означает отсутствие получателей. Это не номер слоя и не CullMask.

SetSizevoid
# SetSize
C#
public void SetSize(Vector3 size);

Полные локальные размеры области влияния, а не половины размеров. По умолчанию (20,20,20). Используйте положительные компоненты; setter сохраняет переданный вектор без проверки положительности. Изменение размера также ограничивает сохранённый OriginOffset внутри области. Для размеров используйте это свойство, а не масштаб Entity: у ReflectionProbe отключено наследуемое масштабирование трансформации.

Параметры
ИмяТипПо умолчанию
sizeVector3—
size

Полные размеры по X/Y/Z в локальных единицах. Для корректной области задавайте положительные размеры; пример использует не менее 0.02 на каждой оси.

SetUpdateModevoid
# SetUpdateMode
C#
public void SetUpdateMode(ReflectionProbe.UpdateModeEnum mode);

Меняет политику обновления и инвалидирует данные пробы. Это не синхронная команда получения готового изображения. Учитывайте стоимость Always и известное предупреждение освобождения ресурсов при переходе между режимами.

Параметры
ИмяТипПо умолчанию
modeReflectionProbe.UpdateModeEnum—
mode

Допустимый UpdateModeEnum: Once или Always. Для обычного статического окружения начните с Once.

ReflectionProbe.AmbientModeEnum

ЗначениеОписание
Color = 2

Постоянный диффузный ambient из AmbientColor с множителем AmbientColorEnergy и Intensity. Действует в области пробы с учётом перехода BlendDistance; не создаёт отдельные источники света.

Disabled = 0

Не добавляет ambient от этой пробы. Ambient окружения и другие источники не выключаются этим значением. Зеркальный вклад настраивается отдельно; при нулевом общем ambient стандартное specular occlusion может его подавить.

Environment = 1

Диффузный ambient из наиболее размытого уровня захвата пробы. Это локальное приближение освещения, а не полноценный расчёт многократных отражений.

ReflectionProbe.UpdateModeEnum

ЗначениеОписание
Always = 1

Повторяет захват при обработке активной пробы. Стоимость зависит от сцены и числа обновляемых проб; универсального ограничения «только одна на сцену» нет. В текущем RD используется размер захвата 256 на грань куба. Переход из Once может пересоздать общий атлас; известное предупреждение освобождения текстур описано в руководстве.

Once = 0

Сохраняет захват до инвалидации. Изменение трансформации пробы вызывает обновление; изменение соседнего материала само по себе не гарантирует его. Захват и фильтрация планируются рендерером, поэтому нельзя полагаться на готовность ровно через шесть кадров. Подходит как начальная настройка для статического окружения.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.