reckfellENGINE

VoxelGIData

Запечённые данные и параметры объёма VoxelGI.

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

VoxelGIData хранит подготовленное октодерево и параметры непрямого освещения. Обычный путь: VoxelGI.Bake → Data → сохранение внешнего .rbin. Для разных настроек одного запекания создайте независимую копию ресурса; изменение общего Data повлияет на использующие его объёмы.

Пример возвращает ресурс, которым владеет вызывающий код. После назначения volume.Data копия удерживается объёмом; освобождайте собственную ссылку, когда она больше не нужна. Это копирование уже запечённых данных, не новое запекание геометрии.

C#
using System;
using Reckfell;

public static class VoxelDataCopies
{
    // Caller owns the returned resource. The source stays unchanged.
    public static VoxelGIData WithEnergy(VoxelGIData source, float energy)
    {
        ArgumentNullException.ThrowIfNull(source);
        if (!float.IsFinite(energy) || energy < 0f)
            throw new ArgumentOutOfRangeException(nameof(energy));
        var copy = (VoxelGIData)source.Duplicate(true);
        copy.Energy = energy;
        return copy;
    }
}

Рабочий процесс и диагностика: руководство VoxelGI.

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

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

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

Создаёт ресурс без запечённой геометрии. Обычный рабочий путь — VoxelGI.Bake и VoxelGI.Data либо загрузка готового .rbin. Наличие ресурса само по себе не означает наличие рабочего объёма GI.

Свойства8

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

Начальная дистанция трассировки конуса в координатах вокселей; отличается от NormalBias. Смещение помогает уменьшать самозатенение, но слишком большое значение может пропускать тонкие препятствия. Геттер нового ресурса возвращает 1.5; не считайте это доказательством пиксельной эквивалентности всех начальных настроек рендерера. Подсказка инспектора 0…8 не ограничивает сеттер.

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

Диапазон кодирования энергии в буфере VoxelGI, по умолчанию 2. В вычислениях участвует как масштаб деления и восстановления энергии; используйте конечное положительное значение. Подсказка инспектора 1…8 не является ограничением сеттера. Это не экспозиция камеры и не коэффициент качества без потери точности.

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

Множитель непрямого света, по умолчанию 1. При 0 вклад VoxelGI в проверенном кадре исчезает; прямой свет и видимость эмиссивного материала этим не выключаются. Подсказка инспектора 0…64 не ограничивает сеттер: например, 65 сохраняется. Используйте конечное неотрицательное значение.

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

При true исключает вклад неба в VoxelGI; по умолчанию false. Полезно для закрытой комнаты, но не отключает прямые источники и не исправляет отверстия в геометрии. Изменение параметра не перестраивает статические меши.

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

Смещение точки выборки вдоль нормали в координатах вокселей, по умолчанию 0. В отличие от Bias меняет положение начала выборки, а не только начальную дистанцию вдоль конуса. Увеличивайте небольшими шагами и проверяйте утечки света. Подсказка инспектора 0…8 не ограничивает сеттер.

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

Коэффициент распространения энергии при построении уровней VoxelGI, по умолчанию 0.5. Подсказка инспектора 0…1 не ограничивает сеттер; используйте обычный диапазон, пока не проверили иной режим. Более высокое значение не гарантирует физически верную яркость: сравнивайте с Energy и UseTwoBounces.

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

Использовать второй проход отражения непрямого света; по умолчанию true. Может изменить яркость и распределение света. Не обещает бесплатного улучшения качества: проверяйте кадр и время GPU на целевой сцене. Геометрию заново не запекает.

_DataСвойство
# _Data
C#
public Reckfell.Collections.Dictionary _Data { get; set; }

Внутренний словарь сериализации, не стабильный внешний формат. Содержит bounds, octree_size, octree_cells, octree_data, level_counts, to_cell_xform и поле расстояний octree_df либо сжатый L8 PNG octree_df_png. Не путайте PNG с сырыми байтами Allocate. Чтение создаёт представление для сериализации; запись требует полного согласованного набора и вызывает Allocate. Параметры Energy/Bias и остальные свойства сохраняются отдельно. Для обычной копии используйте Duplicate(true), для файла — ResourceSaver и .rbin.

