Skip to main content

SceneCloner

The SceneTracer class provides an interface for performing Node Clone operations initiated by shaders. To execute a clone operation, the clone_graph_node() or clone_graph_nodes() GLSL function must be used, and the clone action will be completed on the next frame. For low-level control, the CloneParameters structure can be used, where the first element of the clone buffer contains the clone index, transform index, and the maximum number of transforms. The SceneManager class offers a clone callback interface that allows subscriptions to clone events.

info

The SceneCloner is available for GraphVarying shaders.

#include <scene/TellusimSceneCloner.h>

Constructors

SceneCloner()

Methods

Cloner parameters.

uint32_t getMaxNodes() const

Cloner buffers.

Buffer getCloneBuffer() const
Buffer getTransformBuffer() const

Cloner queries.

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

Dispatch cloner.

void dispatch(Compute compute, Flags flags = FlagNone)

Cloner nodes.

void addNode(const Node &reference, Node &node)
bool removeNodes(const Node &reference)

Enums

Flags

Cloner flags.

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

QueryType

Query types.

NameValueDescription
QueryTransform0Node transform time.
NumQueries1

Structs

CloneParameters

Clone parameters.

Variables

TypeNameDescription
uint64_tgraph_addressClone graph address.
uint16_tnode_indexClone node index.
uint16_tnum_nodesNumber of nodes.
uint32_tbase_transformBase transform index.
uint32_tcallback_indexScene callback index.
uint32_tpayloadPayload data.

Clone

Cloner clone.

Variables

TypeNameDescription
uint32_treference_indexReference node index.
uint32_tnode_indexCloned node index.