CesiumMilkTruck3.frag 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. precision highp float;
  2. uniform vec4 u_diffuse;
  3. uniform vec4 u_specular;
  4. uniform float u_shininess;
  5. uniform float u_transparency;
  6. uniform vec3 u_light0Color;
  7. varying vec3 v_position;
  8. varying vec3 v_normal;
  9. void main(void) {
  10. vec3 normal = normalize(v_normal);
  11. vec4 diffuse = u_diffuse;
  12. vec3 diffuseLight = vec3(0.0, 0.0, 0.0);
  13. vec3 specular = u_specular.rgb;
  14. vec3 specularLight = vec3(0.0, 0.0, 0.0);
  15. vec3 ambient = diffuse.rgb;
  16. vec3 viewDir = -normalize(v_position);
  17. vec3 ambientLight = vec3(0.0, 0.0, 0.0);
  18. {
  19. ambientLight += u_light0Color;
  20. }
  21. vec3 l = vec3(0.0, 0.0, 1.0);
  22. diffuseLight += vec3(1.0, 1.0, 1.0) * max(dot(normal, l), 0.);
  23. vec3 reflectDir = reflect(-l, normal);
  24. float specularIntensity = max(0., pow(max(dot(reflectDir, viewDir), 0.), u_shininess));
  25. specularLight += vec3(1.0, 1.0, 1.0) * specularIntensity;
  26. vec3 color = vec3(0.0, 0.0, 0.0);
  27. color += diffuse.rgb * diffuseLight;
  28. color += specular * specularLight;
  29. color += ambient * ambientLight;
  30. gl_FragColor = vec4(color * diffuse.a * u_transparency, diffuse.a * u_transparency);
  31. }