reckfellENGINE

VoxelGeneratorGraph

Генератор на основе графического вокселя.

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

Генератор на основе графического вокселя.

Генерирует данные о вокселе на графике операций по каждому вокселю. Граф должен быть создан, скомпилирован, и только тогда могут быть созданы блоки. Она может использоваться с гладким рельефом на базе ССО, а также закупоркой местности. Внимание: методы изменения графика следует называть только из основной нитки.

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

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

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

Свойства8

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

Если граф выводит данные SDF, генерируемые блоки, которые в противном случае были бы срезаны, будут перевернуты. Это приводит к тому, что они появляются как «стенные артефакты», что полезно для визуализации того, где происходит оптимизация.

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

При создании блоков SDF для местности, если дальность анализа блока превышает этот порог, его данные SDF будут считаться либо полным воздухом, либо полностью материей (с использованием высоких постоянных, положительных или отрицательных). Это оптимизирует память, поскольку куски полностью подземного или воздушного пространства будут иметь одинаковое значение на каждом вокселе. Это также экономит время на обработке, поскольку расчеты SDF (шум и т.д.) пропущены. Чтобы отключить эту оптимизацию, установить его высокую ценность. Внизу: если вы используете операции для редактирования местности при условии соответствия SDF, они могут вести себя неправильно на границах, где начинается вырезка. VoxelTool.GrowSphere.

SubdivisionSizeСвойство
# SubdivisionSize
C#
public int SubdivisionSize { get; set; }

При создании блоков SDF для местности и при разграничении размеров блоков по этой величине в таком подразделении будет проводиться анализ дальности. Это позволяет оптимизировать более точные области. Однако в противном случае накладные расходы могут быть не слишком небольшими, а превышением выгод.

TextureModeСвойство
# TextureMode
C#
public VoxelGeneratorGraph.TextureModeEnum TextureMode { get; set; }

Установки, которые будут выпускаться с помощью текстовых материалов, если таковые имеются.

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

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

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

При наличии возможности, VoxelGeneratorGraph.SubdivisionSize будут использованы.

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

При включении генератор будет работать только после того, как ветки графа будут зависеть только от X и Z. Это будет эффективно, когда часть графика генерирует высоту карты, поскольку эта часть не объемная.

Методы24

BakeSphereBumpmapvoid
# BakeSphereBumpmap
C#
public void BakeSphereBumpmap(Image im, float refRadius, float sdfMin, float sdfMax);

Запитывает сферическую бампкарту (или высотную карту), используя выход SDF, полученный генератором, если таковой имеется. ref_radius: радиус сферы, на которой производится отбор проб высот. strengthПрочность производных норм может составлять 1,0 по умолчанию.

Параметры
ИмяТипПо умолчанию
imImage—
refRadiusfloat—
sdfMinfloat—
sdfMaxfloat—
BakeSphereNormalmapvoid
# BakeSphereNormalmap
C#
public void BakeSphereNormalmap(Image im, float refRadius, float strength);

Запитывает сферическую нормальную карту с использованием вывода SDF, производимого генератором, если таковой имеется. Обычная карта использует проекцию панорамы. Предполагается, что генератор производит сферическую форму (как планета). Такая обычная карта может быть использована для добавления более подробной информации к отдалённому виду местности с помощью этого генератора. ref_radius: радиус сферы, на которой производится отбор проб норм. strengthПрочность производных норм может составлять 1,0 по умолчанию. Примечание: альтернативой является использование параметра дистанционных норм с VoxelLodTerrain.

Параметры
ИмяТипПо умолчанию
imImage—
refRadiusfloat—
strengthfloat—
Clearvoid
# Clear
C#
public void Clear();

Стирает все узлы и связи со графика.

CompileReckfell.Collections.Dictionary
# Compile
C#
public Reckfell.Collections.Dictionary Compile();

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

Текст
{
    "success": true
}

Если результат неисправен, он может содержать сообщение и идентификатор узла графа, который может быть причиной:

Текст
{
    "success": false,
    "node_id": int,
    "message": String
}

Идентификатор узла будет -1, если ошибка не касается конкретного узла.

Возвращает Reckfell.Collections.Dictionary
DebugAnalyzeRangeVector2
# DebugAnalyzeRange
C#
public Vector2 DebugAnalyzeRange(Vector3 minPos, Vector3 maxPos);
Параметры
ИмяТипПо умолчанию
minPosVector3—
maxPosVector3—
Возвращает Vector2
DebugLoadWavesPresetvoid
# DebugLoadWavesPreset
C#
public void DebugLoadWavesPreset();
DebugMeasureMicrosecondsPerVoxelfloat
# DebugMeasureMicrosecondsPerVoxel
C#
public float DebugMeasureMicrosecondsPerVoxel(bool useSingularQueries);
Параметры
ИмяТипПо умолчанию
useSingularQueriesbool—
Возвращает float
GenerateImageFromSdfvoid
# GenerateImageFromSdf
C#
public void GenerateImageFromSdf(Image im, Transform3D transform, Vector2 size);

