GpuParticlesCollisionHeightField3D
Трехмерная форма столкновения частиц в реальном времени, имеющая форму карты высот, влияющая на узлы GPUParticles3D.
Трехмерная форма столкновения частиц в реальном времени, имеющая форму карты высот, влияющая на узлы GpuParticles3D.
Форма столкновения 3D-частиц в реальном времени в форме карты высот, влияющая на узлы GpuParticles3D.
Формы карты высот позволяют эффективно представлять столкновения для выпуклых и вогнутых объектов с одним «полом» (например, ландшафтом). Это менее гибко, чем GpuParticlesCollisionSdf3D, но не требует этапа запекания.
GpuParticlesCollisionHeightField3D также может быть регенерировано в реальном времени при перемещении, при перемещении камеры или даже непрерывно. Это делает GpuParticlesCollisionHeightField3D хорошим выбором для погодных эффектов, таких как дождь и снег, и игр с высокодинамичной геометрией. Однако этот класс ограничен, поскольку карты высот не могут отображать выступы (например, в помещениях или пещерах).
Примечание: ParticleProcessMaterial.CollisionMode должен быть true для материала процесса GpuParticles3D, чтобы столкновение работало.
Примечание: Столкновение частиц влияет только на GpuParticles3D, а не на CpuParticles3D.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
GpuParticlesCollisionHeightField3DКонструктор
public GpuParticlesCollisionHeightField3D();Свойства5
FollowCameraEnabledСвойство
public bool FollowCameraEnabled { get; set; }Перемещает область захвата относительно текущей Camera3D своего viewport ступенями и запрашивает обновление при сдвиге. Не означает новую полную карту при каждом малом движении камеры.
HeightfieldMaskСвойство
public uint HeightfieldMask { get; set; }Render-слои мешей для построения карты высот. Не путайте с унаследованной CullMask, выбирающей источники частиц, или с физическими слоями. Учитывайте режим обновления захвата.
ResolutionСвойство
public GpuParticlesCollisionHeightField3D.ResolutionEnum Resolution { get; set; }Более высокие разрешения могут точнее отображать мелкие детали в больших сценах, за счет снижения производительности. Если GpuParticlesCollisionHeightField3D.UpdateMode — это GpuParticlesCollisionHeightField3D.UpdateModeEnum.Always, рассмотрите возможность использования самого низкого возможного разрешения.
SizeСвойство
public Vector3 Size { get; set; }Полные локальные размеры области захвата, не половинные extents. Не определяют разрешение поля и не гарантируют представление любого 3D-навеса/туннеля.
UpdateModeСвойство
public GpuParticlesCollisionHeightField3D.UpdateModeEnum UpdateMode { get; set; }Политика обновления карты. WhenMoved относится к перемещению компонента; движение меша само по себе не гарантирует обновление в этом режиме. Always запрашивает обновление постоянно и имеет стоимость.
Методы12
GetHeightfieldMaskuint
public uint GetHeightfieldMask();uintGetHeightfieldMaskValuebool
public bool GetHeightfieldMaskValue(int layerNumber);Возвращает true, если указанный слой GpuParticlesCollisionHeightField3D.HeightfieldMask включен, учитывая layer_number между 1 и 20 включительно.
| Имя | Тип | По умолчанию |
|---|---|---|
layerNumber | int | — |
boolGetResolutionGpuParticlesCollisionHeightField3D.ResolutionEnum
public GpuParticlesCollisionHeightField3D.ResolutionEnum GetResolution();GpuParticlesCollisionHeightField3D.ResolutionEnumGetSizeVector3
public Vector3 GetSize();Vector3GetUpdateModeGpuParticlesCollisionHeightField3D.UpdateModeEnum
public GpuParticlesCollisionHeightField3D.UpdateModeEnum GetUpdateMode();GpuParticlesCollisionHeightField3D.UpdateModeEnumIsFollowCameraEnabledbool
public bool IsFollowCameraEnabled();boolSetFollowCameraEnabledvoid
public void SetFollowCameraEnabled(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetHeightfieldMaskvoid
public void SetHeightfieldMask(uint heightfieldMask);| Имя | Тип | По умолчанию |
|---|---|---|
heightfieldMask | uint | — |
SetHeightfieldMaskValuevoid
public void SetHeightfieldMaskValue(int layerNumber, bool value);На основе value включает или отключает указанный слой в GpuParticlesCollisionHeightField3D.HeightfieldMask с учетом layer_number между 1 и 20 включительно.
| Имя | Тип | По умолчанию |
|---|---|---|
layerNumber | int | — |
value | bool | — |
SetResolutionvoid
public void SetResolution(GpuParticlesCollisionHeightField3D.ResolutionEnum resolution);| Имя | Тип | По умолчанию |
|---|---|---|
resolution | GpuParticlesCollisionHeightField3D.ResolutionEnum | — |
SetSizevoid
public void SetSize(Vector3 size);| Имя | Тип | По умолчанию |
|---|---|---|
size | Vector3 | — |
SetUpdateModevoid
public void SetUpdateMode(GpuParticlesCollisionHeightField3D.UpdateModeEnum updateMode);| Имя | Тип | По умолчанию |
|---|---|---|
updateMode | GpuParticlesCollisionHeightField3D.UpdateModeEnum | — |
GpuParticlesCollisionHeightField3D.ResolutionEnum
| Значение | Описание |
|---|---|
Max = 6 | Представляет размер перечисления |
Resolution1024 = 2 | Сгенерировать карту высот 1024×1024. Предназначено для больших сцен с удаленными частицами. РЕЗОЛЮЦИЯ_2048 |
Resolution2048 = 3 | Сгенерировать карту высот 2048×2048. Предназначено для очень больших сцен с удаленными частицами.
|
Resolution256 = 0 | Сгенерировать карту высот 256×256. Предназначено для сцен небольшого масштаба или более крупных сцен без далеких частиц. |
Resolution4096 = 4 | Сгенерировать карту высот 4096×4096. Предназначено для огромных сцен с удаленными частицами. |
Resolution512 = 1 | Сгенерировать карту высот 512×512. Предназначено для сцен среднего масштаба или более крупных сцен без далеких частиц. |
Resolution8192 = 5 | Сгенерировать карту высот 8192×8192. Предназначено для гигантских сцен с удаленными частицами. |
GpuParticlesCollisionHeightField3D.UpdateModeEnum
| Значение | Описание |
|---|---|
Always = 1 | Обновляйте карту высот каждый кадр. Это имеет значительные затраты производительности. Это обновление следует использовать только тогда, когда геометрия, с которой могут сталкиваться частицы, существенно изменяется во время игры. |
WhenMoved = 0 | Обновляйте карту высот только при перемещении узла |