Workbench: Renamed Overlap to Outline
Outline is reserved for the Overlap Overlay
This commit is contained in:
@@ -3519,7 +3519,7 @@ class VIEW3D_PT_shading(Panel):
|
|||||||
sub.active = shading.show_shadows
|
sub.active = shading.show_shadows
|
||||||
sub.prop(shading, "shadow_intensity", text="")
|
sub.prop(shading, "shadow_intensity", text="")
|
||||||
|
|
||||||
col.prop(shading, "show_object_overlap")
|
col.prop(shading, "show_object_outline")
|
||||||
|
|
||||||
|
|
||||||
class VIEW3D_PT_overlay(Panel):
|
class VIEW3D_PT_overlay(Panel):
|
||||||
|
|||||||
@@ -928,7 +928,7 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *main)
|
|||||||
if (sl->spacetype == SPACE_VIEW3D) {
|
if (sl->spacetype == SPACE_VIEW3D) {
|
||||||
View3D *v3d = (View3D *)sl;
|
View3D *v3d = (View3D *)sl;
|
||||||
v3d->shading.light = V3D_LIGHTING_STUDIO;
|
v3d->shading.light = V3D_LIGHTING_STUDIO;
|
||||||
v3d->shading.flag |= V3D_SHADING_OBJECT_OVERLAP;
|
v3d->shading.flag |= V3D_SHADING_OBJECT_OUTLINE;
|
||||||
|
|
||||||
/* Assume (demo) files written with 2.8 want to show
|
/* Assume (demo) files written with 2.8 want to show
|
||||||
* Eevee renders in the viewport. */
|
* Eevee renders in the viewport. */
|
||||||
|
|||||||
@@ -22,12 +22,12 @@ void main()
|
|||||||
vec2 uv_viewport = gl_FragCoord.xy * invertedViewportSize;
|
vec2 uv_viewport = gl_FragCoord.xy * invertedViewportSize;
|
||||||
uint object_id = texelFetch(objectId, texel, 0).r;
|
uint object_id = texelFetch(objectId, texel, 0).r;
|
||||||
|
|
||||||
#ifndef V3D_SHADING_OBJECT_OVERLAP
|
#ifndef V3D_SHADING_OBJECT_OUTLINE
|
||||||
if (object_id == NO_OBJECT_ID) {
|
if (object_id == NO_OBJECT_ID) {
|
||||||
fragColor = vec4(background_color(world_data, uv_viewport.y), 0.0);
|
fragColor = vec4(background_color(world_data, uv_viewport.y), 0.0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#else /* !V3D_SHADING_OBJECT_OVERLAP */
|
#else /* !V3D_SHADING_OBJECT_OUTLINE */
|
||||||
float object_overlap = calculate_object_overlap(objectId, texel, object_id);
|
float object_overlap = calculate_object_overlap(objectId, texel, object_id);
|
||||||
|
|
||||||
if (object_id == NO_OBJECT_ID) {
|
if (object_id == NO_OBJECT_ID) {
|
||||||
@@ -40,7 +40,7 @@ void main()
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif /* !V3D_SHADING_OBJECT_OVERLAP */
|
#endif /* !V3D_SHADING_OBJECT_OUTLINE */
|
||||||
|
|
||||||
vec4 diffuse_color = texelFetch(colorBuffer, texel, 0);
|
vec4 diffuse_color = texelFetch(colorBuffer, texel, 0);
|
||||||
/* Do we need normals */
|
/* Do we need normals */
|
||||||
@@ -76,8 +76,8 @@ void main()
|
|||||||
|
|
||||||
shaded_color *= light_multiplier;
|
shaded_color *= light_multiplier;
|
||||||
|
|
||||||
#ifdef V3D_SHADING_OBJECT_OVERLAP
|
#ifdef V3D_SHADING_OBJECT_OUTLINE
|
||||||
shaded_color = mix(objectOverlapColor, shaded_color, object_overlap);
|
shaded_color = mix(objectOverlapColor, shaded_color, object_overlap);
|
||||||
#endif /* V3D_SHADING_OBJECT_OVERLAP */
|
#endif /* V3D_SHADING_OBJECT_OUTLINE */
|
||||||
fragColor = vec4(shaded_color, 1.0);
|
fragColor = vec4(shaded_color, 1.0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ extern char datatoc_workbench_world_light_lib_glsl[];
|
|||||||
|
|
||||||
extern DrawEngineType draw_engine_workbench_solid;
|
extern DrawEngineType draw_engine_workbench_solid;
|
||||||
|
|
||||||
#define OBJECT_ID_PASS_ENABLED(wpd) (wpd->shading.flag & V3D_SHADING_OBJECT_OVERLAP)
|
#define OBJECT_ID_PASS_ENABLED(wpd) (wpd->shading.flag & V3D_SHADING_OBJECT_OUTLINE)
|
||||||
#define NORMAL_VIEWPORT_PASS_ENABLED(wpd) (wpd->shading.light & V3D_LIGHTING_STUDIO || wpd->shading.flag & V3D_SHADING_SHADOW)
|
#define NORMAL_VIEWPORT_PASS_ENABLED(wpd) (wpd->shading.light & V3D_LIGHTING_STUDIO || wpd->shading.flag & V3D_SHADING_SHADOW)
|
||||||
#define SHADOW_ENABLED(wpd) (wpd->shading.flag & V3D_SHADING_SHADOW)
|
#define SHADOW_ENABLED(wpd) (wpd->shading.flag & V3D_SHADING_SHADOW)
|
||||||
#define NORMAL_ENCODING_ENABLED() (true)
|
#define NORMAL_ENCODING_ENABLED() (true)
|
||||||
@@ -95,8 +95,8 @@ static char *workbench_build_defines(WORKBENCH_PrivateData *wpd, int drawtype)
|
|||||||
|
|
||||||
DynStr *ds = BLI_dynstr_new();
|
DynStr *ds = BLI_dynstr_new();
|
||||||
|
|
||||||
if (wpd->shading.flag & V3D_SHADING_OBJECT_OVERLAP) {
|
if (wpd->shading.flag & V3D_SHADING_OBJECT_OUTLINE) {
|
||||||
BLI_dynstr_appendf(ds, "#define V3D_SHADING_OBJECT_OVERLAP\n");
|
BLI_dynstr_appendf(ds, "#define V3D_SHADING_OBJECT_OUTLINE\n");
|
||||||
}
|
}
|
||||||
if (wpd->shading.flag & V3D_SHADING_SHADOW) {
|
if (wpd->shading.flag & V3D_SHADING_SHADOW) {
|
||||||
BLI_dynstr_appendf(ds, "#define V3D_SHADING_SHADOW\n");
|
BLI_dynstr_appendf(ds, "#define V3D_SHADING_SHADOW\n");
|
||||||
@@ -138,7 +138,7 @@ static char *workbench_build_composite_frag(WORKBENCH_PrivateData *wpd)
|
|||||||
if (wpd->shading.light & V3D_LIGHTING_STUDIO) {
|
if (wpd->shading.light & V3D_LIGHTING_STUDIO) {
|
||||||
BLI_dynstr_append(ds, datatoc_workbench_world_light_lib_glsl);
|
BLI_dynstr_append(ds, datatoc_workbench_world_light_lib_glsl);
|
||||||
}
|
}
|
||||||
if (wpd->shading.flag & V3D_SHADING_OBJECT_OVERLAP) {
|
if (wpd->shading.flag & V3D_SHADING_OBJECT_OUTLINE) {
|
||||||
BLI_dynstr_append(ds, datatoc_workbench_object_overlap_lib_glsl);
|
BLI_dynstr_append(ds, datatoc_workbench_object_overlap_lib_glsl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,7 +165,7 @@ static char *workbench_build_prepass_frag(void)
|
|||||||
|
|
||||||
static int get_shader_index(WORKBENCH_PrivateData *wpd, int drawtype)
|
static int get_shader_index(WORKBENCH_PrivateData *wpd, int drawtype)
|
||||||
{
|
{
|
||||||
const int DRAWOPTIONS_MASK = V3D_SHADING_OBJECT_OVERLAP | V3D_SHADING_SHADOW;
|
const int DRAWOPTIONS_MASK = V3D_SHADING_OBJECT_OUTLINE | V3D_SHADING_SHADOW;
|
||||||
int index = (wpd->shading.flag & DRAWOPTIONS_MASK);
|
int index = (wpd->shading.flag & DRAWOPTIONS_MASK);
|
||||||
index = (index << 2) + wpd->shading.light;
|
index = (index << 2) + wpd->shading.light;
|
||||||
/* set the drawtype flag
|
/* set the drawtype flag
|
||||||
|
|||||||
@@ -331,7 +331,7 @@ enum {
|
|||||||
|
|
||||||
/* View3DShading->flag */
|
/* View3DShading->flag */
|
||||||
enum {
|
enum {
|
||||||
V3D_SHADING_OBJECT_OVERLAP = (1 << 0),
|
V3D_SHADING_OBJECT_OUTLINE = (1 << 0),
|
||||||
V3D_SHADING_SHADOW = (1 << 2),
|
V3D_SHADING_SHADOW = (1 << 2),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2203,10 +2203,10 @@ static void rna_def_space_view3d_shading(BlenderRNA *brna)
|
|||||||
RNA_def_property_ui_text(prop, "Lighting", "Lighting Method for Solid/Texture Viewport Shading");
|
RNA_def_property_ui_text(prop, "Lighting", "Lighting Method for Solid/Texture Viewport Shading");
|
||||||
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
|
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
|
||||||
|
|
||||||
prop = RNA_def_property(srna, "show_object_overlap", PROP_BOOLEAN, PROP_NONE);
|
prop = RNA_def_property(srna, "show_object_outline", PROP_BOOLEAN, PROP_NONE);
|
||||||
RNA_def_property_boolean_sdna(prop, NULL, "shading.flag", V3D_SHADING_OBJECT_OVERLAP);
|
RNA_def_property_boolean_sdna(prop, NULL, "shading.flag", V3D_SHADING_OBJECT_OUTLINE);
|
||||||
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||||
RNA_def_property_ui_text(prop, "Object Overlap", "Show Object Overlap");
|
RNA_def_property_ui_text(prop, "Object Outline", "Show Object Outline");
|
||||||
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
|
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
|
||||||
|
|
||||||
prop = RNA_def_property(srna, "studio_light", PROP_ENUM, PROP_NONE);
|
prop = RNA_def_property(srna, "studio_light", PROP_ENUM, PROP_NONE);
|
||||||
|
|||||||
Reference in New Issue
Block a user