co-maps/libs/shaders/GL/user_mark.fsh.glsl

33 lines
976 B
Text
Raw Permalink Normal View History

2025-11-22 13:58:55 +01:00
// Warning! Beware to use this shader. "discard" command may significally reduce performance.
// Unfortunately some CG algorithms cannot be implemented without discarding fragments from depth buffer.
layout (location = 0) in vec4 v_texCoords;
layout (location = 1) in vec4 v_maskColor;
layout (location = 0) out vec4 v_FragColor;
layout (binding = 0) uniform UBO
{
mat4 u_modelView;
mat4 u_projection;
mat4 u_pivotTransform;
vec2 u_contrastGamma;
float u_opacity;
float u_zScale;
float u_interpolation;
float u_isOutlinePass;
};
layout (binding = 1) uniform sampler2D u_colorTex;
void main()
{
vec4 color = texture(u_colorTex, v_texCoords.xy);
vec4 bgColor = texture(u_colorTex, v_texCoords.zw) * vec4(v_maskColor.xyz, 1.0);
vec4 finalColor = mix(color, mix(bgColor, color, color.a), bgColor.a);
finalColor.a = clamp(color.a + bgColor.a, 0.0, 1.0) * u_opacity * v_maskColor.w;
if (finalColor.a < 0.01)
discard;
v_FragColor = finalColor;
}