FsUpscale.frag.glsl 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Copyright (C) 2009-2017, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #include "shaders/Common.glsl"
  6. #include "shaders/Functions.glsl"
  7. #define BLUE_NOISE 1
  8. layout(location = 0) in vec2 in_uv;
  9. layout(location = 0) out vec4 out_color;
  10. layout(ANKI_TEX_BINDING(0, 0)) uniform sampler2D u_depthFullTex;
  11. layout(ANKI_TEX_BINDING(0, 1)) uniform sampler2D u_depthHalfTex;
  12. layout(ANKI_TEX_BINDING(0, 2)) uniform sampler2D u_fsRt;
  13. #if BLUE_NOISE
  14. layout(ANKI_TEX_BINDING(0, 3)) uniform sampler2DArray u_noiseTex;
  15. #endif
  16. layout(ANKI_UBO_BINDING(0, 0)) uniform u0_
  17. {
  18. vec4 u_linearizeCfPad2;
  19. };
  20. void main()
  21. {
  22. out_color =
  23. bilateralUpsample(u_depthFullTex, u_depthHalfTex, u_fsRt, 1.0 / vec2(SRC_SIZE), in_uv, u_linearizeCfPad2.xy);
  24. #if BLUE_NOISE
  25. vec3 blueNoise = texture(u_noiseTex, vec3(FB_SIZE / vec2(NOISE_TEX_SIZE) * in_uv, 0.0), 0.0).rgb;
  26. blueNoise = blueNoise * 2.0 - 1.0;
  27. blueNoise = sign(blueNoise) * (1.0 - sqrt(1.0 - abs(blueNoise)));
  28. out_color.rgb += blueNoise / 32.0;
  29. #endif
  30. }