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-11 17:18:55 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-02-11 17:19:04 +0300
commit804e90b42d728ecb1073af8d0bae15a91b13a469 (patch)
tree309de25d99c92286b10c9d27e547fd43a69299c1 /source/blender/draw/engines/workbench/shaders
parent58cdab8b9759dd59b55895f2f76b9624addbb324 (diff)
DRW: Color Management improvement
Reviewed By: brecht sergey jbakker Differential Revision: http://developer.blender.org/D6729
Diffstat (limited to 'source/blender/draw/engines/workbench/shaders')
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_background_lib.glsl5
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl5
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_deferred_background_frag.glsl14
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_forward_composite_frag.glsl16
4 files changed, 5 insertions, 35 deletions
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_background_lib.glsl b/source/blender/draw/engines/workbench/shaders/workbench_background_lib.glsl
deleted file mode 100644
index 3ac220aee59..00000000000
--- a/source/blender/draw/engines/workbench/shaders/workbench_background_lib.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-vec3 background_color(WorldData world_data, float y)
-{
- return mix(world_data.background_color_low, world_data.background_color_high, y).xyz +
- (world_data.background_dither_factor * bayer_dither_noise());
-}
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl b/source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl
index f60eca24821..0c984b094d3 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl
@@ -5,17 +5,12 @@ struct LightData {
};
struct WorldData {
- vec4 background_color_low;
- vec4 background_color_high;
vec4 object_outline_color;
vec4 shadow_direction_vs;
LightData lights[4];
vec4 ambient_color;
int num_lights;
int matcap_orientation;
- float background_alpha;
float curvature_ridge;
float curvature_valley;
- float background_dither_factor;
- int pad[2];
};
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_deferred_background_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_deferred_background_frag.glsl
index 45ebf09d623..22fa2babbbf 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_deferred_background_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_deferred_background_frag.glsl
@@ -13,11 +13,10 @@ layout(std140) uniform world_block
void main()
{
vec2 uv_viewport = gl_FragCoord.xy * invertedViewportSize;
- vec3 background = background_color(world_data, uv_viewport.y);
#ifndef V3D_SHADING_OBJECT_OUTLINE
- fragColor = vec4(background, world_data.background_alpha);
+ fragColor = vec4(0.0);
#else /* !V3D_SHADING_OBJECT_OUTLINE */
@@ -25,16 +24,7 @@ void main()
uint object_id = texelFetch(objectId, texel, 0).r;
float object_outline = calculate_object_outline(objectId, texel, object_id);
- if (object_outline == 0.0) {
- fragColor = vec4(background, world_data.background_alpha);
- }
- else {
- /* Do correct alpha blending. */
- vec4 background_color = vec4(background, 1.0) * world_data.background_alpha;
- vec4 outline_color = vec4(world_data.object_outline_color.rgb, 1.0);
- fragColor = mix(outline_color, background_color, object_outline);
- fragColor = vec4(fragColor.rgb / max(1e-8, fragColor.a), fragColor.a);
- }
+ fragColor = vec4(world_data.object_outline_color.rgb, 1.0) * (1.0 - object_outline);
#endif /* !V3D_SHADING_OBJECT_OUTLINE */
}
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_forward_composite_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_forward_composite_frag.glsl
index 6915055e356..91e1ebabae4 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_forward_composite_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_forward_composite_frag.glsl
@@ -25,21 +25,11 @@ void main()
vec3 trans_color = trans_accum.rgb / clamp(trans_accum.a, 1e-4, 5e4);
-#ifndef ALPHA_COMPOSITE
- vec3 bg_color = background_color(world_data, uv_viewport.y);
-
- bg_color = (world_data.background_alpha == 0.0) ? trans_color : bg_color;
- vec4 color = mix(
- vec4(trans_color, 1.0), vec4(bg_color, world_data.background_alpha), trans_revealage);
+ fragColor = vec4(trans_color, 1.0 - trans_revealage);
-# ifdef V3D_SHADING_OBJECT_OUTLINE
+#ifdef V3D_SHADING_OBJECT_OUTLINE
uint object_id = texelFetch(objectId, texel, 0).r;
float outline = calculate_object_outline(objectId, texel, object_id);
- color = mix(vec4(world_data.object_outline_color.rgb, 1.0), color, outline);
-# endif
-
- fragColor = color;
-#else
- fragColor = vec4(trans_color, 1.0 - trans_revealage);
+ fragColor = mix(vec4(world_data.object_outline_color.rgb, 1.0), fragColor, outline);
#endif
}