From ed21506f2634a863c4ebfddf75754c9adb66ca3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Mon, 24 Feb 2020 01:19:08 +0100 Subject: Overlay: Remove Xray dithering noise We now use a better smoother technique that uses correct alpha blending. This is possible now that we render overlays in a separate buffer. --- source/blender/draw/engines/overlay/overlay_shader.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'source/blender/draw/engines/overlay/overlay_shader.c') diff --git a/source/blender/draw/engines/overlay/overlay_shader.c b/source/blender/draw/engines/overlay/overlay_shader.c index 6b8c5b23e58..d33ef239198 100644 --- a/source/blender/draw/engines/overlay/overlay_shader.c +++ b/source/blender/draw/engines/overlay/overlay_shader.c @@ -103,6 +103,7 @@ extern char datatoc_sculpt_mask_vert_glsl[]; extern char datatoc_volume_velocity_vert_glsl[]; extern char datatoc_wireframe_vert_glsl[]; extern char datatoc_wireframe_frag_glsl[]; +extern char datatoc_xray_fade_frag_glsl[]; extern char datatoc_gpu_shader_depth_only_frag_glsl[]; extern char datatoc_gpu_shader_point_varying_color_frag_glsl[]; @@ -179,6 +180,7 @@ typedef struct OVERLAY_Shaders { GPUShader *volume_velocity_sh; GPUShader *wireframe_select; GPUShader *wireframe; + GPUShader *xray_fade; } OVERLAY_Shaders; static struct { @@ -1265,6 +1267,18 @@ GPUShader *OVERLAY_shader_wireframe(void) return sh_data->wireframe; } +GPUShader *OVERLAY_shader_xray_fade(void) +{ + OVERLAY_Shaders *sh_data = &e_data.sh_data[0]; + if (!sh_data->xray_fade) { + sh_data->xray_fade = GPU_shader_create_from_arrays({ + .vert = (const char *[]){datatoc_common_fullscreen_vert_glsl, NULL}, + .frag = (const char *[]){datatoc_xray_fade_frag_glsl, NULL}, + }); + } + return sh_data->xray_fade; +} + static OVERLAY_InstanceFormats g_formats = {NULL}; OVERLAY_InstanceFormats *OVERLAY_shader_instance_formats_get(void) -- cgit v1.2.3