Методы22

Allocate2 перегрузки
# Allocate · 1/2
C#
public void Allocate(Transform3D toCellXform, Aabb aabb, Vector3 octreeSize, byte[] octreeCells, byte[] dataCells, byte[] distanceField, int[] levelCounts);

Низкоуровнево загружает согласованный набор уже подготовленных воксельных буферов. Не вокселизирует меш и не заменяет Bake. Буферы octreeCells/dataCells имеют соответственно 32/16 байт на ячейку; поле расстояний передаётся сырыми L8-байтами. Для обычной копии используйте Duplicate(true).

Старые GPU-буферы освобождаются до части проверок входа: операция не атомарна и не гарантирует сохранение прежнего состояния при ошибке. Возвращает void; не используйте для недоверенных или произвольно сконструированных массивов. Передавайте только согласованные данные и проверяйте ошибки. Входные C#-массивы не остаются живым представлением данных GPU.

Параметры
ИмяТипПо умолчанию
toCellXformTransform3D—
aabbAabb—
octreeSizeVector3—
octreeCellsbyte[]—
dataCellsbyte[]—
distanceFieldbyte[]—
levelCountsint[]—
toCellXform

Преобразование из локальных координат объёма в координаты ячеек из того же набора данных.

aabb

Локальные границы объёма из того же запекания.

octreeSize

Размеры сетки по осям; используйте целые положительные размеры корректного запекания.

octreeCells

Внутренняя структура: длина кратна 32 байтам. Одной кратности недостаточно для валидности.

dataCells

Данные тех же ячеек: 16 байт на ячейку, половина длины octreeCells.

distanceField

Сырые L8-данные 3D-поля расстояний тех же размеров; не PNG-байты из _Data.

levelCounts

Число ячеек каждого уровня того же октодерева.

# Allocate · 2/2
C#
public void Allocate(Transform3D toCellXform, Aabb aabb, Vector3 octreeSize, ReadOnlySpan<byte> octreeCells, ReadOnlySpan<byte> dataCells, ReadOnlySpan<byte> distanceField, ReadOnlySpan<int> levelCounts);

Низкоуровнево загружает согласованный набор уже подготовленных воксельных буферов. Не вокселизирует меш и не заменяет Bake. Буферы octreeCells/dataCells имеют соответственно 32/16 байт на ячейку; поле расстояний передаётся сырыми L8-байтами. Для обычной копии используйте Duplicate(true).

Старые GPU-буферы освобождаются до части проверок входа: операция не атомарна и не гарантирует сохранение прежнего состояния при ошибке. Возвращает void; не используйте для недоверенных или произвольно сконструированных массивов. Передавайте только согласованные данные и проверяйте ошибки. Перегрузка span не сохраняет ссылки на управляемую память после вызова.

Параметры
ИмяТипПо умолчанию
toCellXformTransform3D—
aabbAabb—
octreeSizeVector3—
octreeCellsReadOnlySpan<byte>—
dataCellsReadOnlySpan<byte>—
distanceFieldReadOnlySpan<byte>—
levelCountsReadOnlySpan<int>—
toCellXform

Преобразование из локальных координат объёма в координаты ячеек из того же набора данных.

aabb

Локальные границы объёма из того же запекания.

octreeSize

Размеры сетки по осям; используйте целые положительные размеры корректного запекания.

octreeCells

Внутренняя структура: длина кратна 32 байтам. Одной кратности недостаточно для валидности.

dataCells

Данные тех же ячеек: 16 байт на ячейку, половина длины octreeCells.

distanceField

Сырые L8-данные 3D-поля расстояний тех же размеров; не PNG-байты из _Data.

levelCounts

Число ячеек каждого уровня того же октодерева.

GetBiasfloat
# GetBias
C#
public float GetBias();

Возвращает Bias. Начальная дистанция трассировки конуса в координатах вокселей; отличается от NormalBias. Смещение помогает уменьшать самозатенение, но слишком большое значение может пропускать тонкие препятствия. Геттер нового ресурса возвращает 1.5; не считайте это доказательством пиксельной эквивалентности всех начальных настроек рендерера. Подсказка инспектора 0…8 не ограничивает сеттер.

