Microsoft DirectX 9.0

Vertex Shader Assembly

The syntax for a shader declaration is shown here.


Single Stream Example

This example uses a single stream. Data is provided to four registers, with position, normal, and two sets of texture coordinate data.

technique Assembly_Level_VertexShader
    pass P0
        // Vertex state
        VertexShaderConstant4[0]  = (matWorld);
        VertexShaderConstant4[4]  = (matViewProj);
        VertexShaderConstant1[13] = {vecLightColor};
        VertexShaderConstant1[16] = {vecLightDir};

        VertexShader =
           dcl_position  v0		
           dcl_normal    v3		
           dcl_texcoord  v7		
           dcl_texcoord  v8		
            m4x4 oPos, v0, c4  // Transform point to projection space.
            m3x3 r0,v3,c0      // Transform normal to world space, 
                               //   put result into r0.
            dp3  r0,r0,-c16    // Dot product against light, r0 has lighting
                               //   constant in x, y, and z components (r,g,b).
            mul  r0,r0,c13     // Modulate against diffuse light color.
            mov oD0,r0         // Put into diffuse color output.

© 2002 Microsoft Corporation. All rights reserved.