From 1ddedfb2afd43dd2c2a460a5c13e02f238da3fc0 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sat, 5 May 2018 15:09:21 +0200 Subject: [PATCH] 3D viewport: rename ambient to shadow intensity, default single color to 0.8. --- release/scripts/startup/bl_ui/space_view3d.py | 12 +++++++----- source/blender/blenloader/intern/versioning_280.c | 4 ++-- .../workbench/shaders/workbench_composite_frag.glsl | 6 +++--- .../draw/engines/workbench/workbench_materials.c | 12 ++++++------ source/blender/editors/space_view3d/space_view3d.c | 4 ++-- source/blender/makesdna/DNA_view3d_types.h | 2 +- source/blender/makesrna/intern/rna_space.c | 6 +++--- 7 files changed, 24 insertions(+), 22 deletions(-) diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index a8108f7e5c3..42facabbc41 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -3558,12 +3558,14 @@ class VIEW3D_PT_shading(Panel): col.row().prop(shading, "light", expand=True) if shading.light == 'STUDIO': col.row().template_icon_view(shading, "studio_light") - col.separator() - col.prop(shading, "show_shadows") - if shading.show_shadows: - col.prop(shading, "ambient_light_intensity") - col.separator() + col.separator() + + row = col.row() + row.prop(shading, "show_shadows") + sub = row.row() + sub.active = shading.show_shadows + sub.prop(shading, "shadow_intensity", text="") col.prop(shading, "show_object_overlap") diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c index 8e56caca308..42412787b3a 100644 --- a/source/blender/blenloader/intern/versioning_280.c +++ b/source/blender/blenloader/intern/versioning_280.c @@ -1090,8 +1090,8 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *main) View3D *v3d = (View3D *)sl; v3d->shading.light = V3D_LIGHTING_STUDIO; v3d->shading.color_type = V3D_SHADING_MATERIAL_COLOR; - copy_v3_fl(v3d->shading.single_color, 1.0f); - v3d->shading.ambient_intensity = 0.5; + copy_v3_fl(v3d->shading.single_color, 0.8f); + v3d->shading.shadow_intensity = 0.5; v3d->overlay.flag |= V3D_OVERLAY_HIDE_CURSOR; v3d->overlay.backwire_opacity = 0.5f; diff --git a/source/blender/draw/engines/workbench/shaders/workbench_composite_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_composite_frag.glsl index bc6125f18b6..f96f5ff0af7 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_composite_frag.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_composite_frag.glsl @@ -6,7 +6,7 @@ uniform sampler2D normalBuffer; /* normalBuffer contains viewport normals */ uniform vec2 invertedViewportSize; uniform vec3 objectOverlapColor = vec3(0.0); -uniform float lightMultiplier; +uniform float shadowMultiplier; layout(std140) uniform world_block { WorldData world_data; @@ -49,11 +49,11 @@ void main() vec3 normal_viewport = texelFetch(normalBuffer, texel, 0).rgb; #endif /* WORKBENCH_ENCODE_NORMALS */ vec3 diffuse_light = get_world_diffuse_light(world_data, normal_viewport); - vec3 shaded_color = diffuse_light * diffuse_color.rgb * lightMultiplier; + vec3 shaded_color = diffuse_light * diffuse_color.rgb * (1.0 - shadowMultiplier); #else /* V3D_LIGHTING_STUDIO */ vec3 diffuse_color = texelFetch(colorBuffer, texel, 0).rgb; - vec3 shaded_color = diffuse_color * lightMultiplier; + vec3 shaded_color = diffuse_color * (1.0 - shadowMultiplier); #endif /* V3D_LIGHTING_STUDIO */ diff --git a/source/blender/draw/engines/workbench/workbench_materials.c b/source/blender/draw/engines/workbench/workbench_materials.c index 0538eb4b60a..7c275311494 100644 --- a/source/blender/draw/engines/workbench/workbench_materials.c +++ b/source/blender/draw/engines/workbench/workbench_materials.c @@ -290,7 +290,7 @@ void workbench_materials_cache_init(WORKBENCH_Data *vedata) const DRWContextState *draw_ctx = DRW_context_state_get(); ViewLayer *view_layer = draw_ctx->view_layer; IDProperty *props = BKE_view_layer_engine_evaluated_get(view_layer, RE_engine_id_BLENDER_WORKBENCH); - static float light_multiplier = 1.0f; + static float shadow_multiplier = 0.0f; const DRWContextState *DCS = DRW_context_state_get(); @@ -303,8 +303,8 @@ void workbench_materials_cache_init(WORKBENCH_Data *vedata) else { memset(&wpd->shading, 0, sizeof(wpd->shading)); wpd->shading.light = V3D_LIGHTING_STUDIO; - wpd->shading.ambient_intensity = 0.5; - copy_v3_fl(wpd->shading.single_color, 1.0f); + wpd->shading.shadow_intensity = 0.5; + copy_v3_fl(wpd->shading.single_color, 0.8f); } select_deferred_shaders(wpd); @@ -326,7 +326,7 @@ void workbench_materials_cache_init(WORKBENCH_Data *vedata) grp = DRW_shgroup_create(wpd->composite_sh, psl->composite_pass); workbench_composite_uniforms(wpd, grp); DRW_shgroup_stencil_mask(grp, 0x00); - DRW_shgroup_uniform_float(grp, "lightMultiplier", &light_multiplier, 1); + DRW_shgroup_uniform_float(grp, "shadowMultiplier", &shadow_multiplier, 1); DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL); #ifdef DEBUG_SHADOW_VOLUME @@ -346,7 +346,7 @@ void workbench_materials_cache_init(WORKBENCH_Data *vedata) grp = DRW_shgroup_create(wpd->composite_sh, psl->composite_shadow_pass); DRW_shgroup_stencil_mask(grp, 0x00); workbench_composite_uniforms(wpd, grp); - DRW_shgroup_uniform_float(grp, "lightMultiplier", &wpd->shading.ambient_intensity, 1); + DRW_shgroup_uniform_float(grp, "shadowMultiplier", &wpd->shading.shadow_intensity, 1); DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL); #endif } @@ -354,7 +354,7 @@ void workbench_materials_cache_init(WORKBENCH_Data *vedata) psl->composite_pass = DRW_pass_create("Composite", DRW_STATE_WRITE_COLOR); grp = DRW_shgroup_create(wpd->composite_sh, psl->composite_pass); workbench_composite_uniforms(wpd, grp); - DRW_shgroup_uniform_float(grp, "lightMultiplier", &light_multiplier, 1); + DRW_shgroup_uniform_float(grp, "shadowMultiplier", &shadow_multiplier, 1); DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL); } } diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index 0231858a3f2..a5a12b509e1 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -323,8 +323,8 @@ static SpaceLink *view3d_new(const ScrArea *UNUSED(sa), const Scene *scene) v3d->gridsubdiv = 10; v3d->drawtype = OB_SOLID; v3d->shading.light = V3D_LIGHTING_STUDIO; - v3d->shading.ambient_intensity = 0.5; - copy_v3_fl(v3d->shading.single_color, 1.0f); + v3d->shading.shadow_intensity = 0.5; + 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 ef2944c12a2..a206d9e6642 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -139,7 +139,7 @@ typedef struct View3DShading { short light; short studio_light; - float ambient_intensity; + float shadow_intensity; float single_color[3]; } View3DShading; diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 101ef0a2e9a..7c5e798651b 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -2233,10 +2233,10 @@ static void rna_def_space_view3d_shading(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Shadow", "Show Shadow"); RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); - prop = RNA_def_property(srna, "ambient_light_intensity", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "shading.ambient_intensity"); + prop = RNA_def_property(srna, "shadow_intensity", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_float_sdna(prop, NULL, "shading.shadow_intensity"); RNA_def_property_float_default(prop, 0.5); - RNA_def_property_ui_text(prop, "Ambient Light", "Intensity of ambient light for shadows"); + RNA_def_property_ui_text(prop, "Shadow Intensity", "Darkness of shadows"); RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_ui_range(prop, 0.00f, 1.0f, 1, 3); RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);