Files
orx/orx-jumpflood/src/shaders/glsl/sdf-smooth-union.frag
2023-01-12 16:35:30 +01:00

17 lines
467 B
GLSL

uniform sampler2D tex0; // signed distance
uniform sampler2D tex1; // signed distance
uniform float radius;
in vec2 v_texCoord0;
out vec4 o_color;
float opSmoothUnion(float d1, float d2, float k) {
float h = clamp(0.5 + 0.5*(d2-d1)/k, 0.0, 1.0);
return mix(d2, d1, h) - k*h*(1.0-h);
}
void main() {
float d0 = texture(tex0, v_texCoord0).r;
float d1 = texture(tex1, v_texCoord0).r;
o_color = vec4(opSmoothUnion(d0, d1, radius), 0.0, 0.0, 1.0);
}