reckfellENGINE

GpuParticlesCollisionHeightField3D

Трехмерная форма столкновения частиц в реальном времени, имеющая форму карты высот, влияющая на узлы GPUParticles3D.

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

Трехмерная форма столкновения частиц в реальном времени, имеющая форму карты высот, влияющая на узлы GpuParticles3D.

Форма столкновения 3D-частиц в реальном времени в форме карты высот, влияющая на узлы GpuParticles3D. Формы карты высот позволяют эффективно представлять столкновения для выпуклых и вогнутых объектов с одним «полом» (например, ландшафтом). Это менее гибко, чем GpuParticlesCollisionSdf3D, но не требует этапа запекания. GpuParticlesCollisionHeightField3D также может быть регенерировано в реальном времени при перемещении, при перемещении камеры или даже непрерывно. Это делает GpuParticlesCollisionHeightField3D хорошим выбором для погодных эффектов, таких как дождь и снег, и игр с высокодинамичной геометрией. Однако этот класс ограничен, поскольку карты высот не могут отображать выступы (например, в помещениях или пещерах). Примечание: ParticleProcessMaterial.CollisionMode должен быть true для материала процесса GpuParticles3D, чтобы столкновение работало. Примечание: Столкновение частиц влияет только на GpuParticles3D, а не на CpuParticles3D.

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

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

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

Свойства5

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

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

HeightfieldMaskСвойство
# HeightfieldMask
C#
public uint HeightfieldMask { get; set; }

Render-слои мешей для построения карты высот. Не путайте с унаследованной CullMask, выбирающей источники частиц, или с физическими слоями. Учитывайте режим обновления захвата.

ResolutionСвойство
# Resolution
C#
public GpuParticlesCollisionHeightField3D.ResolutionEnum Resolution { get; set; }

Более высокие разрешения могут точнее отображать мелкие детали в больших сценах, за счет снижения производительности. Если GpuParticlesCollisionHeightField3D.UpdateMode — это GpuParticlesCollisionHeightField3D.UpdateModeEnum.Always, рассмотрите возможность использования самого низкого возможного разрешения.

SizeСвойство
# Size
C#
public Vector3 Size { get; set; }

Полные локальные размеры области захвата, не половинные extents. Не определяют разрешение поля и не гарантируют представление любого 3D-навеса/туннеля.

UpdateModeСвойство
# UpdateMode
C#
public GpuParticlesCollisionHeightField3D.UpdateModeEnum UpdateMode { get; set; }

Политика обновления карты. WhenMoved относится к перемещению компонента; движение меша само по себе не гарантирует обновление в этом режиме. Always запрашивает обновление постоянно и имеет стоимость.

Методы12

GetHeightfieldMaskuint
# GetHeightfieldMask
C#
public uint GetHeightfieldMask();
Возвращает uint
GetHeightfieldMaskValuebool
# GetHeightfieldMaskValue
C#
public bool GetHeightfieldMaskValue(int layerNumber);

Возвращает true, если указанный слой GpuParticlesCollisionHeightField3D.HeightfieldMask включен, учитывая layer_number между 1 и 20 включительно.

Параметры
ИмяТипПо умолчанию
layerNumberint—
Возвращает bool
GetResolutionGpuParticlesCollisionHeightField3D.ResolutionEnum
# GetResolution
C#
public GpuParticlesCollisionHeightField3D.ResolutionEnum GetResolution();
Возвращает GpuParticlesCollisionHeightField3D.ResolutionEnum
GetSizeVector3
# GetSize
C#
public Vector3 GetSize();
Возвращает Vector3
GetUpdateModeGpuParticlesCollisionHeightField3D.UpdateModeEnum
# GetUpdateMode
C#
public GpuParticlesCollisionHeightField3D.UpdateModeEnum GetUpdateMode();
Возвращает GpuParticlesCollisionHeightField3D.UpdateModeEnum
IsFollowCameraEnabledbool
# IsFollowCameraEnabled
C#
public bool IsFollowCameraEnabled();
Возвращает bool
SetFollowCameraEnabledvoid
# SetFollowCameraEnabled
C#
public void SetFollowCameraEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetHeightfieldMaskvoid
# SetHeightfieldMask
C#
public void SetHeightfieldMask(uint heightfieldMask);
Параметры
ИмяТипПо умолчанию
heightfieldMaskuint—
SetHeightfieldMaskValuevoid
# SetHeightfieldMaskValue
C#
public void SetHeightfieldMaskValue(int layerNumber, bool value);

На основе value включает или отключает указанный слой в GpuParticlesCollisionHeightField3D.HeightfieldMask с учетом layer_number между 1 и 20 включительно.

Параметры
ИмяТипПо умолчанию
layerNumberint—
valuebool—
SetResolutionvoid
# SetResolution
C#
public void SetResolution(GpuParticlesCollisionHeightField3D.ResolutionEnum resolution);
Параметры
ИмяТипПо умолчанию
resolutionGpuParticlesCollisionHeightField3D.ResolutionEnum—
SetSizevoid
# SetSize
C#
public void SetSize(Vector3 size);
Параметры
ИмяТипПо умолчанию
sizeVector3—
SetUpdateModevoid
# SetUpdateMode
C#
public void SetUpdateMode(GpuParticlesCollisionHeightField3D.UpdateModeEnum updateMode);
Параметры
ИмяТипПо умолчанию
updateModeGpuParticlesCollisionHeightField3D.UpdateModeEnum—

GpuParticlesCollisionHeightField3D.ResolutionEnum

ЗначениеОписание
Max = 6

Представляет размер перечисления GpuParticlesCollisionHeightField3D.ResolutionEnum.

Resolution1024 = 2

Сгенерировать карту высот 1024×1024. Предназначено для больших сцен с удаленными частицами.

РЕЗОЛЮЦИЯ_2048

Resolution2048 = 3

Сгенерировать карту высот 2048×2048. Предназначено для очень больших сцен с удаленными частицами.

  • РЕЗОЛЮЦИЯ_4096
Resolution256 = 0

Сгенерировать карту высот 256×256. Предназначено для сцен небольшого масштаба или более крупных сцен без далеких частиц.

Resolution4096 = 4

Сгенерировать карту высот 4096×4096. Предназначено для огромных сцен с удаленными частицами.

Resolution512 = 1

Сгенерировать карту высот 512×512. Предназначено для сцен среднего масштаба или более крупных сцен без далеких частиц.

Resolution8192 = 5

Сгенерировать карту высот 8192×8192. Предназначено для гигантских сцен с удаленными частицами.

GpuParticlesCollisionHeightField3D.UpdateModeEnum

ЗначениеОписание
Always = 1

Обновляйте карту высот каждый кадр. Это имеет значительные затраты производительности. Это обновление следует использовать только тогда, когда геометрия, с которой могут сталкиваться частицы, существенно изменяется во время игры.

WhenMoved = 0

Обновляйте карту высот только при перемещении узла GpuParticlesCollisionHeightField3D или при перемещении камеры, если GpuParticlesCollisionHeightField3D.FollowCameraEnabled имеет значение true. Обновление можно принудительно выполнить, слегка переместив GpuParticlesCollisionHeightField3D в любом направлении или вызвав RenderingServer.ParticlesCollisionHeightFieldUpdate.

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

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

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

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