home *** CD-ROM | disk | FTP | other *** search
/ NVIDIA Tech Demo: DAWN / NVIDIA_demo.iso / Dawn.exe / Disk1 / data1.cab / Program_Executable_Files / shaders / finalLeavesTranslTranspFR.fp30 < prev    next >
Encoding:
Text File  |  2003-02-11  |  3.2 KB  |  76 lines

  1. !!FP1.0
  2. ##handcode30
  3. # NV_fragment_program generated by NVIDIA Cg compiler
  4. # cgc version 1.5.0001, build date Oct 29 2002  01:02:54
  5. # command line args: -profile fp30
  6. #vendor NVIDIA Corporation
  7. #version 1.0.1
  8. #profile fp30
  9. #program main
  10. #semantic main.diffCol
  11. #semantic main.normalMap
  12. #semantic main.translucenceMap
  13. #semantic main.g_dappleProjection
  14. #semantic main.g_diffuse_Cube
  15. #semantic main.g_specular_Cube
  16. #semantic main.g_nrmalize_Cube
  17. #semantic main.g_hilight_Cube
  18. #var float4 v2f.diffCol : $vin.TEX0 : TEX0 : 0 : 1
  19. #var float3 v2f.worldEyeDir : $vin.TEX1 : TEX1 : 0 : 1
  20. #var float3 v2f.worldTanMatrixX : $vin.TEX5 : TEX5 : 0 : 1
  21. #var float3 v2f.worldTanMatrixY : $vin.TEX6 : TEX6 : 0 : 1
  22. #var float3 v2f.worldTanMatrixZ : $vin.TEX7 : TEX7 : 0 : 1
  23. #var float4 v2f.SkinSilouetteVec : $vin.TEX2 : TEX2 : 0 : 1
  24. #var sampler2D diffCol :  : texunit 0 : 1 : 1
  25. #var sampler2D normalMap :  : texunit 1 : 2 : 1
  26. #var sampler2D translucenceMap :  : texunit 2 : 3 : 1
  27. #var sampler2D g_dappleProjection :  : texunit 3 : 4 : 1
  28. #var samplerCUBE g_diffuse_Cube   :  : texunit 4 : 5 : 1
  29. #var samplerCUBE g_specular_Cube  :  : texunit 5 : 6 : 1
  30. #var samplerCUBE g_nrmalize_Cube  :  : texunit 6 : 7 : 1
  31. #var samplerCUBE g_hilight_Cube   :  : texunit 7 : 8 : 1
  32. #var half4 COL : $vout.COL : COL : -1 : 1
  33.  
  34. ############################################################################################
  35. #  Hand writeen ASM                                                                        #
  36. ############################################################################################
  37. TEX H0, f[TEX0], TEX1, 2D;                  # store range-compressed normal in H0
  38. TEX H1, f[TEX1], TEX7, CUBE;                # Hilight
  39.  
  40. MOVH H3, f[TEX5];
  41. DP3X H2.x, H0, H3;
  42. MOVH H3, f[TEX6];
  43. DP3X H2.y, H0, H3;
  44. MOVH H3, f[TEX7];
  45. DP3X H2.z, H0, H3;                          # H2 now contains worldNormal - extinguish
  46.  
  47. MOVH H0, f[TEX1];                           # store v2f.world_V in H1
  48. DP3X H2.w, H0, H2;                          # H2.w = dot(Normal, View)
  49. MULX H2.xyz,-H2, -2;                        # twice the normal
  50. MADX H3.xyz, -H2, H2.w, H0;                 # H3 = -2*dot(H0, H2)*H2 + H0  = reflection vector.  Normal doesn't need to be fixed, because it's uniformly scaled
  51.  
  52. TEX H0, H2, TEX4, CUBE;                     # diffuse lighting
  53. TEX H2, f[TEX0], TEX2, 2D;                  # translucence
  54. MOVH o[COLH].w, H2.x;
  55. MULX H2.y, H2.y, 0.5;                       # 0.3*translTerm (combiner 1)
  56. MADX H0, H1, H2.y, H0;                      # cube_diffuse + 0.3*translTerm*hilight(combiner 2)
  57. #H2 now available
  58.  
  59. TEX H3, H3, TEX5, CUBE;                     # direct specular lighting
  60. TEX H2, f[TEX0], TEX0, 2D;                  # fetch color
  61. MULX H0, H2, H0;                            # attenuate by diff color
  62. MULX H3, H3, 0.2;                           # 0.1*specular
  63.  
  64. #MADX o[COLH], H3, H2.w, H0;
  65. MADX H3, H3, H2.w, H0;
  66. ADDH o[COLH], H3, H1.w;
  67. END
  68.  
  69.  
  70.  
  71. ############################################################################################
  72. #  Hand writeen ASM end                                                                    #
  73. ############################################################################################
  74.  
  75. # End of program
  76.