diff options
author | Jeroen Bakker <jeroen@blender.org> | 2021-11-05 16:51:55 +0300 |
---|---|---|
committer | Philipp Oeser <info@graphics-engineer.com> | 2021-11-10 12:31:53 +0300 |
commit | fa99d3e53b19df5c07999a90115bf52ac7886dc3 (patch) | |
tree | caf63efcb66d84a0334b02d851fb56111fab3289 /source/blender/gpu | |
parent | 3bd6b80d65baa7d4b17a1e3c0ad6d96d2d2d0429 (diff) |
Fix T92807: Incorrect display planar tracking.
Issue introduced in {7e66616b7e15} where the shader was replaced with a
2d image shader. This patch reverts several commits that removed the 3d
image shader.
Diffstat (limited to 'source/blender/gpu')
-rw-r--r-- | source/blender/gpu/CMakeLists.txt | 1 | ||||
-rw-r--r-- | source/blender/gpu/GPU_shader.h | 9 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_shader_builtin.c | 7 | ||||
-rw-r--r-- | source/blender/gpu/shaders/gpu_shader_image_modulate_alpha_frag.glsl | 12 |
4 files changed, 28 insertions, 1 deletions
diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt index 2ff72266a64..89b9d071bf7 100644 --- a/source/blender/gpu/CMakeLists.txt +++ b/source/blender/gpu/CMakeLists.txt @@ -219,6 +219,7 @@ data_to_c_simple(shaders/gpu_shader_image_frag.glsl SRC) data_to_c_simple(shaders/gpu_shader_image_desaturate_frag.glsl SRC) data_to_c_simple(shaders/gpu_shader_image_overlays_merge_frag.glsl SRC) data_to_c_simple(shaders/gpu_shader_image_overlays_stereo_merge_frag.glsl SRC) +data_to_c_simple(shaders/gpu_shader_image_modulate_alpha_frag.glsl SRC) data_to_c_simple(shaders/gpu_shader_image_shuffle_color_frag.glsl SRC) data_to_c_simple(shaders/gpu_shader_image_color_frag.glsl SRC) data_to_c_simple(shaders/gpu_shader_image_varying_color_frag.glsl SRC) diff --git a/source/blender/gpu/GPU_shader.h b/source/blender/gpu/GPU_shader.h index 484ab95c980..cb61c6d89f1 100644 --- a/source/blender/gpu/GPU_shader.h +++ b/source/blender/gpu/GPU_shader.h @@ -249,6 +249,15 @@ typedef enum eGPUBuiltinShader { GPU_SHADER_2D_IMAGE_OVERLAYS_MERGE, GPU_SHADER_2D_IMAGE_OVERLAYS_STEREO_MERGE, GPU_SHADER_2D_IMAGE_SHUFFLE_COLOR, + /** + * Draw texture with alpha. Take a 3D position and a 2D texture coordinate for each vertex. + * + * \param alpha: uniform float + * \param image: uniform sampler2D + * \param texCoord: in vec2 + * \param pos: in vec3 + */ + GPU_SHADER_3D_IMAGE_MODULATE_ALPHA, /* points */ /** * Draw round points with a hardcoded size. diff --git a/source/blender/gpu/intern/gpu_shader_builtin.c b/source/blender/gpu/intern/gpu_shader_builtin.c index c5122b76001..d8fccabeea7 100644 --- a/source/blender/gpu/intern/gpu_shader_builtin.c +++ b/source/blender/gpu/intern/gpu_shader_builtin.c @@ -77,6 +77,7 @@ extern char datatoc_gpu_shader_image_overlays_merge_frag_glsl[]; extern char datatoc_gpu_shader_image_overlays_stereo_merge_frag_glsl[]; extern char datatoc_gpu_shader_image_color_frag_glsl[]; extern char datatoc_gpu_shader_image_desaturate_frag_glsl[]; +extern char datatoc_gpu_shader_image_modulate_alpha_frag_glsl[]; extern char datatoc_gpu_shader_image_varying_color_frag_glsl[]; extern char datatoc_gpu_shader_image_shuffle_color_frag_glsl[]; extern char datatoc_gpu_shader_3D_vert_glsl[]; @@ -178,7 +179,11 @@ static const GPUShaderStages builtin_shader_stages[GPU_SHADER_BUILTIN_LEN] = { .vert = datatoc_gpu_shader_3D_normal_vert_glsl, .frag = datatoc_gpu_shader_simple_lighting_frag_glsl, }, - + [GPU_SHADER_3D_IMAGE_MODULATE_ALPHA] = + { + .vert = datatoc_gpu_shader_3D_image_vert_glsl, + .frag = datatoc_gpu_shader_image_modulate_alpha_frag_glsl, + }, [GPU_SHADER_2D_CHECKER] = { .name = "GPU_SHADER_2D_CHECKER", diff --git a/source/blender/gpu/shaders/gpu_shader_image_modulate_alpha_frag.glsl b/source/blender/gpu/shaders/gpu_shader_image_modulate_alpha_frag.glsl new file mode 100644 index 00000000000..613352b4ac8 --- /dev/null +++ b/source/blender/gpu/shaders/gpu_shader_image_modulate_alpha_frag.glsl @@ -0,0 +1,12 @@ + +in vec2 texCoord_interp; +out vec4 fragColor; + +uniform float alpha; +uniform sampler2D image; + +void main() +{ + fragColor = texture(image, texCoord_interp); + fragColor.a *= alpha; +} |