Share

Supported SAS Shader Annotations

The following are the currently supported set of shader effect file annotations for the various SAS parsers. Note that case is ignored in both the names and string values, so "Spinner" is treated the same as "SPINNER" or "spinner".

  • String UIName - Defines the name displayed in the UI. A UI element is not created if this is not present

  • String UIWidget - Defines the UI element to use. Corresponds to UIType in the HLSL parser. Supported UIWidget values are "Spinner", "FloatSpinner", "Bitmap", and "Color".

  • float (int) UIMin - Defines the minimum value for a spinner UI element.

  • float (int) UIMax - Defines the maximum value for a spinner UI element.

  • float (int) UIStep - Defines the increment value for a spinner UI element

  • string ResourceType - Type of texture. You can specify either "Cube", "Volume" or "RenderTarget". If nothing is specified it is assumed to be a standard 2d texture. The "RenderTarget" option allows for support of multiple passes where the output of one pass is used as an input to another pass.

  • string ResourceName - The file name for a texture

  • vector2 (or vector3) Dimensions - The width, height, & optional depth for a procedural or RenderTarget texture. Mutually exclusive with the Width, Height, Depth, and ViewportRatio annotations.

  • int Width - Width of the texture. Mutually exclusive with the Dimensions and ViewportRatio annotations.

  • int Height - Height of the texture. Mutually exclusive with the Dimensions and ViewportRatio annotations.

  • int Depth - Depth of the texture. Mutually exclusive with the Dimensions and ViewportRatio annotations.

  • string Format - This defines the pixel format of the texture to create. It is used primarily for the "RenderTarget" type and currently defaults to "A32B32G32R32F". Acceptable formats are listed in the topic Supported Direct3D Texture Formats. Ignored for disk-based textures.

  • int MipLevels (or Levels) - The number of MIP levels to create.

  • float2 ViewportRatio - Dimensions based on the ratio of the viewport. For example float2ViewportRatio = {1,1} results in the same dimensions as the screen while float2 ViewportRatio = {0.5, 1.0} would result in a texture one half as wide as the render window, but just as tall. Mutually exclusive with Width, Height, Depth, and Dimensions annotations.

  • int RefID - This is used for lights and defines a unique number that is used for lookups by other parameters that use light parameters. This would typically be used with the LIGHTCOLOR semantics.

  • int LightRef (ParentRef) - This defines the parent light, from which any relevant data is accessed. If positional and directional light data are needed, the developer can define one element with a UI (parent) and the other can simply reference the parent - no UI is needed. This reduces UI of clutter from multiple light definitions.

  • int texcoord - Used to define the texcoord channel to use. This can be used with Textures and also with the TEXCOORD semantic.

  • int MapChannel - Used to define the mapping channel to fill out the data for the define Texcoord(n) channel. This can be used with textures and also with the TEXCOORD semantic.

  • string TargetTechnique (or Source) - This defines the technique used for the rendering of the "RenderTarget" type. If you define a technique with "_" as the first character of the name, it will not be displayed to the user as a selectable technique in the material rollout.

Was this information helpful?