[Bf-blender-cvs] [8d928732301] blender2.8: Workbench: See through

Jeroen Bakker noreply at git.blender.org
Wed May 23 10:56:26 CEST 2018


Commit: 8d928732301310998a1a13a11460594af1e08a0d
Author: Jeroen Bakker
Date:   Wed May 23 10:53:10 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB8d928732301310998a1a13a11460594af1e08a0d

Workbench: See through

 Unmultiplied the final color during compositing. Same as the revealage
buffer would do
Also use the DRW_STATE_ADDITION_FULL as it is aware of premultiplied
colors

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

M	release/scripts/startup/bl_ui/space_view3d.py
M	source/blender/blenloader/intern/versioning_280.c
M	source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl
M	source/blender/draw/engines/workbench/shaders/workbench_forward_composite_frag.glsl
M	source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
M	source/blender/draw/engines/workbench/workbench_data.c
M	source/blender/draw/engines/workbench/workbench_forward.c
M	source/blender/draw/engines/workbench/workbench_private.h
M	source/blender/editors/space_view3d/space_view3d.c
M	source/blender/makesdna/DNA_view3d_types.h
M	source/blender/makesrna/intern/rna_space.c

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

diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index b415afd9097..d6989365423 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -3517,9 +3517,6 @@ class VIEW3D_PT_shading(Panel):
 
             row = col.row()
             row.prop(shading, "show_see_through")
-            sub = row.row()
-            sub.active = shading.show_see_through
-            sub.prop(shading, "see_through_transparency", text="")
 
             row = col.row()
             row.active = not shading.show_see_through
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index ff3109f13e8..7bb20c38308 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -1461,19 +1461,6 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *main)
 			}
 		}
 
-		if (!DNA_struct_elem_find(fd->filesdna, "View3DShading", "float", "see_through_transparency")) {
-			for (bScreen *screen = main->screen.first; screen; screen = screen->id.next) {
-				for (ScrArea *sa = screen->areabase.first; sa; sa = sa->next) {
-					for (SpaceLink *sl = sa->spacedata.first; sl; sl = sl->next) {
-						if (sl->spacetype == SPACE_VIEW3D) {
-							View3D *v3d = (View3D *)sl;
-							v3d->shading.see_through_transparency = 0.3f;
-						}
-					}
-				}
-			}
-		}
-
 		for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
 			switch (scene->toolsettings->snap_mode) {
 				case 0: scene->toolsettings->snap_mode = SCE_SNAP_MODE_INCREMENT; break;
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 e72ee1c2eac..d0b1c580e5f 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl
@@ -8,5 +8,4 @@ struct WorldData {
 	vec4 background_color_low;
 	vec4 background_color_high;
 	vec4 object_outline_color;
-	float see_through_transparency;
 };
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 054e8d308cb..2d6f78082e3 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
@@ -27,7 +27,7 @@ void main()
 	if (object_id == NO_OBJECT_ID) {
 		color = vec4(background_color(world_data, uv_viewport.y), 0.0);
 	} else {
-		color = transparent_accum;
+		color = transparent_accum / transparent_accum.a;
 	}
 
 	fragColor = vec4(mix(world_data.object_outline_color.rgb, color.xyz, outline), 1.0);
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
index 78981522c18..6428ed44f6b 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
@@ -47,17 +47,8 @@ void main()
 	vec3 shaded_color = diffuse_color.rgb;
 #endif /* V3D_LIGHTING_STUDIO */
 
-	float alpha = world_data.see_through_transparency;
-#ifdef NORMAL_VIEWPORT_PASS_ENABLED
-	vec3 normal = normalize(normal_viewport);
-	float kr;
-	fresnel(vec3(0.0, 0.0, -1.0), normal, 1.22, kr);
-	alpha = mix(alpha, alpha+alpha, kr);
-#endif
-
+	float alpha = 0.1;
 	vec4 premultiplied = vec4(shaded_color.rgb * alpha, alpha);
-
 	transparentAccum = calculate_transparent_accum(premultiplied);
-
 }
 
diff --git a/source/blender/draw/engines/workbench/workbench_data.c b/source/blender/draw/engines/workbench/workbench_data.c
index c3671fa37b1..9f8023b38aa 100644
--- a/source/blender/draw/engines/workbench/workbench_data.c
+++ b/source/blender/draw/engines/workbench/workbench_data.c
@@ -20,7 +20,6 @@ void workbench_private_data_init(WORKBENCH_PrivateData *wpd)
 		copy_v3_fl(wpd->shading.single_color, 0.8f);
 		wpd->drawtype = OB_SOLID;
 		wpd->studio_light = BKE_studiolight_findindex(0);
