VoxelGI
Объём непрямого освещения с подготовленными VoxelGIData.
VoxelGI использует предварительно подготовленную статическую геометрию для непрямого освещения во время рендеринга. Настройте Size и Subdiv, подготовьте меши с GIMode Static и запеките Data. Полный размер коробки задаёт Size; внешний бинарный ресурс данных сохраняйте в .rbin.
Рабочий процесс и диагностика засветов: VoxelGI. Реальный GPU-прогон подтвердил статическую эмиссию и сохранение данных; это не доказательство качества любых динамических мешей или скорости сцены.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
VoxelGIКонструктор
public VoxelGI();Создаёт VoxelGI без Data, с Size = (20, 20, 20) и Subdiv128. Добавьте в дерево уровня, настройте геометрию и выполните запекание либо назначьте готовые данные. Для визуального результата нужен поддерживаемый рендерер Forward+.
Свойства4
CameraAttributesСвойство
public CameraAttributes CameraAttributes { get; set; }Атрибуты для нормализации экспозиции запекания. Это не активная камера и не её Environment. При физическом освещении учитывается нормализация CameraAttributes; назначение также обновляет нормализацию существующего Data. Согласуйте параметры запекания с используемой экспозицией.
DataСвойство
public VoxelGIData Data { get; set; }Подготовленные данные объёма. Без Data VoxelGI не даёт непрямого света. Назначение не выполняет запекание и не копирует ресурс; null отключает назначенные данные. Для независимых объёмов учитывайте совместное использование ресурса.
SizeСвойство
public Vector3 Size { get; set; }Полный размер объёма по осям, не половина размера. Локальные границы: от −Size/2 до +Size/2. Каждая компонента при записи ограничивается снизу значением 1. После изменения заново запеките Data; старые данные сами не перестраиваются.
SubdivСвойство
public VoxelGI.SubdivEnum Subdiv { get; set; }Детализация длиннейшей оси: варианты Subdiv64, Subdiv128, Subdiv256, Subdiv512. По умолчанию Subdiv128. Короткие оси подстраиваются. Изменение не перезапекает Data; более высокая детализация требует больше работы и памяти. Передавайте допустимый вариант enum.
Методы10
Bakevoid
public void Bake(Entity fromNode = null, bool createVisualDebug = false);Синхронно подготавливает статическую видимую геометрию из fromNode и потомков в пределах объёма. При null корень — родитель VoxelGI; он должен существовать. При createVisualDebug = false создаёт или обновляет Data. Уже назначенный ресурс может измениться, а не замениться новым. Метод возвращает void: проверяйте ошибки и результат, старый ненулевой Data сам по себе не доказывает успешное новое запекание. Сохранение уровня не заменяет сохранение внешнего Data в .rbin.
| Имя | Тип | По умолчанию |
|---|---|---|
fromNode | Entity | null |
createVisualDebug | bool | false |
fromNodeКорень поиска геометрии; null использует родителя VoxelGI.
createVisualDebugtrue: создать диагностическую геометрию вместо обычного формирования Data. По умолчанию false.
DebugBakevoid
public void DebugBake();Запускает Bake с null и createVisualDebug = true: создаёт дочерний MultiMeshInstance3D для просмотра вокселизации вместо обычного формирования Data. Это редакторский диагностический метод, не сохранение рабочего GI.
GetCameraAttributesCameraAttributes
public CameraAttributes GetCameraAttributes();Возвращает текущее CameraAttributes. Атрибуты для нормализации экспозиции запекания. Это не активная камера и не её Environment. При физическом освещении учитывается нормализация CameraAttributes; назначение также обновляет нормализацию существующего Data. Согласуйте параметры запекания с используемой экспозицией.
CameraAttributesТекущее значение CameraAttributes; ресурс возвращается ссылкой, не независимой копией.
GetProbeDataVoxelGIData
public VoxelGIData GetProbeData();Возвращает текущее Data. Подготовленные данные объёма. Без Data VoxelGI не даёт непрямого света. Назначение не выполняет запекание и не копирует ресурс; null отключает назначенные данные. Для независимых объёмов учитывайте совместное использование ресурса.
VoxelGIDataТекущее значение Data; ресурс возвращается ссылкой, не независимой копией.
GetSizeVector3
public Vector3 GetSize();Возвращает текущее Size. Полный размер объёма по осям, не половина размера. Локальные границы: от −Size/2 до +Size/2. Каждая компонента при записи ограничивается снизу значением 1. После изменения заново запеките Data; старые данные сами не перестраиваются.
Vector3Текущее значение Size.
GetSubdivVoxelGI.SubdivEnum
public VoxelGI.SubdivEnum GetSubdiv();Возвращает текущее Subdiv. Детализация длиннейшей оси: варианты Subdiv64, Subdiv128, Subdiv256, Subdiv512. По умолчанию Subdiv128. Короткие оси подстраиваются. Изменение не перезапекает Data; более высокая детализация требует больше работы и памяти. Передавайте допустимый вариант enum.
VoxelGI.SubdivEnumТекущее значение Subdiv.
SetCameraAttributesvoid
public void SetCameraAttributes(CameraAttributes cameraAttributes);Устанавливает CameraAttributes. Атрибуты для нормализации экспозиции запекания. Это не активная камера и не её Environment. При физическом освещении учитывается нормализация CameraAttributes; назначение также обновляет нормализацию существующего Data. Согласуйте параметры запекания с используемой экспозицией.
| Имя | Тип | По умолчанию |
|---|---|---|
cameraAttributes | CameraAttributes | — |
cameraAttributesНовое значение CameraAttributes.
SetProbeDatavoid
public void SetProbeData(VoxelGIData data);Устанавливает Data. Подготовленные данные объёма. Без Data VoxelGI не даёт непрямого света. Назначение не выполняет запекание и не копирует ресурс; null отключает назначенные данные. Для независимых объёмов учитывайте совместное использование ресурса.
| Имя | Тип | По умолчанию |
|---|---|---|
data | VoxelGIData | — |
dataНовое значение Data.
SetSizevoid
public void SetSize(Vector3 size);Устанавливает Size. Полный размер объёма по осям, не половина размера. Локальные границы: от −Size/2 до +Size/2. Каждая компонента при записи ограничивается снизу значением 1. После изменения заново запеките Data; старые данные сами не перестраиваются.
| Имя | Тип | По умолчанию |
|---|---|---|
size | Vector3 | — |
sizeНовое значение Size.
SetSubdivvoid
public void SetSubdiv(VoxelGI.SubdivEnum subdiv);Устанавливает Subdiv. Детализация длиннейшей оси: варианты Subdiv64, Subdiv128, Subdiv256, Subdiv512. По умолчанию Subdiv128. Короткие оси подстраиваются. Изменение не перезапекает Data; более высокая детализация требует больше работы и памяти. Передавайте допустимый вариант enum.
| Имя | Тип | По умолчанию |
|---|---|---|
subdiv | VoxelGI.SubdivEnum | — |
subdivНовое значение Subdiv.
VoxelGI.SubdivEnum
| Значение | Описание |
|---|---|
Max = 4 | Представляет размер перечисления |
Subdiv128 = 1 | Использовать 128 подразделений. Это настройка качества по умолчанию. |
Subdiv256 = 2 | Использовать 256 делений. |
Subdiv512 = 3 | Использовать 512 подразбиений. Это настройка наивысшего качества, но медленная. На слабом оборудовании это может привести к остановке GPU. |
Subdiv64 = 0 | Используйте 64 подразделений. Это самая низкая настройка качества, но самая быстрая. Используйте ее, если можете, но особенно используйте ее на слабом оборудовании. |