resolve.glsl 797 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /* clang-format off */
  2. [vertex]
  3. layout(location = 0) in highp vec4 vertex_attrib;
  4. /* clang-format on */
  5. layout(location = 4) in vec2 uv_in;
  6. out vec2 uv_interp;
  7. void main() {
  8. uv_interp = uv_in;
  9. gl_Position = vertex_attrib;
  10. }
  11. /* clang-format off */
  12. [fragment]
  13. #if !defined(GLES_OVER_GL)
  14. precision mediump float;
  15. #endif
  16. in vec2 uv_interp;
  17. /* clang-format on */
  18. uniform sampler2D source_specular; //texunit:0
  19. uniform sampler2D source_ssr; //texunit:1
  20. uniform vec2 pixel_size;
  21. in vec2 uv2_interp;
  22. layout(location = 0) out vec4 frag_color;
  23. void main() {
  24. vec4 specular = texture(source_specular, uv_interp);
  25. #ifdef USE_SSR
  26. vec4 ssr = textureLod(source_ssr, uv_interp, 0.0);
  27. specular.rgb = mix(specular.rgb, ssr.rgb * specular.a, ssr.a);
  28. #endif
  29. frag_color = vec4(specular.rgb, 1.0);
  30. }