halo.glslf 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #version GLSL_VERSION
  2. /*==============================================================================
  3. VARS
  4. ==============================================================================*/
  5. #var SKY_STARS 0
  6. #var WATER_EFFECTS 0
  7. #var DISABLE_FOG 0
  8. /*============================================================================*/
  9. #include <precision_statement.glslf>
  10. #include <std.glsl>
  11. uniform vec4 u_diffuse_color;
  12. uniform vec3 u_halo_rings_color;
  13. uniform vec3 u_halo_lines_color;
  14. uniform float u_halo_hardness;
  15. uniform float u_halo_size;
  16. #if SKY_STARS
  17. uniform vec3 u_sun_intensity;
  18. # if WATER_EFFECTS && !DISABLE_FOG
  19. uniform float u_halo_stars_blend;
  20. uniform float u_halo_stars_height;
  21. uniform float u_cam_water_depth;
  22. # endif
  23. #endif
  24. /*==============================================================================
  25. SHADER INTERFACE
  26. ==============================================================================*/
  27. #if SKY_STARS && WATER_EFFECTS && !DISABLE_FOG
  28. GLSL_IN vec4 v_position_world;
  29. #endif
  30. GLSL_IN vec2 v_texcoord;
  31. GLSL_IN float v_vertex_random;
  32. //------------------------------------------------------------------------------
  33. GLSL_OUT vec4 GLSL_OUT_FRAG_COLOR;
  34. /*==============================================================================
  35. INCLUDES
  36. ==============================================================================*/
  37. #include <color_util.glslf>
  38. #include <halo_color.glslf>
  39. /*==============================================================================
  40. MAIN
  41. ==============================================================================*/
  42. void main(void) {
  43. vec4 frag_color = halo_color();
  44. vec3 color = frag_color.rgb;
  45. float dist = frag_color.a;
  46. lin_to_srgb(color);
  47. premultiply_alpha(color, dist);
  48. GLSL_OUT_FRAG_COLOR = vec4(color, dist);
  49. }