struct vertexOut { float4 HPosition : POSITION; float4 TexCoord : TEXCOORD0; float3 LightVec : TEXCOORD1; float3 EyeVec : TEXCOORD2; float3 WorldNormal : TEXCOORD3; float3 WorldView : TEXCOORD4; }; struct pixelOut { float4 col : COLOR; }; pixelOut main(vertexOut IN, uniform sampler2D Texture) { pixelOut OUT; half SpecExpon = 200; float4 AmbiColor = { 0.5, 0.5, 0.5, 1.0 }; float4 LightColor = { 1, 1, 1, 1 }; float4 diffuse_color = tex2D (Texture, IN.TexCoord.xy); half3 Ln = normalize (IN.LightVec); half3 Nn = normalize (IN.WorldNormal); half3 Vn = normalize (IN.WorldView); half3 Hn = normalize (Ln + Vn); half ldn = dot (Ln, Nn); half hdn = dot (Hn, Nn); half4 litV = lit (ldn, hdn, SpecExpon); //half4 diffContrib = glstate.material.diffuse * (litV.y * LightColor + glstate.lightmodel.ambient); //half4 specContrib = litV.y * litV.z * LightColor; //half4 result = diffContrib + specContrib; half4 result = diffuse_color * litV.y + LightColor * litV.z; // half4 result = AmbiColor + glstate.material.diffuse * litV.y + LightColor * litV.z; OUT.col = result; return OUT; }