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.
This commit is contained in:
parent
3bd6b80d65
commit
fa99d3e53b
Notes:
blender-bot
2023-05-22 12:40:41 +02:00
Referenced by issue #88449: Blender LTS: Maintenance Task 2.93 Referenced by issue #88449, Blender LTS: Maintenance Task 2.93 Referenced by issue #93073, M1 Solid Shadow slows down Referenced by issue #92807, Blender 3.0 - Planar Track - Only half of the image appears in the MovieClip Editor
|
@ -1219,10 +1219,11 @@ static void draw_plane_marker_image(Scene *scene,
|
|||
uint texCoord = GPU_vertformat_attr_add(
|
||||
imm_format, "texCoord", GPU_COMP_F32, 2, GPU_FETCH_FLOAT);
|
||||
|
||||
immBindBuiltinProgram(GPU_SHADER_2D_IMAGE_COLOR);
|
||||
/* Use 3D image for correct display of planar tracked images. */
|
||||
immBindBuiltinProgram(GPU_SHADER_3D_IMAGE_MODULATE_ALPHA);
|
||||
|
||||
immBindTexture("image", texture);
|
||||
immUniformColor4f(1.0f, 1.0f, 1.0f, plane_track->image_opacity);
|
||||
immUniform1f("alpha", plane_track->image_opacity);
|
||||
|
||||
immBegin(GPU_PRIM_TRI_FAN, 4);
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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;
|
||||
}
|
Loading…
Reference in New Issue