From a7ad2dea62b660dcac03d3aeffd7b63b03d4da8c Mon Sep 17 00:00:00 2001 From: Eimear Crotty Date: Thu, 22 Dec 2022 14:22:39 +0100 Subject: [PATCH] Fix T97394: single points are brighter than stroke in 3D viewport Convert 3D point shader fragment color from sRGB space to framebuffer space to match 3D line shader. Reviewed By: fclem Maniphest Tasks: T97394 Differential Revision: https://developer.blender.org/D16831 --- .../gpu/shaders/gpu_shader_point_uniform_color_aa_frag.glsl | 3 ++- source/blender/gpu/shaders/infos/gpu_shader_3D_point_info.hh | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/source/blender/gpu/shaders/gpu_shader_point_uniform_color_aa_frag.glsl b/source/blender/gpu/shaders/gpu_shader_point_uniform_color_aa_frag.glsl index fddd92b1174..a7d5294b8c4 100644 --- a/source/blender/gpu/shaders/gpu_shader_point_uniform_color_aa_frag.glsl +++ b/source/blender/gpu/shaders/gpu_shader_point_uniform_color_aa_frag.glsl @@ -1,3 +1,4 @@ +#pragma BLENDER_REQUIRE(gpu_shader_colorspace_lib.glsl) void main() { @@ -11,7 +12,7 @@ void main() * ... * dist = 0 at center of point */ - fragColor.rgb = color.rgb; + fragColor = blender_srgb_to_framebuffer_space(color); fragColor.a = mix(color.a, 0.0, smoothstep(radii[1], radii[0], dist)); if (fragColor.a == 0.0) { diff --git a/source/blender/gpu/shaders/infos/gpu_shader_3D_point_info.hh b/source/blender/gpu/shaders/infos/gpu_shader_3D_point_info.hh index 895787e4f1e..c71d7cf632a 100644 --- a/source/blender/gpu/shaders/infos/gpu_shader_3D_point_info.hh +++ b/source/blender/gpu/shaders/infos/gpu_shader_3D_point_info.hh @@ -37,6 +37,7 @@ GPU_SHADER_CREATE_INFO(gpu_shader_3D_point_uniform_size_uniform_color_aa) .push_constant(Type::FLOAT, "size") .vertex_source("gpu_shader_3D_point_uniform_size_aa_vert.glsl") .fragment_source("gpu_shader_point_uniform_color_aa_frag.glsl") + .additional_info("gpu_srgb_to_framebuffer_space") .do_static_compilation(true); GPU_SHADER_CREATE_INFO(gpu_shader_3D_point_uniform_size_uniform_color_aa_clipped)