<Program>

A <Program> node is linked to ASCII files containing a GLSL vertex, control, evaluation, geometry, fragment, or compute shader program. A <Program> may specify only a compute shader, or it must specify at least a vertex and fragment shader. Similarly, a <Program> that specifies a tessellation shader must specify both the control shader and evaluation shader. Objects of type <Program> are bound when a <Mesh> is rendered by way of the <Mesh>'s <Material> nodes being connected to one or more <Program> nodes.

Registration

Class registration and implementation information is as follows:

Category Documentation
ImplementationC++
ModuleCore-App-Geometry
Class HierarchyNode » Group » Program
Data Interface NameProgram
Type StatusActive
Is Final TypeYes

<Program> Properties

Properties are as follows:

Property Documentation
Pipeline ModeA list of pipeline modes. Graphics is for vertex, control, evaluation, geometry, and fragment shaders. Compute is for compute shaders only. Mesh is for task, mesh, and fragment shaders.
Shading Language VersionA list of GLSL shading language versions. This is used to insert the #version directive in the shader source code.
Shading Language ProfileA list of GLSL shading language profiles. This is used to insert the #version directive in the shader source code.
Vertex Program FileThe absolute or relative path to the vertex shader source code.
Tessellation Control Program FileThe absolute or relative path to the tessellation control shader source code.
Tessellation Evaluation Program FileThe absolute or relative path to the tessellation evaluation shader source code.
Geometry Program FileThe absolute or relative path to the geometry shader source code.
Fragment Program FileThe absolute or relative path to the fragment shader source code.
Compute Program FileThe absolute or relative path to the compute shader source code. All other source entries must be blank to enable this option.
Task Program FileThe absolute or relative path to the task shader source code. This option can only be set along with the mesh shader source and fragment shader source.
Mesh Program FileThe absolute or relative path to the mesh shader source code. This option can only be set along with the mesh shader source and fragment shader source.
Pre-Compile Data SourceA node that you wish to traverse before the <Program> is rendered.
On Render Data SourceA node that you wish to traverse when the <Program> is rendered.

<Group> Properties

Properties are as follows:

Property Documentation
VisibleToggles the <Group>'s visible/invisible". Child nodes are not visible when their parent <Group>'s is invisible.
CollisionsToggles collision detection on the <Group> node and its children". This is used for runtime export and has no effect in Scenome applications.
CullToggles view volume culling on/off". modifying this parameter may cause incorrect culling and other unexpected consequences.
Preserve CameraThis option is undocumented at present.
Generic Data SourceThis option provides the capability to connect a <Group>'s to a node that serves as a generic data source.
Bounding Box FrozenFreezes the bounding box at its current size. This is often used as a runtime flag, and modifying this parameter may cause incorrect culling.
Minimum XDisplays the minimum bounding box coordinate on the X axis.
Minimum YDisplays the minimum bounding box coordinate on the Y axis.
Minimum ZDisplays the minimum bounding box coordinate on the Z axis.
Maximum XDisplays the maximum bounding box coordinate on the X axis.
Maximum YDisplays the maximum bounding box coordinate on the Y axis.
Maximum ZDisplays the maximum bounding box coordinate on the Z axis.
Transform LockedLocks the node and prevents transformation of the node and its children. This is a runtime flag and has no effect in Scenome applications.
Position XDisplays the node's position on the X axis.
Position YDisplays the node's position on the Y axis.
Position ZDisplays the node's position on the Z axis.
Orientation XDisplays the node's orientation on the X axis.
Orientation YDisplays the node's orientation on the Y axis.
Orientation ZDisplays the node's orientation on the Z axis.
Scale XDisplays the node's scale on the X axis.
Scale YDisplays the node's scale on the Y axis.
Scale ZDisplays the node's scale on the Z axis.
BillboardSets 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.

<Node> Properties

Properties are as follows:

Property Documentation
NameSets the 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.
ClassSets the class of the node.
IDSets the ID of the node. This must be unique for each document, but different documents can use the same ID.
Export DisabledDetermines whether or not the node is exported during an export process, or possibly other purposes.
GuidEnumerates the Node's GUID.