colored.frag 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #ifdef OPENGL_ES
  2. precision highp float;
  3. #endif
  4. // Uniforms
  5. uniform vec4 u_diffuseColor; // Diffuse color
  6. uniform vec3 u_ambientColor; // Ambient color
  7. uniform vec3 u_lightColor; // Light color
  8. uniform vec3 u_lightDirection; // Light direction
  9. // Inputs
  10. varying vec3 v_normalVector; // Normal vector in view space.
  11. void main()
  12. {
  13. // Base color
  14. vec4 baseColor = u_diffuseColor;
  15. // Normalize the vectors.
  16. vec3 lightDirection = normalize(u_lightDirection);
  17. vec3 normalVector = normalize(v_normalVector);
  18. // Ambient
  19. vec3 ambientColor = baseColor.rgb * u_ambientColor;
  20. // Diffuse
  21. float attenuation = 1.0;
  22. float ddot = dot(normalVector, -lightDirection);
  23. float intensity = max(0.0, attenuation * ddot);
  24. vec3 diffuseColor = u_lightColor * baseColor.rgb * intensity;
  25. // Light the pixel
  26. gl_FragColor.a = baseColor.a;
  27. gl_FragColor.rgb = ambientColor + diffuseColor;
  28. }