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 "ColorSwatch".
- 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 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.