fs_sky.sc 726 B

1234567891011121314151617181920212223242526
  1. $input v_skyColor, v_screenPos, v_viewDir
  2. /*
  3. * Copyright 2017 Stanislav Pidhorskyi. All rights reserved.
  4. * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
  5. */
  6. uniform vec4 u_parameters; // x - sun size, y - sun bloom, z - exposition, w - time
  7. uniform vec4 u_sunDirection;
  8. uniform vec4 u_sunLuminance;
  9. #include "../common/common.sh"
  10. void main()
  11. {
  12. float size2 = u_parameters.x * u_parameters.x;
  13. vec3 lightDir = normalize(u_sunDirection.xyz);
  14. float dist = 2.0 * (1.0 - dot(normalize(v_viewDir), lightDir));
  15. float sun = exp(-dist/ u_parameters.y / size2) + step(dist, size2);
  16. float sun2 = min(sun * sun, 1.0);
  17. vec3 color = v_skyColor + sun2;
  18. color = toGamma(color);
  19. gl_FragColor = vec4(color, 1.0);
  20. }