reckfellENGINE

HeightMapShape3D

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

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

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

3D-карта высоты, предназначенная для использования в физике для получения формы CollisionShape3DЭтот тип чаще всего используется для рельефа местности с вершинами, помещаемыми в фиксированную сеть. Карта высоты представлена как двухмерная сетка значений высоты, которая отражает положение точек сетки на оси Y. Точки сетки расположены на расстоянии 1 единицы по осям X и Z, а сетка сконцентрирована на происхождении сеток. CollisionShape3D Внутри каждый квадрат сетки разделен на два треугольника. В силу характера карты высоты она не может использоваться для моделирования навесов или пещер, что потребует наличия нескольких вершин в одном и том же вертикальном месте. @C#.NAN Затем можно было бы вставить ячмень с их собственным отдельным столкновением, чтобы обеспечить навесы, пещеры и т.д. Performance: HeightMapShape3D - быстрее для проверки на столкновение ConcavePolygonShape3D, но он значительно медленнее, чем примитивные формы, как BoxShape3D. Форма высотной карты столкновения может быть также построена с помощью Image Ссылка:

Примечание: Если вам нужно использовать интервал, отличный от 1 единицы, вы можете настроить Entity3D.Scale фигуры. Однако имейте в виду, что ReckfellPhysics3D не поддерживает неравномерное масштабирование: вам потребуется масштабировать ось Y на ту же величину, что и оси X и Z, а это значит, что значения в HeightMapShape3D.MapData должны быть предварительно масштабированы на величину, обратную этому масштабу. Также обратите внимание, что ReckfellPhysics3D вообще не поддерживает масштабирование для динамических тел (то есть, незамороженных узлов RigidBody3D); чтобы использовать масштабированный HeightMapShape3D с ними, вам потребуется использовать Физика джольта.

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

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

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

Свойства3

MapDataСвойство
# MapData
C#
public float[] MapData { get; set; }

Данные карты высот. Размер массива должен быть равен HeightMapShape3D.MapWidth умноженному на HeightMapShape3D.MapDepth.

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

Количество вершин в глубине карты высот. Изменение этого параметра приведет к изменению размера HeightMapShape3D.MapData.

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

Количество вершин в ширине карты высот. Изменение этого параметра приведет к изменению размера HeightMapShape3D.MapData.

Методы10

GetMapDatafloat[]
# GetMapData
C#
public float[] GetMapData();
Возвращает float[]
GetMapDepthint
# GetMapDepth
C#
public int GetMapDepth();
Возвращает int
GetMapWidthint
# GetMapWidth
C#
public int GetMapWidth();
Возвращает int
GetMaxHeightfloat
# GetMaxHeight
C#
public float GetMaxHeight();

Возвращает наибольшее значение высоты, найденное в HeightMapShape3D.MapData. Пересчитывает только при изменении HeightMapShape3D.MapData.

Возвращает float
GetMinHeightfloat
# GetMinHeight
C#
public float GetMinHeight();

Возвращает наименьшее значение высоты, найденное в HeightMapShape3D.MapData. Пересчитывает только при изменении HeightMapShape3D.MapData.

Возвращает float
SetMapData2 перегрузки
# SetMapData · 1/2
C#
public void SetMapData(ReadOnlySpan<float> data);
Параметры
ИмяТипПо умолчанию
dataReadOnlySpan<float>—
# SetMapData · 2/2
C#
public void SetMapData(float[] data);
Параметры
ИмяТипПо умолчанию
datafloat[]—
SetMapDepthvoid
# SetMapDepth
C#
public void SetMapDepth(int height);
Параметры
ИмяТипПо умолчанию
heightint—
SetMapWidthvoid
# SetMapWidth
C#
public void SetMapWidth(int width);
Параметры
ИмяТипПо умолчанию
widthint—
UpdateMapDataFromImagevoid
# UpdateMapDataFromImage
C#
public void UpdateMapDataFromImage(Image image, float heightMin, float heightMax);

Обновление HeightMapShape3D.MapData с данными, считываемыми с Image Ссылка: Автоматическое изменение размера карты высоты HeightMapShape3D.MapWidth и HeightMapShape3D.MapDepth с тем чтобы соответствовать полной ширине и высоте изображения. Картинка должна быть в либо Image.Format.Rf (32 бита), Image.Format.Rh (16 бит) или Image.Format.R8 (8 бит). Каждый пиксель изображения читается как a float на расстоянии от 0.0 (черный пиксель) - 1.0 (белый пиксел). Это значение дальности пересчитывается в height_min и height_max для формирования окончательного значения высоты. Примечание: Рекомендуется использовать высотную карту с 16-битными или 32-битными данными, хранящиеся в формате EXR или ДРЧ. Использование 8-битных данных о высоте или такого формата, как PNG, который Reckfell импортирует как 8-битный, приведет к террасированному рельефу.

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

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

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

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