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:
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py58
-rw-r--r--source/blender/draw/engines/workbench/workbench_forward.c12
-rw-r--r--source/blender/draw/intern/draw_manager.c1
-rw-r--r--source/blender/draw/modes/overlay_mode.c1
-rw-r--r--source/blender/makesrna/intern/rna_space.c8
5 files changed, 50 insertions, 30 deletions
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 8f6f3f7f4bf..095bac456d2 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -3963,6 +3963,11 @@ class VIEW3D_PT_shading_lighting(Panel):
bl_label = "Lighting"
bl_parent_id = 'VIEW3D_PT_shading'
+ @classmethod
+ def poll(cls, context):
+ shading = VIEW3D_PT_shading.get_shading(context)
+ return shading.type in {'SOLID', 'MATERIAL'}
+
def draw(self, context):
layout = self.layout
shading = VIEW3D_PT_shading.get_shading(context)
@@ -4028,7 +4033,7 @@ class VIEW3D_PT_shading_color(Panel):
@classmethod
def poll(cls, context):
shading = VIEW3D_PT_shading.get_shading(context)
- return shading.type == 'SOLID'
+ return shading.type in {'WIREFRAME', 'SOLID'}
def _draw_color_type(self, context):
layout = self.layout
@@ -4061,7 +4066,7 @@ class VIEW3D_PT_shading_options(Panel):
@classmethod
def poll(cls, context):
shading = VIEW3D_PT_shading.get_shading(context)
- return shading.type == 'SOLID'
+ return shading.type in {'WIREFRAME', 'SOLID'}
def draw(self, context):
layout = self.layout
@@ -4079,34 +4084,35 @@ class VIEW3D_PT_shading_options(Panel):
sub.active = is_xray
sub.prop(shading, "xray_alpha", text="X-Ray")
- row = col.row()
- row.prop(shading, "show_shadows", text="")
- row.active = not is_xray
- sub = row.row(align=True)
- sub.active = is_shadows
- sub.prop(shading, "shadow_intensity", text="Shadow")
- sub.popover(
- panel="VIEW3D_PT_shading_options_shadow",
- icon='SCRIPTWIN',
- text=""
- )
-
- col = layout.column()
- row = col.row()
- row.active = not is_xray
- row.prop(shading, "show_cavity")
-
- if shading.show_cavity:
- sub = col.row(align=True)
- sub.active = not shading.show_xray and shading.show_cavity
- sub.prop(shading, "cavity_ridge_factor")
- sub.prop(shading, "cavity_valley_factor")
+ if shading.type == 'SOLID':
+ row = col.row()
+ row.prop(shading, "show_shadows", text="")
+ row.active = not is_xray
+ sub = row.row(align=True)
+ sub.active = is_shadows
+ sub.prop(shading, "shadow_intensity", text="Shadow")
sub.popover(
- panel="VIEW3D_PT_shading_options_ssao",
+ panel="VIEW3D_PT_shading_options_shadow",
icon='SCRIPTWIN',
text=""
)
+ col = layout.column()
+ row = col.row()
+ row.active = not is_xray
+ row.prop(shading, "show_cavity")
+
+ if shading.show_cavity:
+ sub = col.row(align=True)
+ sub.active = not shading.show_xray and shading.show_cavity
+ sub.prop(shading, "cavity_ridge_factor")
+ sub.prop(shading, "cavity_valley_factor")
+ sub.popover(
+ panel="VIEW3D_PT_shading_options_ssao",
+ icon='SCRIPTWIN',
+ text=""
+ )
+
row = layout.split()
row.prop(shading, "show_object_outline")
sub = row.row()
@@ -4114,7 +4120,7 @@ class VIEW3D_PT_shading_options(Panel):
sub.prop(shading, "object_outline_color", text="")
col = layout.column()
- if not shading.light == 'MATCAP':
+ if shading.light not in {'WIREFRAME', 'MATCAP'}:
col.prop(shading, "show_specular_highlight")
diff --git a/source/blender/draw/engines/workbench/workbench_forward.c b/source/blender/draw/engines/workbench/workbench_forward.c
index 2df81314cf4..938852c764e 100644
--- a/source/blender/draw/engines/workbench/workbench_forward.c
+++ b/source/blender/draw/engines/workbench/workbench_forward.c
@@ -363,11 +363,21 @@ void workbench_forward_engine_init(WORKBENCH_Data *vedata)
/* Checker Depth */
{
+ float blend_threshold = 0.0f;
+
+ if (draw_ctx->v3d->shading.flag & V3D_SHADING_XRAY) {
+ blend_threshold = 0.75f - wpd->shading.xray_alpha * 0.5f;
+ }
+
+ if (draw_ctx->v3d->shading.type == OB_WIRE) {
+ wpd->shading.xray_alpha = 0.0f;
+ }
+
int state = DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_ALWAYS;
psl->checker_depth_pass = DRW_pass_create("Checker Depth", state);
grp = DRW_shgroup_create(e_data.checker_depth_sh, psl->checker_depth_pass);
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
- DRW_shgroup_uniform_float_copy(grp, "threshold", 0.75f - wpd->shading.xray_alpha * 0.5f);
+ DRW_shgroup_uniform_float_copy(grp, "threshold", blend_threshold);
}
}
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index f1d92736f54..73e2c4920b8 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1164,6 +1164,7 @@ static void drw_engines_enable_from_engine(RenderEngineType *engine_type, int dr
{
switch (drawtype) {
case OB_WIRE:
+ use_drw_engine(&draw_engine_workbench_transparent);
break;
case OB_SOLID:
diff --git a/source/blender/draw/modes/overlay_mode.c b/source/blender/draw/modes/overlay_mode.c
index c6a5e9b8335..53934de9d0e 100644
--- a/source/blender/draw/modes/overlay_mode.c
+++ b/source/blender/draw/modes/overlay_mode.c
@@ -236,6 +236,7 @@ static void overlay_cache_populate(void *vedata, Object *ob)
}
if ((stl->g_data->overlay.flag & V3D_OVERLAY_WIREFRAMES) ||
+ (v3d->shading.type == OB_WIRE) ||
(ob->dtx & OB_DRAWWIRE) ||
(ob->dt == OB_WIRE))
{
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index c757f648f4d..8552d8ea731 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -238,9 +238,10 @@ static const EnumPropertyItem autosnap_items[] = {
#endif
const EnumPropertyItem rna_enum_shading_type_items[] = {
- {OB_SOLID, "SOLID", ICON_SOLID, "Solid", "Display in solid mode"},
- {OB_MATERIAL, "MATERIAL", ICON_MATERIAL_DATA, "LookDev", "Display in LookDev mode"},
- {OB_RENDER, "RENDERED", ICON_SMOOTH, "Rendered", "Display render preview"},
+ {OB_WIRE, "WIREFRAME", ICON_WIRE, "Wireframe", "Display the object as wire edges"},
+ {OB_SOLID, "SOLID", ICON_SOLID, "Solid", "Display in solid mode"},
+ {OB_MATERIAL, "MATERIAL", ICON_MATERIAL_DATA, "LookDev", "Display in LookDev mode"},
+ {OB_RENDER, "RENDERED", ICON_SMOOTH, "Rendered", "Display render preview"},
{0, NULL, 0, NULL, NULL}
};
@@ -769,6 +770,7 @@ static const EnumPropertyItem *rna_3DViewShading_type_itemf(
EnumPropertyItem *item = NULL;
int totitem = 0;
+ RNA_enum_items_add_value(&item, &totitem, rna_enum_shading_type_items, OB_WIRE);
RNA_enum_items_add_value(&item, &totitem, rna_enum_shading_type_items, OB_SOLID);
if (BKE_scene_uses_blender_eevee(scene)) {