1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <meta http-equiv="Content-Style-Type" content="text/css" /> 6 <title>ShaderProgramDescriptionCtr</title> 7 <link rel="stylesheet" href="../css/mainpage.css" type="text/css" /> 8 </head> 9 <body> 10 <h1><ShaderProgramDescriptionCtr></h1> 11 <h2>Description</h2> 12 <p> 13 Information describing the shader program. 14 </p> 15 <h2>Attributes</h2> 16 <table class="arguments"> 17<thead><tr><td>Type</td><td>Attributes</td><td>Description</td></tr></thead> 18<tr><td /><th>VertexShaderIndex</th><td>The index number of the vertex shader in the file.</td></tr> 19<tr><td /><th>GeometryShaderIndex</th><td>The index number of the geometry shader in the file.</td></tr> 20<tr><td /><th>MaxBoneCount</th><td>The maximum number of bones that the vertex shader can accept as input.</td></tr> 21<tr><td /><th>MaxVertexLightCount</th><td>The maximum number of vertex lights that the vertex shader can accept as input.</td></tr> 22<tr><td /><th>VertexLightEndUniform</th><td>The end position of the uniform register used by vertex light.</td></tr> 23<tr><td /><th>IsSupportingRigidSkinning</th><td>Flag indicating whether the shader supports rigid skinning.</td></tr> 24<tr><td /><th>IsSupportingSmoothSkinning</th><td>Flag indicating whether the shader supports smooth skinning.</td></tr> 25<tr><td /><th>IsSupportingHemiSphereLighting</th><td>Flag indicating whether the shader supports hemispherical lighting.</td></tr> 26<tr><td /><th>IsSupportingVertexMorphShader</th><td>Flag indicating whether the shader supports vertex morphing.</td></tr> 27<tr><td /><th>GeometryShaderMode</th><td>The enumerated type representing the operational modes of the geometry shader.<BR> <strong>The standard runtime library does not support any specification except <CODE>None</CODE>.</strong></td></tr> 28</table> 29 30<h2>GeometryShaderMode enumerators</h2> 31 32<table class="arguments"> 33 <thead><tr><td>Type</td><td>Attributes</td><td>Description</td></tr></thead> 34 <tr><td /><th>None</th><td>Geometry shader not being used. This is the normal case for rendering.</td></tr> 35 <tr><td /><th>Points</th><td>A point geometry shader.</td></tr> 36 <tr><td /><th>Lines</th><td>A line geometry shader.</td></tr> 37 <tr><td /><th>LineStrip</th><td>A LineStrip geometry shader.</td></tr> 38 <tr><td /><th>PointSprites</th><td>A PointSprite geometry shader.</td></tr> 39 <tr><td /><th>SilhouetteTriangles</th><td>A Triangle List with Silhouette geometry shader.</td></tr> 40 <tr><td /><th>SilhouetteStrip</th><td>A Triangle Strip with Silhouette geometry shader.</td></tr> 41 <tr><td /><th>Subdivision</th><td>A Subdivision geometry shader.</td></tr> 42 <tr><td /><th>SubdivisionLoop</th><td>A Subdivision Loop geometry shader.</td></tr> 43</table> 44 45<h2><Symbols> element</h2> 46<p> 47Bundles together multiple shader symbols. Child elements hold a multitude of these elements:<br> BoolShaderSymbolCtr, Vector1ShaderSymbolCtr, Vector2ShaderSymbolCtr, Vector3ShaderSymbolCtr, Vector4ShaderSymbolCtr, 48</p> 49 50<h3>Shader symbol attributes</h3> 51 <table class="arguments"> 52<thead><tr><td>Type</td><td>Attributes</td><td>Description</td></tr></thead> 53<tr><td /><th>Name</th><td>The name of the shader.</td></tr> 54<tr><td /><th>IsEnabled</th><td> 55This sets whether to use <CODE>DefaultValue</CODE> or user-defined values (the material's shader parameters).<br> If set to <CODE>true</CODE>, the default values defined by the child elements are applied.<br> If set to <CODE>false</CODE>, the material's shader parameters (<CODE><a href="cmdl__ShaderParamaters.html"><ShaderParameters></a></CODE>) are used. 56</td></tr> 57</table> 58 59<h3>Shader symbol default values</h3> 60<p> 61The default values for shader symbols are defined as the child elements <CODE>boolean Vector1Xml Vector2Xml Vector3Xml Vector4Xml</CODE>.<br> These are used when the <CODE>IsEnabled</CODE> attribute is <CODE>true</CODE> or when there is no relevant uniform name for a given shader parameter. 62</p> 63 64 65<h2><AttributeSymbols> element</h2> 66<p> 67Child elements hold the type information for numerous shaders (<CODE><AttributeSymbolCtr></CODE>).<br> 68 69</p> 70 71<h3><CODE><AttributeSymbolCtr></CODE> element attributes</h3> 72 <table class="arguments"> 73<thead><tr><td>Type</td><td>Attributes</td><td>Description</td></tr></thead> 74<tr><td /><th>Usage</th><td><CODE>VertexAttributeCtrUsage</CODE> enumerator indicating how the attribute value is being used.</td></tr> 75<tr><td /><th>Name</th><td>The name of the attribute value.<br> The first character must be a lowercase "<I>a</I>," which indicates that this is an attribute.</td></tr> 76</table> 77 78 <h3>VertexAttributeCtrUsage Enumerated Type</h3> 79 <table class="arguments"> 80<thead><tr><td>Value</td><td>Description</td></tr></thead><tr><th>Position</th><td>Vertex position information.</td></tr><tr><th>Normal</th><td>Normal vector information of vertex.</td></tr><tr><th>Tangent</th><td>Tangent vector information of vertex.</td></tr><tr><th>Color</th><td>Vertex color information.</td></tr><tr><th>TextureCoordinate0</th><td>Texture coordinate 0 information of vertex.</td></tr><tr><th>TextureCoordinate1</th><td>Texture coordinate 1 information of vertex.</td></tr><tr><th>TextureCoordinate2</th><td>Texture coordinate 2 information of vertex.</td></tr><tr><th>BoneIndex</th><td>Bone index number information of vertex.</td></tr><tr><th>BoneWeight</th><td>Vertex bone weight information.</td></tr><tr><th>UserAttribute0</th><td>User attribute 0 information of vertex.</td></tr><tr><th>UserAttribute1</th><td>User attribute 1 information of vertex.</td></tr><tr><th>UserAttribute2</th><td>User attribute 2 information of vertex.</td></tr><tr><th>UserAttribute3</th><td>User attribute 3 information of vertex.</td></tr><tr><th>UserAttribute4</th><td>User attribute 4 information of vertex.</td></tr><tr><th>UserAttribute5</th><td>User attribute 5 information of vertex.</td></tr><tr><th>UserAttribute6</th><td>User attribute 6 information of vertex.</td></tr><tr><th>UserAttribute7</th><td>User attribute 7 information of vertex.</td></tr><tr><th>UserAttribute8</th><td>User attribute 8 information of vertex.</td></tr><tr><th>UserAttribute9</th><td>User attribute 9 information of vertex.</td></tr><tr><th>UserAttribute10</th><td>User attribute 10 information of vertex.</td></tr><tr><th>UserAttribute11</th><td>User attribute 11 information of vertex.</td></tr><tr><th>Interleave</th><td>Interleave format information.</td></tr></table> 81 82<h2>Example Output</h2> 83<table> 84<tr> 85<td><pre> 86<ShaderCtr Name="ParticleDefaultShader"><br></strong> 87 <BinaryData>RFZMQgIAAABQBwAAPAsAAER...</BinaryData><br> 88 <ShaderKinds><br> 89 <ShaderKindCtr>VertexShader</ShaderKindCtr><br> 90 <ShaderKindCtr>GeometryShader</ShaderKindCtr><br> 91 </ShaderKinds><br> 92 <Descriptions><br> 93<strong> <ShaderProgramDescriptionCtr <br> 94 VertexShaderIndex="0" <br> 95 GeometryShaderIndex="1" <br> 96 MaxBoneCount="0" <br> 97 MaxVertexLightCount="0" <br> 98 VertexLightEndUniform="60" <br> 99 IsSupportingRigidSkinning="false" <br> 100 IsSupportingSmoothSkinning="false" <br> 101 IsSupportingHemiSphereLighting="false" <br> 102 IsSupportingVertexMorphShader="false" <br> 103 GeometryShaderMode="None"><br></strong> 104 <Symbols><br> 105 <Vector4ShaderSymbolCtr Name="ShaderSymbol_1" IsEnabled="true"><br> 106 <Vector4Xml X="1" Y="2" Z="3" W="4" /><br> 107 </Vector4ShaderSymbolCtr><br> 108 <BoolShaderSymbolCtr Name="ShaderSymbol_1" IsEnabled="true"><br> 109 <boolean>true</boolean><br> 110 </BoolShaderSymbolCtr><br> 111 </Symbols><br> 112 <AttributeSymbols><br> 113 <AttributeSymbolCtr Usage="Position" Name="aPosition" /><br> 114 <AttributeSymbolCtr Usage="Normal" Name="aNormal" /><br> 115 <AttributeSymbolCtr Usage="Tangent" Name="aTangent" /><br> 116 <AttributeSymbolCtr Usage="Color" Name="aColor" /><br> 117 <AttributeSymbolCtr Usage="TextureCoordinate0" Name="aTexCoord0" /><br> 118 <AttributeSymbolCtr Usage="TextureCoordinate1" Name="aTexCoord1" /><br> 119 <AttributeSymbolCtr Usage="TextureCoordinate2" Name="aTexCoord2" /><br> 120 <AttributeSymbolCtr Usage="BoneIndex" Name="aBoneIndex" /><br> 121 <AttributeSymbolCtr Usage="BoneWeight" Name="aBoneWeight" /><br> 122 <AttributeSymbolCtr Usage="UserAttribute0" Name="aUserAttribute0" /><br> 123 <AttributeSymbolCtr Usage="UserAttribute1" Name="aUserAttribute1" /><br> 124 <AttributeSymbolCtr Usage="UserAttribute2" Name="aUserAttribute2" /><br> 125 </AttributeSymbols><br><strong> 126 </ShaderProgramDescriptionCtr><br></strong> 127 </Descriptions><br> 128<strong></ShaderCtr><br></strong> 129</pre></td> 130</tr></table> 131 132 <hr><p>CONFIDENTIAL</p></body> 133</html>