god_rays_combine.glslf 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #version GLSL_VERSION
  2. /*==============================================================================
  3. VARS
  4. ==============================================================================*/
  5. #var SAFARI_CANVAS_ALPHA_HACK 0
  6. /*============================================================================*/
  7. #include <precision_statement.glslf>
  8. #include <std.glsl>
  9. #include <color_util.glslf>
  10. #include <pack.glslf>
  11. uniform sampler2D u_main;
  12. uniform sampler2D u_god_rays;
  13. uniform float u_god_rays_intensity;
  14. uniform vec3 u_sun_intensity;
  15. /*==============================================================================
  16. SHADER INTERFACE
  17. ==============================================================================*/
  18. GLSL_IN vec2 v_texcoord;
  19. //------------------------------------------------------------------------------
  20. GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR;
  21. /*==============================================================================
  22. MAIN
  23. ==============================================================================*/
  24. void main(void) {
  25. vec4 main_col = GLSL_TEXTURE(u_main, v_texcoord);
  26. vec3 lcolorint = clamp(u_sun_intensity, 0.4, 0.8);
  27. srgb_to_lin(main_col.rgb);
  28. float god_rays = unpack_float(GLSL_TEXTURE(u_god_rays, v_texcoord));
  29. vec3 fin_color = main_col.rgb
  30. + u_god_rays_intensity * vec3(god_rays) * lcolorint;
  31. lin_to_srgb(fin_color);
  32. #if SAFARI_CANVAS_ALPHA_HACK
  33. GLSL_OUT_FRAG_COLOR = vec4(fin_color, max(0.01, main_col.a));
  34. #else
  35. GLSL_OUT_FRAG_COLOR = vec4(fin_color, main_col.a);
  36. #endif
  37. }