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,c18> // Skin Blended Transform...
- LT_MACRO_SKINTRANS4<oPos,r0,c1> // Skin Projection...
- LT_MACRO_SKINBLENDTRANS3<r6,v1,v3,v4,r1,c18> // 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...
- 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,c15> // Material Attenuation...
- max r3.x, r3.x, c0.x // We want one sided lighting...
- 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.y,r5,v1,r6,r1,r2,c16>
- max r3.y, r3.y, c0.x
- 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.z,r5,v1,r6,r1,r2,c17>
- max r3.z, r3.z, c0.x
-
- // Output UVs...
- dp3 oT0.x, r3.xyz, c0.zzz // Add in all three lights...
- mov oT1, v2
-
- // Vert Color...
- mov oD0, c0.zzzz
-
-