Shader.Frag 738 B

12345678910111213141516171819202122232425262728
  1. uniform vec4 DiffuseColor;
  2. uniform vec4 AmbientColor;
  3. uniform float LightIntensity;
  4. uniform sampler2D MainTexture;
  5. varying vec3 Normal;
  6. varying vec3 LightVector;
  7. varying vec3 CameraVector;
  8. varying vec2 Texcoord;
  9. void main(void)
  10. {
  11. vec4 TextureContrib = texture2D(MainTexture, Texcoord);
  12. vec4 DiffuseContrib = clamp(DiffuseColor * dot(LightVector, Normal), 0.0, 1.0);
  13. float SpecPower = 8.0;
  14. float SpecMult = 2.0;
  15. vec3 reflect_vec = reflect(CameraVector, -Normal);
  16. float Temp = max(dot(reflect_vec, LightVector), 0.0);
  17. float SpecContrib = pow(Temp, SpecPower);
  18. SpecContrib = SpecMult * clamp(SpecContrib, 0.0, 0.95);
  19. gl_FragColor = TextureContrib * LightIntensity * (AmbientColor + DiffuseContrib + SpecContrib);
  20. }