home *** CD-ROM | disk | FTP | other *** search
/ GameStar Special 2004 January / GSSH0104TT.iso / Extras / Tron20 / tron_tools.exe / TRON_Tools / Tools / RenderStyles / vs_basic_3light.vsh < prev    next >
Text File  |  2003-03-10  |  2KB  |  51 lines

  1. ; Vertex Data:
  2. ;   v0    -  Position
  3. ;   v1    -  Normal
  4. ;   v2    -  uv1
  5. ;
  6. ; Constant Data:
  7. ;   c0    -  Constant Vector (0.0, 0.5, 1.0, 2.0)
  8. ;   c1:c4 -  Projection Matrix
  9. ;   c5:c8 -  ModelViewProj Matrix
  10. ;   c5    -  Light direction
  11. ;   c6      -  Light color
  12.  
  13. vs.1.1
  14.  
  15. // Transform position (all the way)...
  16. LT_MACRO_RIGIDTRANS4<oPos,v0,c5>            // Rigid Transform...
  17. LT_MACRO_SKINBLENDTRANS4<r0,v0,v3,v4,r1,c25>        // Skin Blended Transform (Position)...
  18. LT_MACRO_SKINTRANS4<oPos,r0,c1>                // Skin Projection...
  19. LT_MACRO_SKINBLENDTRANS3<r6,v1,v3,v4,r1,c25>        // Skin Blended Transform (Normal)...
  20.  
  21. LT_MACRO_IFSKIN<dp3 r6.w, r6,  r6>            // Normalize the normal...
  22. LT_MACRO_IFSKIN<rsq r6.w, r6.w>
  23. LT_MACRO_IFSKIN<mul r6,   r6,  r6.w>
  24.  
  25. // Do the Lighting...
  26. mov r5.xyz,  c21.xyz
  27. mul r4.xyz,  c24.xyz, r5.xyz                // Ambiet Light first...
  28. add r4.xyz,  r4.xyz,  c23.xyz                // Add in Emissive...
  29. LT_MACRO_IFRIGID<add r5, -v0, c9>            // Rigid: Light Vector (Model Space)...
  30. LT_MACRO_IFSKIN<add r5, -r0, c12>            // Skin: Light Vector (Camera Space)...
  31. LT_MACRO_LIGHT_ATT<r3.x,r5,v1,r6,r1,r2,c18>
  32. max r3.x,    r3.x,    c0.x
  33. mul r3.xyz,  r3.xxx,  c22.xyz                // Material Attenuation...
  34. mad r4.xyz,  r3.xyz,  c15.xyz,    r4.xyz        // Add in light 1...
  35. LT_MACRO_IFRIGID<add r5, -v0, c10>            // Rigid: Light Vector (Model Space)...
  36. LT_MACRO_IFSKIN<add r5, -r0, c13>            // Skin: Light Vector (Camera Space)...
  37. LT_MACRO_LIGHT_ATT<r3.x,r5,v1,r6,r1,r2,c19>
  38. max r3.x,    r3.x,    c0.x
  39. mul r3.xyz,  r3.xxx,  c22.xyz                // Material Attenuation...
  40. mad r4.xyz,  r3.xyz,  c16.xyz,    r4.xyz        // Add in light 2...
  41. LT_MACRO_IFRIGID<add r5, -v0, c11>            // Rigid: Light Vector (Model Space)...
  42. LT_MACRO_IFSKIN<add r5, -r0, c14>            // Skin: Light Vector (Camera Space)...
  43. LT_MACRO_LIGHT_ATT<r3.x,r5,v1,r6,r1,r2,c20>
  44. max r3.x,    r3.x,    c0.x
  45. mul r3.xyz,  r3.xxx,  c22.xyz                // Material Attenuation...
  46. mad oD0.xyz, r3.xyz,  c17.xyz,    r4.xyz        // Add in light 3...
  47.  
  48. // Output UVs...
  49. mov  oT0,   v2
  50. mov  oT1,   v2
  51.