home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the 3D Game Programming Gurus / gurus.iso / DirectX / dx9sdkcp.exe / SDK (C++) / Samples / Media / bumpshader3.vsh < prev    next >
Encoding:
Text File  |  2002-11-12  |  779 b   |  47 lines

  1. vs.1.1
  2.  
  3. ;Constants 
  4. ;
  5. ;c0-c3 Object
  6. ;c4-c7 Projection
  7. ;c8-c11 Total matrix
  8. ;c12 - Light Direction (In World Space)
  9. ;
  10. ;Input
  11. ;
  12. ;V0 - Position
  13. ;V3 - Normal
  14. ;V7 - Texture 
  15. ;V8 - Tangent
  16.  
  17. dcl_position v0
  18. dcl_normal v3
  19. dcl_texcoord v7
  20. dcl_tangent v8
  21.  
  22. ;Take normal and binormal into worldspace first
  23. m3x3 r7.xyz,v8,c0
  24. mov r7.w, c32.w
  25. m3x3 r8.xyz ,v3,c0
  26. mov r8.w, c32.w
  27.  
  28. ;Cross product, flip orienation 
  29. ;may or may not be neccisary here 
  30. ;depending on the content
  31. mul r0,r7.zxyw,-r8.yzxw;
  32. mad r5,r7.yzxw,-r8.zxyw,-r0;
  33.  
  34. ;transform the light vector
  35. dp3 r6.x,r7,-c12
  36. dp3 r6.y,r5,-c12
  37. dp3 r6.z,r8,-c12
  38.  
  39. ;bias around 128
  40. add r6.xyz,r6.xyz,c32
  41. mul oD0.xyz,r6.xyz,c33
  42.  
  43. ;transform into projection space
  44. m4x4 oPos,v0,c8
  45. mov oT0.xy,v7
  46. mov oT1.xy,v7
  47.