Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2020-02-24 03:19:08 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-02-24 15:48:38 +0300
commited21506f2634a863c4ebfddf75754c9adb66ca3b (patch)
tree2cb9c8d7f16303e00990b69a7034a09c1f4f463b /source/blender/draw/engines/overlay/overlay_shader.c
parentfc81eb74e7f9bdce239d745bfbc0cbf581eb075d (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.c14
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)