frag.glsl 779 B

123456789101112131415161718192021222324252627282930313233343536
  1. #version 330
  2. uniform sampler2D LightTexture;
  3. uniform sampler2D DarkTexture;
  4. uniform float num_textures;
  5. in vec3 v_point;
  6. in vec3 v_unit_normal;
  7. in vec2 v_im_coords;
  8. in float v_opacity;
  9. out vec4 frag_color;
  10. #INSERT finalize_color.glsl
  11. const float dark_shift = 0.2;
  12. void main() {
  13. vec4 color = texture(LightTexture, v_im_coords);
  14. if(num_textures == 2.0){
  15. vec4 dark_color = texture(DarkTexture, v_im_coords);
  16. float dp = dot(
  17. normalize(light_position - v_point),
  18. v_unit_normal
  19. );
  20. float alpha = smoothstep(-dark_shift, dark_shift, dp);
  21. color = mix(dark_color, color, alpha);
  22. }
  23. frag_color = finalize_color(
  24. color,
  25. v_point,
  26. v_unit_normal
  27. );
  28. frag_color.a = v_opacity;
  29. }