reckfellENGINE

GpuParticlesCollisionSdf3D

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

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

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

Запеченная форма столкновения частиц со знаком поля расстояний 3D, влияющая на узлы GpuParticles3D. Знаковые поля расстояний (SDF) позволяют эффективно представлять приблизительные формы столкновений для выпуклых и вогнутых объектов любой формы. Это более гибко, чем GpuParticlesCollisionHeightField3D, но требует этапа запекания. Запекание: Текстуру поля расстояний со знаком можно запечь, выбрав узел GpuParticlesCollisionSdf3D в редакторе, а затем нажав Запечь SDF в верхней части 3D-окна просмотра. Любые видимые MeshInstance3D в пределах GpuParticlesCollisionSdf3D.Size будут учитываться при запекании, независимо от их GeometryInstance3D.GIMode. Примечание: Запекание GpuParticlesCollisionSdf3D.Texture GpuParticlesCollisionSdf3D возможно только в редакторе, так как нет метода запекания, доступного для использования в экспортированных проектах. Однако все еще возможно загружать предварительно запеченные Texture3D в его свойство GpuParticlesCollisionSdf3D.Texture в экспортированном проекте. Примечание: ParticleProcessMaterial.CollisionMode должен быть ParticleProcessMaterial.CollisionModeEnum.Rigid или ParticleProcessMaterial.CollisionModeEnum.HideOnContact в материале процесса GpuParticles3D, чтобы столкновение работало. Примечание: Столкновение частиц влияет только на GpuParticles3D, а не на CpuParticles3D.

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

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

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

Свойства5

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

Render-слои геометрии для процесса запекания SDF. Не маска источников частиц CullMask. Изменение выбора/геометрии требует проверки и повторной генерации поля, а не только присваивания маски.

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

Разрешение запекания, используемое для поля расстояния со знаком GpuParticlesCollisionSdf3D.Texture. Текстуру необходимо запечь снова, чтобы изменения свойства GpuParticlesCollisionSdf3D.Resolution вступили в силу. Более высокие разрешения имеют большую стоимость производительности и требуют больше времени для запекания. Более высокие разрешения также приводят к более крупным запеченным текстурам, что приводит к увеличению требований к VRAM и пространству хранения. Чтобы улучшить производительность и сократить время запекания, используйте наименьшее возможное разрешение для объекта столкновения которое вы представляете.

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

Полные локальные размеры SDF-области, не половинные extents. Для реакции нужны соответствующие данные Texture и поддерживаемый рендеринг. Смена Size не равна перезапеканию геометрии.

TextureСвойство
# Texture
C#
public Texture3D Texture { get; set; }

3D-данные поля расстояний для столкновений. Не видимый albedo и не игровой CollisionShape. Проверяйте наличие/актуальность сгенерированных данных; изменение мешей не переписывает текстуру автоматически.

ThicknessСвойство
# Thickness
C#
public float Thickness { get; set; }

Толщина формы столкновения. В отличие от других коллайдеров частиц, GpuParticlesCollisionSdf3D на самом деле полый внутри. GpuParticlesCollisionSdf3D.Thickness можно увеличить, чтобы предотвратить туннелирование частиц через форму столкновения на высоких скоростях или при перемещении GpuParticlesCollisionSdf3D.

Методы12

GetBakeMaskuint
# GetBakeMask
C#
public uint GetBakeMask();
Возвращает uint
GetBakeMaskValuebool
# GetBakeMaskValue
C#
public bool GetBakeMaskValue(int layerNumber);

Возвращает, включен ли указанный слой GpuParticlesCollisionSdf3D.BakeMask, учитывая layer_number от 1 до 32.

Параметры
ИмяТипПо умолчанию
layerNumberint—
Возвращает bool
GetResolutionGpuParticlesCollisionSdf3D.ResolutionEnum
# GetResolution
C#
public GpuParticlesCollisionSdf3D.ResolutionEnum GetResolution();
Возвращает GpuParticlesCollisionSdf3D.ResolutionEnum
GetSizeVector3
# GetSize
C#
public Vector3 GetSize();
Возвращает Vector3
GetTextureTexture3D
# GetTexture
C#
public Texture3D GetTexture();
Возвращает Texture3D
GetThicknessfloat
# GetThickness
C#
public float GetThickness();
Возвращает float
SetBakeMaskvoid
# SetBakeMask
C#
public void SetBakeMask(uint mask);
Параметры
ИмяТипПо умолчанию
maskuint—
SetBakeMaskValuevoid
# SetBakeMaskValue
C#
public void SetBakeMaskValue(int layerNumber, bool value);

На основе value включает или отключает указанный слой в GpuParticlesCollisionSdf3D.BakeMask, учитывая layer_number от 1 до 32.

Параметры
ИмяТипПо умолчанию
layerNumberint—
valuebool—
SetResolutionvoid
# SetResolution
C#
public void SetResolution(GpuParticlesCollisionSdf3D.ResolutionEnum resolution);
Параметры
ИмяТипПо умолчанию
resolutionGpuParticlesCollisionSdf3D.ResolutionEnum—
SetSizevoid
# SetSize
C#
public void SetSize(Vector3 size);
Параметры
ИмяТипПо умолчанию
sizeVector3—
SetTexturevoid
# SetTexture
C#
public void SetTexture(Texture3D texture);
Параметры
ИмяТипПо умолчанию
textureTexture3D—
SetThicknessvoid
# SetThickness
C#
public void SetThickness(float thickness);
Параметры
ИмяТипПо умолчанию
thicknessfloat—

GpuParticlesCollisionSdf3D.ResolutionEnum

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

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

Resolution128 = 3

Запекаем поле расстояний со знаком 128×128×128.

  • РЕЗОЛЮЦИЯ_256*
Resolution16 = 0

Запекаем поле расстояний со знаком 16×16×16. Это самый быстрый вариант, но и наименее точный.

Resolution256 = 4

Запекаем знаковое поле расстояний размером 256×256×256.

Resolution32 = 1

Запекаем поле расстояний со знаком 32×32×32.

Resolution512 = 5

Выпекаем поле расстояний со знаком 512×512×512. Это самый медленный вариант, но и самый точный.

Resolution64 = 2

Запекаем знаковое поле расстояний размером 64×64×64.

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

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

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

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