XII Release 0.1.0
Loading...
Searching...
No Matches
xiiParticleGraphNodeDesc Struct Reference

A particle graph node. Nodes map to compute kernels, tool-only annotations, or custom engine callbacks. More...

#include <ParticleGraph.h>

Public Attributes

xiiUuid m_NodeId
 Unique identifier for this node instance. This is used for connecting links and referencing the node in code. It should be generated when the node is created and remain stable for the lifetime of the node.
xiiHashedString m_sType
 Type identifier for this node, used to determine which compute kernel or engine callback to execute. This should be defined by the node's implementation and is used for dispatching the correct behavior at runtime.
xiiString m_sDisplayName
 User-friendly name for this node, shown in the editor UI. This can contain spaces and special characters, and is meant to be descriptive for artists and designers.
xiiString m_sKernelPath
 Optional path to the compute shader kernel associated with this node. This is used for nodes that execute GPU code and should point to a valid shader file. Nodes without GPU execution may leave this empty or use it for other purposes (e.g., editor annotations).
xiiString m_sEntryPoint
 Optional entry point name within the compute shader specified by m_sKernelPath. This allows multiple nodes to share the same shader file while executing different kernels. Nodes without GPU execution may leave this empty or use it for other purposes (e.g., editor annotations).
xiiEnum< xiiParticleGraphNodeCategory > m_Category
 High-level category for this node, used for editor grouping and compile scheduling. This is a hint for the editor to organize nodes into categories, and for the compiler to determine a default execution order. Custom scheduling may still be determined by user-defined rules or editor settings.
xiiEnum< xiiParticleGraphSchedule > m_Schedule
 Where and how often this node executes, used for scheduling and determining execution frequency. This is a hint for the compiler to determine when this node should be executed in the simulation loop. Custom scheduling may still be determined by user-defined rules or editor settings.
xiiBitflags< xiiParticleGraphNodeFlags > m_Flags
xiiVec2 m_vEditorPosition = xiiVec2::MakeZero()
 Position of this node in the editor graph view, used for layout and visualization. This is purely for editor purposes and has no effect on runtime behavior.
xiiColor m_DebugColor = xiiColor::White
 Optional debug color for this node, used for visualization in the editor or runtime debugging. This is purely a hint for visualization purposes and has no effect on the node's behavior.
xiiUInt32 m_uiThreadGroupSize = 64U
 Optional thread group size for GPU execution, used for dispatching compute shaders. This is only relevant for nodes that execute GPU code and should be set to a reasonable value based on the expected workload of the node. Nodes without GPU execution may ignore this value.
xiiUInt32 m_uiEstimatedCost = 1U
 Optional estimated cost for this node, used for scheduling heuristics. This is a hint for the compiler to determine how to schedule this node relative to others, with higher cost nodes potentially being scheduled less frequently or on async compute queues. The actual scheduling may still be determined by user-defined rules or editor settings.
xiiDynamicArray< xiiParticleGraphPinDesc > m_Inputs
 Descriptions of the input pins for this node, which determine what data this node consumes. Each pin should have a unique name within this node and should specify the expected data format and semantics for connections.
xiiDynamicArray< xiiParticleGraphPinDesc > m_Outputs
 Descriptions of the output pins for this node, which determine what data this node produces. Each pin should have a unique name within this node and should specify the expected data format and semantics for connections.
xiiDynamicArray< xiiParticleGraphParameterDesc > m_Parameters
 Descriptions of the parameters exposed by this node, which can be edited by artists and designers. Each parameter should have a unique name within this node and should specify the expected data format and semantics for connections.
xiiDynamicArray< xiiHashedString > m_ReadAttributes
 List of particle attributes read by this node, used for determining data dependencies and scheduling. Each attribute name should correspond to a valid particle attribute that this node reads from. This is a hint for the compiler to determine when this node needs to be executed based on which attributes it reads and which nodes write to those attributes.
xiiDynamicArray< xiiHashedString > m_WriteAttributes
 List of particle attributes written by this node, used for determining data dependencies and scheduling. Each attribute name should correspond to a valid particle attribute that this node writes to. This is a hint for the compiler to determine when this node needs to be executed based on which attributes it writes and which nodes read from those attributes.

Detailed Description

A particle graph node. Nodes map to compute kernels, tool-only annotations, or custom engine callbacks.


The documentation for this struct was generated from the following file:
  • /home/runner/work/XII/XII/Source/Engine/GraphicsCore/Particles/ParticleGraph.h