VoxelGeneratorGraph
Генератор на основе графического вокселя.
Генератор на основе графического вокселя.
Генерирует данные о вокселе на графике операций по каждому вокселю. Граф должен быть создан, скомпилирован, и только тогда могут быть созданы блоки. Она может использоваться с гладким рельефом на базе ССО, а также закупоркой местности. Внимание: методы изменения графика следует называть только из основной нитки.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
VoxelGeneratorGraphКонструктор
public VoxelGeneratorGraph();Свойства8
DebugBlockClippingСвойство
public bool DebugBlockClipping { get; set; }Если граф выводит данные SDF, генерируемые блоки, которые в противном случае были бы срезаны, будут перевернуты. Это приводит к тому, что они появляются как «стенные артефакты», что полезно для визуализации того, где происходит оптимизация.
GraphDataСвойство
public Reckfell.Collections.Dictionary GraphData { get; set; }SdfClipThresholdСвойство
public float SdfClipThreshold { get; set; }При создании блоков SDF для местности, если дальность анализа блока превышает этот порог, его данные SDF будут считаться либо полным воздухом, либо полностью материей (с использованием высоких постоянных, положительных или отрицательных). Это оптимизирует память, поскольку куски полностью подземного или воздушного пространства будут иметь одинаковое значение на каждом вокселе. Это также экономит время на обработке, поскольку расчеты SDF (шум и т.д.) пропущены. Чтобы отключить эту оптимизацию, установить его высокую ценность.
Внизу: если вы используете операции для редактирования местности при условии соответствия SDF, они могут вести себя неправильно на границах, где начинается вырезка. VoxelTool.GrowSphere.
SubdivisionSizeСвойство
public int SubdivisionSize { get; set; }При создании блоков SDF для местности и при разграничении размеров блоков по этой величине в таком подразделении будет проводиться анализ дальности. Это позволяет оптимизировать более точные области. Однако в противном случае накладные расходы могут быть не слишком небольшими, а превышением выгод.
TextureModeСвойство
public VoxelGeneratorGraph.TextureModeEnum TextureMode { get; set; }Установки, которые будут выпускаться с помощью текстовых материалов, если таковые имеются.
UseOptimizedExecutionMapСвойство
public bool UseOptimizedExecutionMap { get; set; }При наличии такой возможности генератор будет пытаться пропустить отдельные узлы, если будет установлено, что они не имеют значения в конкретных районах.
UseSubdivisionСвойство
public bool UseSubdivision { get; set; }При наличии возможности, VoxelGeneratorGraph.SubdivisionSize будут использованы.
UseXzCachingСвойство
public bool UseXzCaching { get; set; }При включении генератор будет работать только после того, как ветки графа будут зависеть только от X и Z. Это будет эффективно, когда часть графика генерирует высоту карты, поскольку эта часть не объемная.
Методы24
BakeSphereBumpmapvoid
public void BakeSphereBumpmap(Image im, float refRadius, float sdfMin, float sdfMax);Запитывает сферическую бампкарту (или высотную карту), используя выход SDF, полученный генератором, если таковой имеется.
ref_radius: радиус сферы, на которой производится отбор проб высот.
strengthПрочность производных норм может составлять 1,0 по умолчанию.
| Имя | Тип | По умолчанию |
|---|---|---|
im | Image | — |
refRadius | float | — |
sdfMin | float | — |
sdfMax | float | — |
BakeSphereNormalmapvoid
public void BakeSphereNormalmap(Image im, float refRadius, float strength);Запитывает сферическую нормальную карту с использованием вывода SDF, производимого генератором, если таковой имеется. Обычная карта использует проекцию панорамы. Предполагается, что генератор производит сферическую форму (как планета). Такая обычная карта может быть использована для добавления более подробной информации к отдалённому виду местности с помощью этого генератора.
ref_radius: радиус сферы, на которой производится отбор проб норм.
strengthПрочность производных норм может составлять 1,0 по умолчанию.
Примечание: альтернативой является использование параметра дистанционных норм с VoxelLodTerrain.
| Имя | Тип | По умолчанию |
|---|---|---|
im | Image | — |
refRadius | float | — |
strength | float | — |
Clearvoid
public void Clear();Стирает все узлы и связи со графика.
CompileReckfell.Collections.Dictionary
public Reckfell.Collections.Dictionary Compile();Составляет график, чтобы его можно было использовать для создания блоков. В случае успеха, обратный результат представляет собой словарь со следующей компоновкой:
{
"success": true
}Если результат неисправен, он может содержать сообщение и идентификатор узла графа, который может быть причиной:
{
"success": false,
"node_id": int,
"message": String
}Идентификатор узла будет -1, если ошибка не касается конкретного узла.
Reckfell.Collections.DictionaryDebugAnalyzeRangeVector2
public Vector2 DebugAnalyzeRange(Vector3 minPos, Vector3 maxPos);| Имя | Тип | По умолчанию |
|---|---|---|
minPos | Vector3 | — |
maxPos | Vector3 | — |
Vector2DebugLoadWavesPresetvoid
public void DebugLoadWavesPreset();DebugMeasureMicrosecondsPerVoxelfloat
public float DebugMeasureMicrosecondsPerVoxel(bool useSingularQueries);| Имя | Тип | По умолчанию |
|---|---|---|
useSingularQueries | bool | — |
floatGenerateImageFromSdfvoid
public void GenerateImageFromSdf(Image im, Transform3D transform, Vector2 size);Генетрирует данные SDF в плоскости, сосредоточенной на данной трансформации, охватывающей оси X и Y, и хранится в пикселях изображения. Образцы сосредоточены на пикселях. Желательно, чтобы изображение имело 32 бит. float формат и не должен быть сжат.
| Имя | Тип | По умолчанию |
|---|---|---|
im | Image | — |
transform | Transform3D | — |
size | Vector2 | — |
GetMainFunctionVoxelGraphFunction
public VoxelGraphFunction GetMainFunction();Получает график, используемый для поколения.
VoxelGraphFunctionGetSdfClipThresholdfloat
public float GetSdfClipThreshold();floatGetSubdivisionSizeint
public int GetSubdivisionSize();intGetTextureModeVoxelGeneratorGraph.TextureModeEnum
public VoxelGeneratorGraph.TextureModeEnum GetTextureMode();VoxelGeneratorGraph.TextureModeEnumIsDebugClippedBlocksbool
public bool IsDebugClippedBlocks();boolIsUsingOptimizedExecutionMapbool
public bool IsUsingOptimizedExecutionMap();boolIsUsingSubdivisionbool
public bool IsUsingSubdivision();boolIsUsingXzCachingbool
public bool IsUsingXzCaching();boolRaycastSdfApproxfloat
public float RaycastSdfApprox(Vector3 rayOrigin, Vector3 rayEnd, float stride);Создаёт значения вдоль луча, чтобы найти первый, где SDF < 0,0, и возвращает расстояние вдоль луча. Если не найден удар, возвращает -1,0. Это приближение: погрешность возвращенного значения будет соответствовать заданной скорости. Чем дольше расстояние, тем дороже оно. Чем ниже путь, тем дороже и точнее.
| Имя | Тип | По умолчанию |
|---|---|---|
rayOrigin | Vector3 | — |
rayEnd | Vector3 | — |
stride | float | — |
floatSetDebugClippedBlocksvoid
public void SetDebugClippedBlocks(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetSdfClipThresholdvoid
public void SetSdfClipThreshold(float threshold);| Имя | Тип | По умолчанию |
|---|---|---|
threshold | float | — |
SetSubdivisionSizevoid
public void SetSubdivisionSize(int size);| Имя | Тип | По умолчанию |
|---|---|---|
size | int | — |
SetTextureModevoid
public void SetTextureMode(VoxelGeneratorGraph.TextureModeEnum mode);| Имя | Тип | По умолчанию |
|---|---|---|
mode | VoxelGeneratorGraph.TextureModeEnum | — |
SetUseOptimizedExecutionMapvoid
public void SetUseOptimizedExecutionMap(bool use);| Имя | Тип | По умолчанию |
|---|---|---|
use | bool | — |
SetUseSubdivisionvoid
public void SetUseSubdivision(bool use);| Имя | Тип | По умолчанию |
|---|---|---|
use | bool | — |
SetUseXzCachingvoid
public void SetUseXzCaching(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
Сигналы и события1
NodeNameChangedСобытие
public event VoxelGeneratorGraph.NodeNameChangedEventHandler NodeNameChanged;| Имя | Тип | По умолчанию |
|---|---|---|
nodeId | long | — |
VoxelGeneratorGraph.TextureModeEnum
| Значение | Описание |
|---|---|
Mixel4 = 0 | Записывает данные текстуры в |
Single = 1 | Записывает данные текстуры в |