This node causes a <Program> to be executed. Typically a <Program> is executed when a <Mesh> is rendered, and the <Mesh>'s <Material> nodes are connected to <Program> nodes, which are also rendered. With compute shaders, there typically won't be a mesh to start the rendering chain reaction, so this node is used instead. This node also specifies workgroup sizes such as in the declaration 'layout(local_size_x = 32, local_size_y = 32, local_size_z = 1) in'.
Class registration and implementation information is as follows:
Category | Documentation |
---|---|
Implementation | C++ |
Module | Plugin-Domain-Compute |
Class Hierarchy | Node » Group » ProgramExecute |
Data Interface Name | ProgramExecute |
Type Status | Active |
Is Final Type | Yes |
Properties are as follows:
Property | Documentation |
---|---|
Pipeline Mode | The pipeline mode of the source <Program> node. This value is enumerated and cannot be set. |
Executes compute dispatch once per frame. | |
Executes compute the first time it is traversed. | |
Dispatch Local Group Sizes | If true, dispatches workgroup size and local group size simultaneously. In order to use this option, your GPU must support glDispatchComputeGroupSizeARB, or you will receive a rendering system error message in the Simdify application output window. If this option is true, your compute shader code must contain the following layout declaration: layout( local_size_variable ) in;. Note that even if a device supports the required extension, not all versions of GLSL supported by the device are required to support this extension. GLSL 310 es and GLSL 320 es commonly do not support this, even if it works in other GLSL versions supported by the device. |
Max Work Group Count X | Enumerates the maximum workgroups on the x-axis. This value is acquired from the OpenGL implementation. This option is only available when the source <Program> object's pipeline mode flag is set to Compute. |
Max Work Group Count Y | Enumerates the maximum workgroups on the y-axis. This value is acquired from the OpenGL implementation. This option is only available when the source <Program> object's pipeline mode flag is set to Compute. |
Max Work Group Count Z | Enumerates the maximum workgroups on the z-axis. This value is acquired from the OpenGL implementation. This option is only available when the source <Program> object's pipeline mode flag is set to Compute. |
Work Group Count X | Sets the workgroup count on the x-axis. This option is only available when the source <Program> object's pipeline mode flag is set to Compute. |
Work Group Count Y | Sets the workgroup count on the y-axis. This option is only available when the source <Program> object's pipeline mode flag is set to Compute. |
Work Group Count Z | Sets the workgroup count on the z-axis. This option is only available when the source <Program> object's pipeline mode flag is set to Compute. |
Max Local Group Count X | Enumerates the maximum workgroups on the x-axis. This value is acquired from the OpenGL implementation. This option is only available when the source <Program> object's pipeline mode flag is set to Compute. |
Max Local Group Count Y | Enumerates the maximum workgroups on the y-axis. This value is acquired from the OpenGL implementation. This option is only available when the source <Program> object's pipeline mode flag is set to Compute. |
Max Local Group Count Z | Enumerates the maximum workgroups on the z-axis. This value is acquired from the OpenGL implementation. This option is only available when the source <Program> object's pipeline mode flag is set to Compute. |
Local Group Count X | Sets the workgroup count on the x-axis. This option is only works if the extension GL_ARB_compute_variable_group_size is installed and has been enabled in the compute shader code. Otherwise you must specify this value by declaring 'layout( local_size_x = X, local_size_y = Y, local_size_z = Z ) in' in your compute shader code. This option is only available when the source <Program> object's pipeline mode flag is set to Compute. |
Local Group Count Y | Sets the workgroup count on the y-axis. This option is only works if the extension GL_ARB_compute_variable_group_size is installed and has been enabled in the compute shader code. Otherwise you must specify this value by declaring 'layout( local_size_x = X, local_size_y = Y, local_size_z = Z ) in' in your compute shader code. This option is only available when the source <Program> object's pipeline mode flag is set to Compute. |
Local Group Count Z | Sets the workgroup count on the z-axis. This option is only works if the extension GL_ARB_compute_variable_group_size is installed and has been enabled in the compute shader code. Otherwise you must specify this value by declaring 'layout( local_size_x = X, local_size_y = Y, local_size_z = Z ) in' in your compute shader code. This option is only available when the source <Program> object's pipeline mode flag is set to Compute. |
Start Index | Sets the primitive start index. This option is only available when the source <Program> object's pipeline mode flag is set to Task/Mesh. |
Count | Specifics the number of primitives to draw. This option is only available when the source <Program> object's pipeline mode flag is set to Task/Mesh. |
Source Program | A link to the <Program> node containing the compute shader code to execute. |
On Render Data Source | A link to a data source that contains nodes required by the compute shader. For example: a <UniformPaletteNode> or a <Group> containing shader or uniform buffer declarations. This option is generally left blank, but it can be useful to avoid graph traversal paradoxes in some situations. |
Image Palette | A link to a <TexturePaletteNode> or <SamplerPaletteNode> that contains <Texture> nodes or <SamplerNode> objects that specify textures required by the compute shader. This option is generally left blank, but it can be useful to avoid graph traversal paradoxes in some situations. |
Properties are as follows:
Property | Documentation |
---|---|
Visible | Toggles the <Group>'s visible/invisible". Child nodes are not visible when their parent <Group>'s is invisible. |
Collisions | Toggles collision detection on the <Group> node and its children". This is used for runtime export and has no effect in Simdify applications. |
Cull | Toggles view volume culling on/off". modifying this parameter may cause incorrect culling and other unexpected consequences. |
Preserve Camera | This option is undocumented at present. |
Generic Data Source | This option provides the capability to connect a <Group>'s to a node that serves as a generic data source. |
Bounding Box Frozen | Freezes the bounding box at its current size. This is often used as a runtime flag, and modifying this parameter may cause incorrect culling. |
Minimum X | Displays the minimum bounding box coordinate on the X axis. |
Minimum Y | Displays the minimum bounding box coordinate on the Y axis. |
Minimum Z | Displays the minimum bounding box coordinate on the Z axis. |
Maximum X | Displays the maximum bounding box coordinate on the X axis. |
Maximum Y | Displays the maximum bounding box coordinate on the Y axis. |
Maximum Z | Displays the maximum bounding box coordinate on the Z axis. |
Transform Locked | Locks the node and prevents transformation of the node and its children. This is a runtime flag and has no effect in Simdify applications. |
Position X | Displays the node's position on the X axis. |
Position Y | Displays the node's position on the Y axis. |
Position Z | Displays the node's position on the Z axis. |
Orientation X | Displays the node's orientation on the X axis. |
Orientation Y | Displays the node's orientation on the Y axis. |
Orientation Z | Displays the node's orientation on the Z axis. |
Scale X | Displays the node's scale on the X axis. |
Scale Y | Displays the node's scale on the Y axis. |
Scale Z | Displays the node's scale on the Z axis. |
Billboard | Sets the node as a billboard. Billboards rotate to face the camera. This feature has been preserved for compatibility purposes, but this functionality should be implemented with geometry shaders. |
Properties are as follows:
Property | Documentation |
---|---|
Name | Sets orthe name of the node. Do not use / or \ [forward slash and backslash] in the node name as this produces conflicts with resolving link nodes that reference external files. |
Class | Sets the class of the node. |
ID | Sets the ID of the node. This must be unique for each document, but different documents can use the same ID. |
Export Disabled | Determines whether or not the node is exported during an export process, or possibly other purposes. This flag is set to No and current Simdify exporters ignore it (but it can be very useful if you need to modify the exporters). |
Guid | Enumerates the Node's GUID. |