home *** CD-ROM | disk | FTP | other *** search
- ; Vertex Data:
- ; v0 - Position
- ; v1 - Normal
- ; v2 - uv1
- ;
- ; Constant Data:
- ; c0 - Constant Vector (0.0, 0.5, 1.0, 2.0)
- ; c1:c4 - Projection Matrix
- ; c5:c8 - ModelViewProj Matrix
- ; c5 - Light direction
- ; c6 - Light color
-
- vs.1.1
-
- // Transform position (all the way)...
- LT_MACRO_RIGIDTRANS4<oPos,v0,c5> // Rigid Transform...
- LT_MACRO_SKINBLENDTRANS4<r0,v0,v3,v4,r1,c25> // Skin Blended Transform (Position)...
- LT_MACRO_SKINTRANS4<oPos,r0,c1> // Skin Projection...
- LT_MACRO_SKINBLENDTRANS3<r6,v1,v3,v4,r1,c25> // Skin Blended Transform (Normal)...
-
- LT_MACRO_IFSKIN<dp3 r6.w, r6, r6> // Normalize the normal...
- LT_MACRO_IFSKIN<rsq r6.w, r6.w>
- LT_MACRO_IFSKIN<mul r6, r6, r6.w>
-
- // Do the Lighting...
- mov r5.xyz, c21.xyz
- mul r4.xyz, c24.xyz, r5.xyz // Ambiet Light first...
- add r4.xyz, r4.xyz, c23.xyz // Add in Emissive...
- LT_MACRO_IFRIGID<add r5, -v0, c9> // Rigid: Light Vector (Model Space)...
- LT_MACRO_IFSKIN<add r5, -r0, c12> // Skin: Light Vector (Camera Space)...
- LT_MACRO_LIGHT_ATT<r3.x,r5,v1,r6,r1,r2,c18>
- max r3.x, r3.x, c0.x
- mul r3.xyz, r3.xxx, c22.xyz // Material Attenuation...
- mad r4.xyz, r3.xyz, c15.xyz, r4.xyz // Add in light 1...
- LT_MACRO_IFRIGID<add r5, -v0, c10> // Rigid: Light Vector (Model Space)...
- LT_MACRO_IFSKIN<add r5, -r0, c13> // Skin: Light Vector (Camera Space)...
- LT_MACRO_LIGHT_ATT<r3.x,r5,v1,r6,r1,r2,c19>
- max r3.x, r3.x, c0.x
- mul r3.xyz, r3.xxx, c22.xyz // Material Attenuation...
- mad r4.xyz, r3.xyz, c16.xyz, r4.xyz // Add in light 2...
- LT_MACRO_IFRIGID<add r5, -v0, c11> // Rigid: Light Vector (Model Space)...
- LT_MACRO_IFSKIN<add r5, -r0, c14> // Skin: Light Vector (Camera Space)...
- LT_MACRO_LIGHT_ATT<r3.x,r5,v1,r6,r1,r2,c20>
- max r3.x, r3.x, c0.x
- mul r3.xyz, r3.xxx, c22.xyz // Material Attenuation...
- mad oD0.xyz, r3.xyz, c17.xyz, r4.xyz // Add in light 3...
-
- // Output UVs...
- mov oT0, v2
- mov oT1, v2
-