ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libgender/fsh.cg
Revision: 1.23
Committed: Thu Oct 21 15:46:38 2004 UTC (19 years, 7 months ago) by root
Branch: MAIN
Changes since 1.22: +1 -0 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.2 struct vertexOut {
2 root 1.8 float4 HPosition : POSITION;
3     float4 TexCoord : TEXCOORD0;
4     float3 LightVec : TEXCOORD1;
5     float3 EyeVec : TEXCOORD2;
6     float3 WorldNormal : TEXCOORD3;
7 root 1.12 float3 WorldView : TEXCOORD4;
8 root 1.16 float3 test1 : TEXCOORD5;
9     float3 test2 : TEXCOORD6;
10 root 1.2 };
11 root 1.1
12     struct pixelOut {
13 root 1.22 float4 col : COLOR;
14 root 1.23 float depth : DEPTH;
15 root 1.1 };
16 root 1.3
17 root 1.15 pixelOut main(vertexOut IN, uniform sampler2D Texture)
18 root 1.1 {
19 root 1.12 pixelOut OUT;
20 root 1.8
21 root 1.12 half SpecExpon = 200;
22 root 1.5 float4 LightColor = { 1, 1, 1, 1 };
23 root 1.15 float4 diffuse_color = tex2D (Texture, IN.TexCoord.xy);
24 root 1.3
25 root 1.12 half3 Ln = normalize (IN.LightVec);
26     half3 Nn = normalize (IN.WorldNormal);
27     half3 Vn = normalize (IN.WorldView);
28    
29     half3 Hn = normalize (Ln + Vn);
30     half ldn = dot (Ln, Nn);
31     half hdn = dot (Hn, Nn);
32 root 1.8
33 root 1.22 half3 litV = lit (ldn, hdn, SpecExpon);
34     half3 diffContrib = diffuse_color * ((litV.y + 0.3) * LightColor + glstate.lightmodel.ambient);
35     half3 specContrib = litV.y * litV.z * LightColor;
36     half4 result = (diffContrib + specContrib).xyzx;
37     //half3 result = diffuse_color * litV.y + LightColor * litV.z;
38 root 1.8
39 root 1.5 OUT.col = result;
40 root 1.22 //float depth = IN.HPosition.z / IN.HPosition.w;
41     //OUT.depth = 0.5 * depth + 0.5;
42 root 1.9 return OUT;
43 root 1.1 }
44