home *** CD-ROM | disk | FTP | other *** search
/ CyberMycha 2008 January / Cybermycha 1_2008.iso / Data.cab / _002014675F4940A9826D4BEE1702DC9A < prev    next >
Encoding:
Text File  |  2004-07-22  |  1.7 KB  |  69 lines

  1.  
  2. regc( 0, "TFACTOR" )
  3. regc4f( 3, %dirtcolor_r, %dirtcolor_g, %dirtcolor_b, 0.0 )
  4. regc4f( 4, %dirtsnow, %dirtgravel, %dirtmud, 0.0 )
  5. regc4f( 5, %daycolor_r, %daycolor_g, %daycolor_b, %daycolor_a )
  6. regc4f( 6, %ambient_r, %ambient_g, %ambient_b, %ambient_a )
  7.  
  8. pshader("
  9.  
  10. ps_1_4
  11.  
  12. #include <cardef.h>
  13.  
  14. #define    DirtLevel    c0.a
  15. #define DirtColor    c3
  16. #define    DirtType    c4
  17. #define    DayColor    c5
  18.  
  19. #define    Diffuse        v0.a
  20. #define SpotDiffuse v0
  21. #define Specular    v1
  22. #define Fresnel        v1.a
  23. #define Ambient     c6
  24.  
  25.     def     c7, 0, WATERDEEP, SHADOWSMUL, SOFTSHADOWS
  26. texld r1, t0      ;Dirt
  27. texld r2, t2      ;ColorMap
  28. texld r3, t3    ; Clouds
  29. texld r4, t4    ; Cubemap
  30.  
  31.     dp3_sat    r1.rgb, DirtType, r1
  32.  
  33.     mul_sat r1, r1.b, DirtLevel           ; dirtmask
  34.  
  35.     mad_x2_sat r2, r2.a, 1-r3.a, c7.a      ;  shadows  + SOFTSHADOWS * (SHADOWSMUL=2)
  36.  
  37.     mul r4, r4, 1-r1
  38.  
  39. phase
  40. texld r0, t0
  41. // r1 - dirtmask
  42. // r2 - shadows (przemnozone przez 2(SHADOWSMUL))
  43. // r3 - empty
  44. // r4 - Cubemap*dirtmask
  45.  
  46.     mul r3.rgb, r0_x2.a, 1-r1.b   ; specularmask
  47.     +mul_sat    r1.a, r2.b, Diffuse
  48.  
  49.     lrp r0.rgb, r1.b, DirtColor, r0
  50.     +mad_sat r4.a, Fresnel, r3.b, r0_bx2.a   ; cubemap mask
  51.  
  52.     mul r4.rgb, r4, r4.a                ; cubemap
  53.     +mul_sat r3.a, r3.b, r2.b        ; final specular mask
  54.  
  55.     mad_sat r3.rgb, r3.a, Specular, r4                ; specular+cubemap
  56.     +mad_sat    r1.a, r1.a, Ambient.b, Ambient.a    ; final diffuse
  57.  
  58.     mad_sat r3, r0, r1.a, r3        ;   color*diffuse+specular+cubemap
  59. #if VS_SPOTLIGHTS
  60.     mul r1.rgb, r0, SpotDiffuse
  61.     mad r0.rgb, r3, DayColor, r1
  62.     +mov r0.a, c7.g    
  63. #else
  64.     mul r0.rgb, r3, DayColor
  65.     +mov r0.a, c7.g        
  66. #endif
  67. ")
  68.  
  69.