Возвращает float

Текущее значение Bias.

GetBoundsAabb
# GetBounds
C#
public Aabb GetBounds();

Возвращает локальные границы, сохранённые при Bake или Allocate. Это Aabb данных, а не автоматически преобразованные мировые границы Entity.

Возвращает Aabb

Сохранённый локальный Aabb.

GetDataCellsbyte[]
# GetDataCells
C#
public byte[] GetDataCells();

Возвращает byte[] внутренних данных ячеек, по 16 байт на ячейку корректного запекания. Это не массив Color или текстура для редактирования художником. Изменение полученного C#-массива не меняет ресурс.

Возвращает byte[]

Копия внутренних данных ячеек.

GetDynamicRangefloat
# GetDynamicRange
C#
public float GetDynamicRange();

Возвращает DynamicRange. Диапазон кодирования энергии в буфере VoxelGI, по умолчанию 2. В вычислениях участвует как масштаб деления и восстановления энергии; используйте конечное положительное значение. Подсказка инспектора 1…8 не является ограничением сеттера. Это не экспозиция камеры и не коэффициент качества без потери точности.

Возвращает float

Текущее значение DynamicRange.

GetEnergyfloat
# GetEnergy
C#
public float GetEnergy();

Возвращает Energy. Множитель непрямого света, по умолчанию 1. При 0 вклад VoxelGI в проверенном кадре исчезает; прямой свет и видимость эмиссивного материала этим не выключаются. Подсказка инспектора 0…64 не ограничивает сеттер: например, 65 сохраняется. Используйте конечное неотрицательное значение.

Возвращает float

Текущее значение Energy.

GetLevelCountsint[]
# GetLevelCounts
C#
public int[] GetLevelCounts();

Возвращает int[] с числом ячеек каждого уровня октодерева. В проверенном корректном запекании сумма равна GetOctreeCells().Length / 32. Изменение C#-массива не меняет ресурс.

Возвращает int[]

Копия количества ячеек по уровням.

GetNormalBiasfloat
# GetNormalBias
C#
public float GetNormalBias();

Возвращает NormalBias. Смещение точки выборки вдоль нормали в координатах вокселей, по умолчанию 0. В отличие от Bias меняет положение начала выборки, а не только начальную дистанцию вдоль конуса. Увеличивайте небольшими шагами и проверяйте утечки света. Подсказка инспектора 0…8 не ограничивает сеттер.

Возвращает float

Текущее значение NormalBias.

GetOctreeCellsbyte[]
# GetOctreeCells
C#
public byte[] GetOctreeCells();

Возвращает byte[] с внутренней структурой октодерева. В корректном запекании на ячейку приходится 32 байта. Возвращённый C#-массив независим: его изменение не изменяет данные GPU. Чтение может потребовать получения данных из рендерера; не вызывайте без необходимости каждый кадр.

Возвращает byte[]

Копия внутренних ячеек октодерева.

GetOctreeSizeVector3
# GetOctreeSize
C#
public Vector3 GetOctreeSize();

Возвращает сохранённое число ячеек по трём осям как Vector3. Это дискретные размеры сетки, не метры и не Size самого VoxelGI.

Возвращает Vector3

Размеры сетки по осям.

GetPropagationfloat
# GetPropagation
C#
public float GetPropagation();

Возвращает Propagation. Коэффициент распространения энергии при построении уровней VoxelGI, по умолчанию 0.5. Подсказка инспектора 0…1 не ограничивает сеттер; используйте обычный диапазон, пока не проверили иной режим. Более высокое значение не гарантирует физически верную яркость: сравнивайте с Energy и UseTwoBounces.

Возвращает float

Текущее значение Propagation.

GetToCellXformTransform3D
# GetToCellXform
C#
public Transform3D GetToCellXform();

Возвращает сохранённое преобразование из локальных координат объёма в координаты ячеек. Не является GlobalTransform VoxelGI.

Возвращает Transform3D

Сохранённое преобразование к ячейкам.

IsInteriorbool
# IsInterior
C#
public bool IsInterior();

