[Bf-blender-cvs] [a7ad2dea62b] master: Fix T97394: single points are brighter than stroke in 3D viewport

Eimear Crotty noreply at git.blender.org
Thu Dec 22 14:28:59 CET 2022


Commit: a7ad2dea62b660dcac03d3aeffd7b63b03d4da8c
Author: Eimear Crotty
Date:   Thu Dec 22 14:22:39 2022 +0100
Branches: master
https://developer.blender.org/rBa7ad2dea62b660dcac03d3aeffd7b63b03d4da8c

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

===================================================================

M	source/blender/gpu/shaders/gpu_shader_point_uniform_color_aa_frag.glsl
M	source/blender/gpu/shaders/infos/gpu_shader_3D_point_info.hh

===================================================================

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)



More information about the Bf-blender-cvs mailing list