Генетрирует данные SDF в плоскости, сосредоточенной на данной трансформации, охватывающей оси X и Y, и хранится в пикселях изображения. Образцы сосредоточены на пикселях. Желательно, чтобы изображение имело 32 бит. float формат и не должен быть сжат.

Параметры
ИмяТипПо умолчанию
imImage—
transformTransform3D—
sizeVector2—
GetMainFunctionVoxelGraphFunction
# GetMainFunction
C#
public VoxelGraphFunction GetMainFunction();

Получает график, используемый для поколения.

Возвращает VoxelGraphFunction
GetSdfClipThresholdfloat
# GetSdfClipThreshold
C#
public float GetSdfClipThreshold();
Возвращает float
GetSubdivisionSizeint
# GetSubdivisionSize
C#
public int GetSubdivisionSize();
Возвращает int
GetTextureModeVoxelGeneratorGraph.TextureModeEnum
# GetTextureMode
C#
public VoxelGeneratorGraph.TextureModeEnum GetTextureMode();
Возвращает VoxelGeneratorGraph.TextureModeEnum
IsDebugClippedBlocksbool
# IsDebugClippedBlocks
C#
public bool IsDebugClippedBlocks();
Возвращает bool
IsUsingOptimizedExecutionMapbool
# IsUsingOptimizedExecutionMap
C#
public bool IsUsingOptimizedExecutionMap();
Возвращает bool
IsUsingSubdivisionbool
# IsUsingSubdivision
C#
public bool IsUsingSubdivision();
Возвращает bool
IsUsingXzCachingbool
# IsUsingXzCaching
C#
public bool IsUsingXzCaching();
Возвращает bool
RaycastSdfApproxfloat
# RaycastSdfApprox
C#
public float RaycastSdfApprox(Vector3 rayOrigin, Vector3 rayEnd, float stride);

Создаёт значения вдоль луча, чтобы найти первый, где SDF < 0,0, и возвращает расстояние вдоль луча. Если не найден удар, возвращает -1,0. Это приближение: погрешность возвращенного значения будет соответствовать заданной скорости. Чем дольше расстояние, тем дороже оно. Чем ниже путь, тем дороже и точнее.

Параметры
ИмяТипПо умолчанию
rayOriginVector3—
rayEndVector3—
stridefloat—
Возвращает float
SetDebugClippedBlocksvoid
# SetDebugClippedBlocks
C#
public void SetDebugClippedBlocks(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetSdfClipThresholdvoid
# SetSdfClipThreshold
C#
public void SetSdfClipThreshold(float threshold);
Параметры
ИмяТипПо умолчанию
thresholdfloat—
SetSubdivisionSizevoid
# SetSubdivisionSize
C#
public void SetSubdivisionSize(int size);
Параметры
ИмяТипПо умолчанию
sizeint—
SetTextureModevoid
# SetTextureMode
C#
public void SetTextureMode(VoxelGeneratorGraph.TextureModeEnum mode);
Параметры
ИмяТипПо умолчанию
modeVoxelGeneratorGraph.TextureModeEnum—
SetUseOptimizedExecutionMapvoid
# SetUseOptimizedExecutionMap
C#
public void SetUseOptimizedExecutionMap(bool use);
Параметры
ИмяТипПо умолчанию
usebool—
SetUseSubdivisionvoid
# SetUseSubdivision
C#
public void SetUseSubdivision(bool use);
Параметры
ИмяТипПо умолчанию
usebool—
SetUseXzCachingvoid
# SetUseXzCaching
C#
public void SetUseXzCaching(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—

Сигналы и события1

NodeNameChangedСобытие
# NodeNameChanged
C#
public event VoxelGeneratorGraph.NodeNameChangedEventHandler NodeNameChanged;
Параметры обработчика
ИмяТипПо умолчанию
nodeIdlong—

VoxelGeneratorGraph.TextureModeEnum

ЗначениеОписание
Mixel4 = 0

Записывает данные текстуры в VoxelBuffer.ChannelId.ChannelIndices 4 упаковочных 4-битных индекса и VoxelBuffer.ChannelId.ChannelWeights как 4 упакованных 4-битных веса. VoxelMesherTransvoxel и документирует о гладких вокселях, чтобы посмотреть, как используются эти данные.

Single = 1

Записывает данные текстуры в VoxelBuffer.ChannelId.ChannelIndices Если вы хотите использовать этот режим, убедитесь, что ваши вокселы имеют соответствующий формат (см. VoxelFormat)

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

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

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

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