3D viewport: rename ambient to shadow intensity, default single color to 0.8.

This commit is contained in:
Brecht Van Lommel 2018-05-05 15:09:21 +02:00
parent 6d980020ba
commit 1ddedfb2af
7 changed files with 24 additions and 22 deletions

View File

@ -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")

View File

@ -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;

View File

@ -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 */

View File

@ -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);
}
}

View File

@ -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;

View File

@ -139,7 +139,7 @@ typedef struct View3DShading {
short light;
short studio_light;
float ambient_intensity;
float shadow_intensity;
float single_color[3];
} View3DShading;

View File

@ -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);