Возвращает Interior. При true исключает вклад неба в VoxelGI; по умолчанию false. Полезно для закрытой комнаты, но не отключает прямые источники и не исправляет отверстия в геометрии. Изменение параметра не перестраивает статические меши.

Возвращает bool

Текущее значение Interior.

IsUsingTwoBouncesbool
# IsUsingTwoBounces
C#
public bool IsUsingTwoBounces();

Возвращает UseTwoBounces. Использовать второй проход отражения непрямого света; по умолчанию true. Может изменить яркость и распределение света. Не обещает бесплатного улучшения качества: проверяйте кадр и время GPU на целевой сцене. Геометрию заново не запекает.

Возвращает bool

Текущее значение UseTwoBounces.

SetBiasvoid
# SetBias
C#
public void SetBias(float bias);

Устанавливает Bias. Начальная дистанция трассировки конуса в координатах вокселей; отличается от NormalBias. Смещение помогает уменьшать самозатенение, но слишком большое значение может пропускать тонкие препятствия. Геттер нового ресурса возвращает 1.5; не считайте это доказательством пиксельной эквивалентности всех начальных настроек рендерера. Подсказка инспектора 0…8 не ограничивает сеттер.

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

Новое значение Bias; учитывайте ограничения назначения свойства.

SetDynamicRangevoid
# SetDynamicRange
C#
public void SetDynamicRange(float dynamicRange);

Устанавливает DynamicRange. Диапазон кодирования энергии в буфере VoxelGI, по умолчанию 2. В вычислениях участвует как масштаб деления и восстановления энергии; используйте конечное положительное значение. Подсказка инспектора 1…8 не является ограничением сеттера. Это не экспозиция камеры и не коэффициент качества без потери точности.

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

Новое значение DynamicRange; учитывайте ограничения назначения свойства.

SetEnergyvoid
# SetEnergy
C#
public void SetEnergy(float energy);

Устанавливает Energy. Множитель непрямого света, по умолчанию 1. При 0 вклад VoxelGI в проверенном кадре исчезает; прямой свет и видимость эмиссивного материала этим не выключаются. Подсказка инспектора 0…64 не ограничивает сеттер: например, 65 сохраняется. Используйте конечное неотрицательное значение.

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

Новое значение Energy; учитывайте ограничения назначения свойства.

SetInteriorvoid
# SetInterior
C#
public void SetInterior(bool interior);

Устанавливает Interior. При true исключает вклад неба в VoxelGI; по умолчанию false. Полезно для закрытой комнаты, но не отключает прямые источники и не исправляет отверстия в геометрии. Изменение параметра не перестраивает статические меши.

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

Новое значение Interior; учитывайте ограничения назначения свойства.

SetNormalBiasvoid
# SetNormalBias
C#
public void SetNormalBias(float bias);

Устанавливает NormalBias. Смещение точки выборки вдоль нормали в координатах вокселей, по умолчанию 0. В отличие от Bias меняет положение начала выборки, а не только начальную дистанцию вдоль конуса. Увеличивайте небольшими шагами и проверяйте утечки света. Подсказка инспектора 0…8 не ограничивает сеттер.

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

Новое значение NormalBias; учитывайте ограничения назначения свойства.

SetPropagationvoid
# SetPropagation
C#
public void SetPropagation(float propagation);

Устанавливает Propagation. Коэффициент распространения энергии при построении уровней VoxelGI, по умолчанию 0.5. Подсказка инспектора 0…1 не ограничивает сеттер; используйте обычный диапазон, пока не проверили иной режим. Более высокое значение не гарантирует физически верную яркость: сравнивайте с Energy и UseTwoBounces.

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

Новое значение Propagation; учитывайте ограничения назначения свойства.

SetUseTwoBouncesvoid
# SetUseTwoBounces
C#
public void SetUseTwoBounces(bool enable);

Устанавливает UseTwoBounces. Использовать второй проход отражения непрямого света; по умолчанию true. Может изменить яркость и распределение света. Не обещает бесплатного улучшения качества: проверяйте кадр и время GPU на целевой сцене. Геометрию заново не запекает.

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

Новое значение UseTwoBounces; учитывайте ограничения назначения свойства.

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

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

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

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