-		wpd->shading.see_through_transparency = 0.3f;
 	}
 	wpd->shadow_multiplier = 1.0 - wpd->shading.shadow_intensity;
 
@@ -35,7 +34,6 @@ void workbench_private_data_init(WORKBENCH_PrivateData *wpd)
 
 	studiolight_update_world(wpd->studio_light, wd);
 
-	wd->see_through_transparency = wpd->shading.see_through_transparency;
 	copy_v3_v3(wd->object_outline_color, wpd->shading.object_outline_color);
 	wd->object_outline_color[3] = 1.0f;
 
diff --git a/source/blender/draw/engines/workbench/workbench_forward.c b/source/blender/draw/engines/workbench/workbench_forward.c
index 2de86bf4be1..72e01213fb9 100644
--- a/source/blender/draw/engines/workbench/workbench_forward.c
+++ b/source/blender/draw/engines/workbench/workbench_forward.c
@@ -263,10 +263,9 @@ void workbench_forward_engine_init(WORKBENCH_Data *vedata)
 	GPU_framebuffer_clear_color(fbl->depth_fb, clear_color);
 	DRW_stats_group_end();
 
-
 	/* Treansparecy Accum */
 	{
-		int state = DRW_STATE_WRITE_COLOR | DRW_STATE_ADDITIVE;// | DRW_STATE_CULL_BACK;
+		int state = DRW_STATE_WRITE_COLOR | DRW_STATE_ADDITIVE_FULL;
 		psl->transparent_accum_pass = DRW_pass_create("Transparent Accum", state);
 	}
 	/* Depth */
diff --git a/source/blender/draw/engines/workbench/workbench_private.h b/source/blender/draw/engines/workbench/workbench_private.h
index 714314a3d09..1da06e9a30d 100644
--- a/source/blender/draw/engines/workbench/workbench_private.h
+++ b/source/blender/draw/engines/workbench/workbench_private.h
@@ -93,8 +93,6 @@ typedef struct WORKBENCH_UBO_World {
 	float background_color_low[4];
 	float background_color_high[4];
 	float object_outline_color[4];
-	float see_through_transparency;
-	float pad[3];
 } WORKBENCH_UBO_World;
 BLI_STATIC_ASSERT_ALIGN(WORKBENCH_UBO_World, 16)
 
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index d8bcc9de2e2..6d8d4d45feb 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -325,7 +325,6 @@ static SpaceLink *view3d_new(const ScrArea *UNUSED(sa), const Scene *scene)
 	v3d->drawtype = OB_SOLID;
 	v3d->shading.light = V3D_LIGHTING_STUDIO;
 	v3d->shading.shadow_intensity = 0.5;
-	v3d->shading.see_through_transparency = 0.3f;
 	copy_v3_fl(v3d->shading.single_color, 0.8f);
 
 	v3d->gridflag = V3D_SHOW_X | V3D_SHOW_Y | V3D_SHOW_FLOOR;
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index fd0f78dda2a..cb6031b0a3e 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -145,10 +145,10 @@ typedef struct View3DShading {
 	float single_color[3];
 
 	float studiolight_rot_z;
-	float see_through_transparency;
+	float pad2;
 
 	float object_outline_color[3];
-	float pad2;
+	float pad3;
 } View3DShading;
 
 /* 3D Viewport Overlay setings */
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index d90dbd2ad7a..d4b5dd9be1d 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -2308,15 +2308,6 @@ static void rna_def_space_view3d_shading(BlenderRNA *brna)
 	RNA_def_property_ui_text(prop, "See Through", "Show whole scene transparent");
 	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
 
-	prop = RNA_def_property(srna, "see_through_transparency", PROP_FLOAT, PROP_FACTOR);
-	RNA_def_property_float_sdna(prop, NULL, "shading.see_through_transparency");
-	RNA_def_property_float_default(prop, 0.3f);
-	RNA_def_property_ui_text(prop, "Transparency", "See through transparency");
-	RNA_def_property_range(prop, 0.0f, 1.0f);
-	RNA_def_property_ui_range(prop, 0.1f, 0.5f, 1, 3);
-	RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
-	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
-
 	prop = RNA_def_property(srna, "object_outline_color", PROP_FLOAT, PROP_COLOR);
 	RNA_def_property_float_sdna(prop, NULL, "shading.object_outline_color");
 	RNA_def_property_array(prop, 3);



More information about the Bf-blender-cvs mailing list