Skip to main content

SceneCollider

The SceneCollider class provides an interface for performing collision detection within a Scene using GPU shaders. To perform collision detection, a new collision index must be obtained by atomically incrementing the indirect buffer, and input collision parameters must be written to the input buffer. The collision result is then available in the output buffer at the same index on the next frame or after manually executing the dispatch() method. The SceneManager class offers a simpler interface to SceneCollider for CPU-initiated collision queries, with results reported via callbacks.

info

The SceneCollider is available for GraphVarying shaders.

#include <scene/TellusimSceneCollider.h>

Constructors

SceneCollider()

Methods

Collider parameters.

uint32_t getMaxCollisions() const

Output buffer offset.

size_t getOutputOffset() const

Collider buffers.

Buffer getInputBuffer() const
Buffer getOutputBuffer() const
Buffer getIndirectBuffer() const

Collider queries.

Query getQuery(QueryType type) const
static const char *getQueryName(QueryType type)

Dispatch collider.

void dispatch(Compute compute, Flags flags = FlagNone)

Enums

Flags

Collider flags.

NameValueDescription
FlagNone0
FlagQuery(1 << 0)Time query profiler.
DefaultFlagsFlagNone
NumFlags1

CollisionFlags

Collision flags.

NameValueDescription
CollisionFlagNone0
CollisionFlagAll(1 << 28)Incusive collision mode.
CollisionFlagObject(1 << 29)Stop on object collision.
CollisionFlagInstance(1 << 30)Stop on node instance collision.

QueryType

Query types.

NameValueDescription
QueryGraph0Graph collision time.
QueryNode1Node collision time.
QueryObject2Object collision time.
QueryMerge3Collision merge time.
NumQueries4

Structs

Collision

Collider collision.

Variables

TypeNameValueDescription
Matrix4x3dtransformGlobal transform.
Vector4d[6]planesBounding planes.
uint32_tmask~0uCollision mask.
uint32_tflagsCollisionFlagNoneCollision flags and collision index.
uint32_tgraph_indexCollision graph index.
uint32_tnode_indexCollision node index.
uint32_tobject_indexCollision object index.
uint32_tobject_node_indexCollision object node index.
uint32_tgeometry_indexCollision geometry index.
uint32_tnext_indexNext collision index.
uint32_tpayloadCollision payload data.