home *** CD-ROM | disk | FTP | other *** search
- !!FP1.0
- # NV_fragment_program generated by NVIDIA Cg compiler
- # cgc version 1.5.0001, build date Oct 15 2002 01:04:08
- # command line args: -profile fp30
- #vendor NVIDIA Corporation
- #version 1.0.1
- #profile fp30
- #program main
- #semantic main.skinColor_frontSpec
- #semantic main.skin_norm_sideSpec
- #semantic main.g_specular_colorShift
- #semantic main.g_blood_texture
- #semantic main.g_transmission_terms
- #semantic main.g_diffuse_Cube
- #semantic main.g_specular_Cube
- #semantic main.g_nrmalize_Cube
- #semantic main.g_dappleProjection
- #semantic main.g_hilight_Cube
- #semantic main.g_oiliness
- #var float4 v2f.skinColor_frontSpec : $vin.TEXCOORD0 : TEXCOORD0 : 0 : 1
- #var float3 v2f.worldEyeDir : $vin.TEXCOORD2 : TEXCOORD2 : 0 : 1
- #var float3 v2f.worldTanMatrixX : $vin.TEXCOORD5 : TEXCOORD5 : 0 : 1
- #var float3 v2f.worldTanMatrixY : $vin.TEXCOORD6 : TEXCOORD6 : 0 : 1
- #var float3 v2f.worldTanMatrixZ : $vin.TEXCOORD7 : TEXCOORD7 : 0 : 1
- #var float4 v2f.SkinSilouetteVec : $vin.TEXCOORD3 : TEXCOORD3 : 0 : 1
- #var samplerRECT skinColor_frontSpec : : texunit 0 : 1 : 1
- #var samplerRECT skin_norm_sideSpec : : texunit 1 : 2 : 1
- #var samplerRECT g_specular_colorShift : : texunit 2 : 3 : 1
- #var samplerRECT g_blood_texture : : texunit 3 : 4 : 1
- #var samplerRECT g_transmission_terms : : texunit 4 : 5 : 1
- #var samplerCUBE g_diffuse_Cube : : texunit 5 : 6 : 1
- #var samplerCUBE g_specular_Cube : : texunit 6 : 7 : 1
- #var samplerCUBE g_nrmalize_Cube : : texunit 7 : 8 : 1
- #var samplerRECT g_dappleProjection : : texunit 8 : 9 : 1
- #var samplerCUBE g_hilight_Cube : : texunit 9 : 10 : 1
- #var float2 g_oiliness : : : 11 : 1
- #var half4 COL : $vout.COLOR : COLOR : -1 : 1
-
- DEFINE LUMINANCE = {0.299, 0.587, 0.114, 0.0};
- DECLARE g_oiliness;
-
- ### 1 ###
- TEX H0, f[TEX0], TEX1, 2D; # store range-compressed normal (and side spec) in H1 (t0)
- TEX H1, f[TEX0], TEX0, 2D; # store skin color in H3 (t1)
-
- MOVH H2.x, g_oiliness.y;
- MULX H0.xy, H0, H2.x;
- TEX H0, H0, TEX7, CUBE;
-
- ### 2 ###
- MOVH H3, f[TEX5]; # (core)
- DP3X H2.x, H0, H3; # (1.AB.xyz)
-
- ### 3 ###
- MOVH H3, f[TEX6]; # (core)
- DP3X H2.y, H0, H3; # (1.AB.xyz)
-
- ### 4 ###
- MOVH H3, f[TEX7]; # (core)
- DP3X H2.z, H0, H3; # H2 now contains worldNormal (1.AB.xyz)
-
- ### 5 ###
- MOVH H0.xyz, f[TEX2]; # store v2f.world_V in H1 (core)
- MULX H3.xyz, -H2, -2; # (1.AB.xyz)
- DP3X H2.w, H0, H2; # H2.w = dot(Normal, View) (1.CD.xyzw)
- MADX H3.xyz, -H3, H2.w, H0; # H3 = reflection vector (2.ABCD.xyz)
-
- ### 6
- TEX H0.xyz, H2, TEX5, CUBE; # diffuse lighting (t0)
- TEX H2, H2, TEX6, CUBE; # side specular (t1)
- MULX H0.xyz, H0, H1; # skin diffuse*diffuse color (1.AB.xyz)
- MULX H2, H2, H1.w; # side_spec*side_spec term (H0.w is the side_spec term) (1.CD.xyzw)
-
- ### 7
- MOVH H1.xyz, f[TEX3]; # copy ndotv (H1.w is the spec map) (core)
- MULX H0, H0, H1.x; # (1.AB.xyzw)
- MADX H0, H2, H1.y, H0; # diffuse + side_spec (H2 avail) (2.ABCD.xyzw)
-
- ### 8
- TEX H2, f[TEX2], TEX9, CUBE; # fetch hilight (t0)
- TEX H3, H3, TEX6, CUBE; # fetch direct specular (t1)
- MULX H2.xyz, H2, H1.y; # hilight by facing ratio (1.AB.xyz)
- MULX H3, H3, H1.w; # (1.CD.xyzw)
- MULX H2.xyz, H2, H1.x; # (2.AB.xyz)
-
- ### 9
- MOVH H3.w, g_oiliness.x;
- MULX H3.xyz, H3, 0.02; # scale the oiliness
- MADH H0, H3, H3.w, H0; # scale specular add diffuse (core)
- MULX H2.xyz, H2, 0.7; # 0.7*hilight (1.AB.xyz)
-
- ### 10
- TEX H3, f[TEX0], TEX2, 2D; # hilight attenuation (t0)
- MADX H0.xyz, H2, H3.x, H0; # attenuate hilight (1.ABCD.xyz)
- MULX H2.w, H2.w, H3.x; # attenuate haze (1.AB.w
- ADDX o[COLH], H0, H2.w; # add haze (2.ABCD.xyzw)
-
- END
-
- # End of program
-
-
-
-
-
-