VoxelToolLodTerrain
Осуществление VoxelTool специально для использования в VoxelLodTerrain.
Осуществление VoxelTool специально для использования в VoxelLodTerrain.
Функции этого класса являются специфическими: VoxelLodTerrainДля общих функций вы также можете проверить VoxelTool.
Это не урок, чтобы спешить в одиночку, ты можешь получить его от VoxelLodTerrain с использованием get_voxel_tool() Метод.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Методы9
DoGraphvoid
public void DoGraph(VoxelGeneratorGraph graph, Transform3D transform, Vector3 areaSize);Использование a VoxelGeneratorGraph как щетка, которая позволяет программировать операции SDF, выполняемые щеткой.
На графике должны иметься вход SDF и выход SDF, и предпочтительно работать с использованием формы единицы размера. SdfSphere узел с радиусом 1 с радиусом Min , чтобы объединить его с серьёзным СДФ.
См. также документация в режиме онлайн.
| Имя | Тип | По умолчанию |
|---|---|---|
graph | VoxelGeneratorGraph | — |
transform | Transform3D | — |
areaSize | Vector3 | — |
DoHemispherevoid
public void DoHemisphere(Vector3 center, float radius, Vector3 flatDirection, float smoothness = 0f);Оперирует в полушарии, где flat_direction указывает от плоской поверхности (как обычное). smoothness определяет, каким образом плоская часть смешивается с закругленной частью с более высокими значениями, создающими более мягкие закругленные края.
| Имя | Тип | По умолчанию |
|---|---|---|
center | Vector3 | — |
radius | float | — |
flatDirection | Vector3 | — |
smoothness | float | 0f |
DoSphereAsyncvoid
public void DoSphereAsync(Vector3 center, float radius);| Имя | Тип | По умолчанию |
|---|---|---|
center | Vector3 | — |
radius | float | — |
GetRaycastBinarySearchIterationsint
public int GetRaycastBinarySearchIterations();intGetVoxelFInterpolatedfloat
public float GetVoxelFInterpolated(Vector3 position);| Имя | Тип | По умолчанию |
|---|---|---|
position | Vector3 | — |
floatRunBlockyRandomTickvoid
public void RunBlockyRandomTick(Aabb area, int voxelCount, Callable callback, int batchCount = 16, uint tagsMask = 4294967295);Выбирает случайные воксели в пределах указанной области. Если воксель имеет модели VoxelBlockyModel.RandomTickable установлен в true и VoxelBlockyModel.TagsMask совпадает с любым битом tags_mask, выполняет функцию на них. Это работает только на местности VoxelMesherBlocky.
В ответ на звонок приводятся два аргумента: позиция вокселя (вокселя).Vector3i), значение вокселя (int).
Цель batch_count - оптимизация процесса отбора с помощью внутренней структуры данных. Алгоритм состоит в следующем: voxel_count разделены на партии длины batch_count. Для каждой партии, пересекаемой случайным блоком area выбирается, и batch_count Воксели отбираются в них произвольно. voxel_count не делимым batch_countДля выполнения оставшейся части будет выбран дополнительный блок.
batch Если эта функция используется в каждом раме во времени, то это отклонение должно усреднеться. Если вы не хотите никакого отклонения, настраивайте batch_count к 1.
| Имя | Тип | По умолчанию |
|---|---|---|
area | Aabb | — |
voxelCount | int | — |
callback | Callable | — |
batchCount | int | 16 |
tagsMask | uint | 4294967295 |
SeparateFloatingChunksReckfell.Collections.Array
public Reckfell.Collections.Array SeparateFloatingChunks(Aabb box, Entity parentNode);Превращает плавучие воксели в Жёсткие Боди. В коробке обнаруживаются плавучие воксели. Коробка относительно объема вокселя. VoxelTool , прикреплен. Чунки должны быть полностью размещены в этой коробке, чтобы считаться плавающими. Чулки удаляются из истоков и преобразуются в Жесткие Боды с выпуклыми фигурами столкновения. Они добавляются в качестве ребенка от установленного узла. Они начинают "кинематику" и поворачиваются "жестко" через короткое время, чтобы позволить местности обновлять свои коллайдеры после удаления (другим образом они будут перекрывать друг друга). Функция возвращает целый ряд этих жестких тел, которые вы можете использовать для привязки к ним дальнейшего поведения (например, исчезая через некоторое время или расстояние). Этот алгоритм может быстро стать дорогим, так что коробка не должна быть слишком большой.
| Имя | Тип | По умолчанию |
|---|---|---|
box | Aabb | — |
parentNode | Entity | — |
Reckfell.Collections.ArraySetRaycastBinarySearchIterationsvoid
public void SetRaycastBinarySearchIterations(int iterations);Выбирает случайные воксели в заданной области и выполняет функцию на них. Это работает только для местности с использованием VoxelMesherBlocky. Только волки, где Voxel.random_tickable это true будет выбран.
В ответ на звонок приводятся два аргумента: позиция вокселя (вокселя).Vector3i), значение вокселя (int).
Будет рассматриваться только воксель в LOD 0.
| Имя | Тип | По умолчанию |
|---|---|---|
iterations | int | — |
StampSdfvoid · Устарело
public void StampSdf(VoxelMeshSdf meshSdf, Transform3D transform, float isolevel, float sdfScale);| Имя | Тип | По умолчанию |
|---|---|---|
meshSdf | VoxelMeshSdf | — |
transform | Transform3D | — |
isolevel | float | — |
sdfScale | float | — |