diff options
Diffstat (limited to 'source/blender/draw/modes/shaders/edit_mesh_overlay_mix_frag.glsl')
-rw-r--r-- | source/blender/draw/modes/shaders/edit_mesh_overlay_mix_frag.glsl | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/source/blender/draw/modes/shaders/edit_mesh_overlay_mix_frag.glsl b/source/blender/draw/modes/shaders/edit_mesh_overlay_mix_frag.glsl new file mode 100644 index 00000000000..8f94a105332 --- /dev/null +++ b/source/blender/draw/modes/shaders/edit_mesh_overlay_mix_frag.glsl @@ -0,0 +1,22 @@ + +out vec4 FragColor; + +uniform sampler2D wireColor; +uniform sampler2D wireDepth; +uniform sampler2D sceneDepth; +uniform float alpha; + +void main() +{ + ivec2 uv = ivec2(gl_FragCoord.xy); + float wire_depth = texelFetch(wireDepth, uv, 0).r; + float scene_depth = texelFetch(sceneDepth, uv, 0).r; + vec4 wire_color = texelFetch(wireColor, uv, 0).rgba; + + FragColor = wire_color; + + /* Modulate alpha if occluded */ + if (wire_depth > scene_depth) { + FragColor.a *= alpha; + } +} |