SuperDex Physics C++ API
Loading...
Searching...
No Matches
superdex::SoftSkinnedActorParams Struct Reference

Parameters to create soft-skinned actors with a shared articulated skeleton. More...

#include <mochi_structs.h>

Public Attributes

bool enableCollidingLinks = false
 Enable internal skeleton links as colliding actors.
bool hasGravity = false
 Enable gravity evaluation of nested soft actors on posed/skinned positions.
bool hasInertia = false
 Enable inertia evaluation of nested soft actors on posed/skinned positions.
bool hasStress = false
 Enable elasticity evaluation of nested soft actors on posed/skinned positions.
ArticulatedActorParams skeletonParams
 Parameters for the articulated skeleton.
DynamicArray< DynamicString > softAttachLinks
 Optional local names of the rigid links where nested soft actors are attached.
DynamicArray< SoftActorParams > softParams
 Parameters for the nested soft actors.

Detailed Description

Parameters to create soft-skinned actors with a shared articulated skeleton.

Soft-skinned actors combine deformable soft bodies with an articulated skeleton, allowing realistic tissue simulation that follows skeletal motion.

See also
Scene::CreateSoftSkinnedActor

Definition at line 276 of file mochi_structs.h.

Member Data Documentation

◆ enableCollidingLinks

bool superdex::SoftSkinnedActorParams::enableCollidingLinks = false

Enable internal skeleton links as colliding actors.

Note
If false, only nested soft actors act as colliding actors when no skin is present; otherwise, only the articulated actor acts as a colliding actor through its skin.
This setting does not affect whether the links act as colliders.

Definition at line 280 of file mochi_structs.h.

◆ hasGravity

bool superdex::SoftSkinnedActorParams::hasGravity = false

Enable gravity evaluation of nested soft actors on posed/skinned positions.

Note
Each SoftActorParams entry must have its hasGravity set to false.
See also
Scene::SetGravity

Definition at line 281 of file mochi_structs.h.

◆ hasInertia

bool superdex::SoftSkinnedActorParams::hasInertia = false

Enable inertia evaluation of nested soft actors on posed/skinned positions.

Note
If true, each SoftActorParams entry must have its hasInertia set to false.
If true, inertia is applied in the posed (post-skinning) configuration. This is the physically correct behavior.
If false, inertia is applied in the unposed configuration for each SoftActorParams entry that has its hasInertia set to true. This is an approximation but may improve performance.

Definition at line 282 of file mochi_structs.h.

◆ hasStress

bool superdex::SoftSkinnedActorParams::hasStress = false

Enable elasticity evaluation of nested soft actors on posed/skinned positions.

Note
If true, each SoftActorParams entry must have its hasStress set to false.
If true, stress forces are applied in the posed (post-skinning) configuration. This is the physically correct behavior.
If false, stress forces are applied in the unposed configuration for each SoftActorParams entry that has its hasStress set to true. This is an approximation but may improve performance.

Definition at line 283 of file mochi_structs.h.

◆ skeletonParams

ArticulatedActorParams superdex::SoftSkinnedActorParams::skeletonParams

Parameters for the articulated skeleton.

Note
If a skin shape is provided, the skin mesh acts as the colliding surface, not the surfaces of individual nested soft actors. The skin shape must include blending data to define how the skinned surfaces of the nested soft actors are blended with the overarching skin. Each nested soft actor must be linked to its corresponding blending data via its effective nested soft local name after default-name assignment.
See also
ArticulatedActorParams, ArticulatedSkinParams

Definition at line 277 of file mochi_structs.h.

◆ softAttachLinks

DynamicArray<DynamicString> superdex::SoftSkinnedActorParams::softAttachLinks

Optional local names of the rigid links where nested soft actors are attached.

Note
If empty, nested soft actor shapes must include skinning data.
If provided, must be 1-to-1 with softParams. Each entry must be non-empty and must match a skeleton link local name.
Contact is automatically disabled between nested soft actors and their attachment links.

Definition at line 279 of file mochi_structs.h.

◆ softParams

DynamicArray<SoftActorParams> superdex::SoftSkinnedActorParams::softParams

Parameters for the nested soft actors.

Note
If a skin shape is provided, the skin mesh acts as the colliding surface, not the surfaces of individual nested soft actors.
If a skin shape is provided, dynamic hyper-reduction is not allowed on the nested soft actors.
If a SoftActorParams entry has its hasInertia set to true, inertia is applied in the unposed configuration of that actor (prior to skinning) and this struct's hasInertia must be false.
If a SoftActorParams entry has its hasStress set to true, elasticity is applied in the unposed configuration of that actor (prior to skinning) and this struct's hasStress must be false.
Each SoftActorParams entry must have its hasGravity set to false (use this struct's hasGravity instead).
Each nested soft actor must have some DoFs constrained. This can be implemented (a) by constraining nodes in the SoftActorParams shape for FOM actors, or (b) by constraining the ROM subspace for ROM actors.
Each nested soft actor must have at least one energy term enabled: either this struct's hasGravity, hasInertia or hasStress (applied to every entry), or that entry's own SoftActorParams::hasInertia or SoftActorParams::hasStress.
Each entry's SoftActorParams::name is a nested soft local name. Explicit non-empty names must be unique across skeleton link local names and other nested soft local names, and must not contain forward slash, backslash, or embedded NUL characters.
Empty names are assigned deterministically after reserving all skeleton link names and all explicit nested soft names: an empty entry at index i uses soft_i if available; otherwise it uses the first available soft_N found by scanning upward from N = 0.
Each entry's SoftActorParams::worldFromLocal must be identity. Each nested soft actor's shape must be defined directly in the reference frame of the articulated actor. The soft-skinned actor's placement in scene world is provided by ArticulatedActorParams::worldFromRoot from skeletonParams.
For a blended skin, author the skin and nested-soft shapes in the same rest frame and use the articulation skin as the canonical source for each positively blended vertex's rest position and ordered skinning data.
See also
hasGravity, hasInertia, hasStress

Definition at line 278 of file mochi_structs.h.


The documentation for this struct was generated from the following files: