home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2005 February / Gamestar_70_2005-02_dvd.iso / DVDStar / Editace / ogierinstall_103.exe / XRShader_SpecDiffuse.fp < prev    next >
Text File  |  2004-12-21  |  2KB  |  70 lines

  1. sbzfp.1.4;
  2.  
  3. /*»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*\
  4.     File:            Program for CXR_Shader::RenderShading_FP14
  5.  
  6.     Author:            Magnus H÷gdahl
  7.  
  8.     Copyright:        Starbreeze AB 2004
  9.  
  10.     Comments:
  11.  
  12.         tv0 = Mapping coordinates
  13.         tv1 = Tangent space light vector
  14.         tv2 = Projection map coordinates
  15.         tv3 = Half angle space row 0
  16.         tv4 = Half angle space row 1
  17.         tv5 = Half angle space row 2
  18.  
  19.         t0 = Normal
  20.         t1 = Diffuse
  21.         t2 = Cube normalize
  22.         t3 = Spec power
  23.         t4 = Projection
  24.  
  25. \*____________________________________________________________________________________________*/
  26.  
  27. // ----------------------------------
  28. // Phase 1
  29. passtc r1, t3, str;
  30. passtc r3, t4, str;
  31. passtc r5, t5, str;
  32. texld r0, t0, str;    // Load normal
  33. texld r2, t1, str;    // Load normalized light vector
  34.  
  35. dp3 r1.r, r0_bias_x2, r1;
  36. dp3 r1.g, r0_bias_x2, r3;
  37. dp3 r1.b, r0_bias_x2, r5;
  38. mov r3.rgb, r0_bias_x2;    // Texcoord for normal renormalization
  39. //mov r3.rgb, r0;    // Texcoord for normal renormalization
  40.  
  41. // ----------------------------------
  42. // Phase 2
  43.  
  44. texld r1, t0, str;        // Read diffuse
  45. texld r2, r3, str;    // Read normal
  46. //passtc r2, r3, str;
  47.  
  48. texld r3, r1, str;    // Read specular power
  49. passtc r0, r2, str;    // Normalized light vector
  50. passtc r5, t1, str;    // Light vector
  51. passtc r4, r4, str;    // Pass proj map
  52.  
  53. dp3 r5_sat.rgb, r5, r5;    // |LightVec|^2
  54.  
  55. dp3 r2_sat.rgb, r2_bias_x2, r0_bias_x2;// Normal * Lightvector
  56. mul r5.a, r5_comp.r, r5_comp.r;// Square
  57.  
  58. mul r2.rgb, r2, c0;    // Diff * DiffColor
  59.  
  60. mul r2_x2.rgb, r2, r1;    // Diff * DiffTex
  61. mul r2.a, r3.r, r1.a;    // SpecPower * SpecTex
  62.  
  63. mad r0_x4.rgb, r2.a, c1, r2;// Result = Diff + Spec * SpecColor
  64.  
  65. mul r0.rgb, r0, r5.a;    // Result *= (Attn * ProjMap)
  66. mov r0.a, r1.a;
  67.  
  68.  
  69.  
  70.