![]() |
XII Release 0.1.0
|
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. | |
A particle graph node. Nodes map to compute kernels, tool-only annotations, or custom engine callbacks.