diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-02-24 03:19:08 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-02-24 15:48:38 +0300 |
commit | ed21506f2634a863c4ebfddf75754c9adb66ca3b (patch) | |
tree | 2cb9c8d7f16303e00990b69a7034a09c1f4f463b /source/blender/draw/engines/overlay/overlay_shader.c | |
parent | fc81eb74e7f9bdce239d745bfbc0cbf581eb075d (diff) |
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.
Diffstat (limited to 'source/blender/draw/engines/overlay/overlay_shader.c')
-rw-r--r-- | source/blender/draw/engines/overlay/overlay_shader.c | 14 |
1 files changed, 14 insertions, 0 deletions
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) |