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:
authorJoseph Eagar <joeedh@gmail.com>2021-09-18 09:32:08 +0300
committerJoseph Eagar <joeedh@gmail.com>2021-09-18 09:32:08 +0300
commit2d3d6eb7b2a9be40aa5f383a1ff57ef37debc197 (patch)
treed2d27ab69f8ffb0797b022288311821780e0e368 /release/scripts
parent85d274a60c03b067efaddeda921f0edf1c0982b3 (diff)
parentf0c35d16f39d837c7bceb6740d3fe9c440676564 (diff)
Merge remote-tracking branch 'origin/temp_bmesh_multires' into sculpt-dev
Diffstat (limited to 'release/scripts')
m---------release/scripts/addons0
m---------release/scripts/addons_contrib0
-rw-r--r--release/scripts/startup/bl_ui/properties_paint_common.py97
-rw-r--r--release/scripts/startup/bl_ui/space_toolsystem_toolbar.py4
-rw-r--r--release/scripts/startup/bl_ui/space_userpref.py1
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py1
-rw-r--r--release/scripts/startup/bl_ui/space_view3d_toolbar.py83
7 files changed, 179 insertions, 7 deletions
diff --git a/release/scripts/addons b/release/scripts/addons
-Subproject 4475cbd11a636382d57571e0f5dfeff1f90bd6b
+Subproject 59c8409947c4174983a36ec28dfeda2be9e254d
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
-Subproject 788441f2930465bbfba8f0797b12dcef1d46694
+Subproject 98f6085e9d71ba35d41e5aafbcb7981bd7c4827
diff --git a/release/scripts/startup/bl_ui/properties_paint_common.py b/release/scripts/startup/bl_ui/properties_paint_common.py
index 63032b64c63..bf29c3f8159 100644
--- a/release/scripts/startup/bl_ui/properties_paint_common.py
+++ b/release/scripts/startup/bl_ui/properties_paint_common.py
@@ -549,15 +549,27 @@ def brush_settings(layout, context, brush, popover=False):
if context.preferences.experimental.use_sculpt_tools_tilt and capabilities.has_tilt:
layout.prop(brush, "tilt_strength_factor", slider=True)
+ UnifiedPaintPanel.prop_unified(
+ layout,
+ context,
+ brush,
+ "hard_edge_mode",
+ slider=True,
+ unified_name="use_unified_hard_edge_mode",
+ )
+
row = layout.row(align=True)
+
row.prop(brush, "hardness", slider=True)
row.prop(brush, "invert_hardness_pressure", text="")
row.prop(brush, "use_hardness_pressure", text="")
# auto_smooth_factor and use_inverse_smooth_pressure
if capabilities.has_auto_smooth:
+ box = layout.box().column() #.column() is a bit more compact
+
UnifiedPaintPanel.prop_unified(
- layout,
+ box,
context,
brush,
"auto_smooth_factor",
@@ -565,13 +577,70 @@ def brush_settings(layout, context, brush, popover=False):
slider=True,
)
- # topology_rake_factor
+ box.prop(brush, "boundary_smooth_factor")
+ box.prop(brush, "use_weighted_smooth")
+ box.prop(brush, "preserve_faceset_boundary")
+
+ if brush.preserve_faceset_boundary:
+ box.prop(brush, "autosmooth_fset_slide")
+
+ box.prop(brush, "use_custom_auto_smooth_spacing", text="Custom Spacing")
+ if brush.use_custom_auto_smooth_spacing:
+ UnifiedPaintPanel.prop_unified(
+ box,
+ context,
+ brush,
+ "auto_smooth_spacing",
+ slider=True,
+ text="Spacing"
+ )
+ UnifiedPaintPanel.prop_unified(
+ box,
+ context,
+ brush,
+ "auto_smooth_projection",
+ slider=True
+ )
+ UnifiedPaintPanel.prop_unified(
+ box,
+ context,
+ brush,
+ "auto_smooth_radius_factor",
+ slider=True
+ )
+ elif brush.sculpt_tool == "SMOOTH":
+ UnifiedPaintPanel.prop_unified(
+ layout,
+ context,
+ brush,
+ "auto_smooth_projection",
+ slider=True
+ )
+
+
+ if capabilities.has_vcol_boundary_smooth:
+ layout.prop(brush, "vcol_boundary_factor", slider=True)
+
if (
capabilities.has_topology_rake and
context.sculpt_object.use_dynamic_topology_sculpting
):
- layout.prop(brush, "topology_rake_factor", slider=True)
-
+ box = layout.box().column() #.column() is a bit more compact
+
+ box.prop(brush, "topology_rake_factor", slider=True)
+ box.prop(brush, "use_custom_topology_rake_spacing", text="Custom Spacing")
+
+ if brush.use_custom_topology_rake_spacing:
+ box.prop(brush, "topology_rake_spacing", text="Spacing")
+ box.prop(brush, "topology_rake_projection")
+
+ box.prop(brush, "topology_rake_radius_factor", slider=True)
+ box.prop(brush, "use_curvature_rake")
+ box.prop(brush, "ignore_falloff_for_topology_rake")
+
+ if context.sculpt_object.use_dynamic_topology_sculpting:
+ layout.prop(brush.dyntopo, "disabled", text="Disable Dyntopo")
+
# normal_weight
if capabilities.has_normal_weight:
layout.prop(brush, "normal_weight", slider=True)
@@ -630,6 +699,10 @@ def brush_settings(layout, context, brush, popover=False):
# Per sculpt tool options.
+ if sculpt_tool == "VCOL_BOUNDARY":
+ row = layout.row()
+ row.prop(brush, "vcol_boundary_exponent")
+
if sculpt_tool == 'CLAY_STRIPS':
row = layout.row()
row.prop(brush, "tip_roundness")
@@ -769,7 +842,15 @@ def brush_settings(layout, context, brush, popover=False):
elif sculpt_tool == 'SMOOTH':
col = layout.column()
+ col.prop(brush, "boundary_smooth_factor")
+
+ col.prop(brush, "use_weighted_smooth")
+ col.prop(brush, "preserve_faceset_boundary")
+ if brush.preserve_faceset_boundary:
+ col.prop(brush, "autosmooth_fset_slide")
+
col.prop(brush, "smooth_deform_type")
+
if brush.smooth_deform_type == 'SURFACE':
col.prop(brush, "surface_smooth_shape_preservation")
col.prop(brush, "surface_smooth_current_vertex")
@@ -933,6 +1014,14 @@ def brush_settings_advanced(layout, context, brush, popover=False):
# topology automasking
col.prop(brush, "use_automasking_topology", text="Topology")
+ col.prop(brush, "use_automasking_concave")
+
+ col2 = col.column()
+ col2.enabled = brush.use_automasking_concave
+
+ col2.prop(brush, "concave_mask_factor", text="Cavity Factor")
+ col2.prop(brush, "invert_automasking_concavity", text="Invert Cavity Mask")
+
# face masks automasking
col.prop(brush, "use_automasking_face_sets", text="Face Sets")
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index 7546be30b48..a128bf8698d 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -1304,7 +1304,9 @@ class _defs_sculpt:
# Use 'bpy.context' instead of 'context' since it can be None.
prefs = bpy.context.preferences
if not prefs.experimental.use_sculpt_vertex_colors:
- exclude_filter = {'PAINT', 'SMEAR'}
+ exclude_filter = {'PAINT' : True, 'SMEAR' : True}
+ if not prefs.experimental.use_sculpt_uvsmooth:
+ exclude_filter['UV_SMOOTH'] = True
return generate_from_enum_ex(
context,
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index 0093110d326..be16179fdff 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -2248,6 +2248,7 @@ class USERPREF_PT_experimental_new_features(ExperimentalPanel, Panel):
self._draw_items(
context, (
({"property": "use_sculpt_vertex_colors"}, "T71947"),
+ ({"property": "use_sculpt_uvsmooth"}, ""),
({"property": "use_sculpt_tools_tilt"}, "T82877"),
({"property": "use_extended_asset_browser"}, ("project/view/130/", "Project Page")),
({"property": "use_override_templates"}, ("T73318", "Milestone 4")),
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 39b780b36af..c13cd0d66f7 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -171,6 +171,7 @@ class VIEW3D_HT_tool_header(Header):
row.popover(panel="VIEW3D_PT_tools_weightpaint_symmetry_for_topbar", text="")
elif mode_string == 'SCULPT':
row.popover(panel="VIEW3D_PT_sculpt_symmetry_for_topbar", text="")
+ layout.prop(context.object.data, "use_fset_boundary_mirror");
elif mode_string == 'PAINT_VERTEX':
row.popover(panel="VIEW3D_PT_tools_vertexpaint_symmetry_for_topbar", text="")
diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index f9f5aa00f29..92a0c69f00c 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -17,7 +17,7 @@
# ##### END GPL LICENSE BLOCK #####
# <pep8 compliant>
-from bpy.types import Menu, Panel, UIList
+from bpy.types import Menu, Panel, UIList, WindowManager
from bl_ui.properties_grease_pencil_common import (
GreasePencilSculptOptionsPanel,
GreasePencilDisplayPanel,
@@ -755,9 +755,77 @@ class VIEW3D_PT_tools_brush_falloff_normal(View3DPaintPanel, Panel):
# TODO, move to space_view3d.py
+class VIEW3D_PT_sculpt_dyntopo_advanced(Panel, View3DPaintPanel):
+ bl_context = ".sculpt_mode" # dot on purpose (access from topbar)
+ bl_label = "Dyntopo (Advanced)"
+ #bl_options = {'DEFAULT_CLOSED'}
+ bl_ui_units_x = 12
+
+ @classmethod
+ def poll(cls, context):
+ paint_settings = cls.paint_settings(context)
+ return (context.sculpt_object and context.tool_settings.sculpt and paint_settings)
+
+ def draw_header(self, context):
+ pass
+
+ def draw(self, context):
+ layout = self.layout
+ layout.use_property_split = True
+ layout.use_property_decorate = False
+
+ tool_settings = context.tool_settings
+ sculpt = tool_settings.sculpt
+ settings = self.paint_settings(context)
+ brush = settings.brush
+
+ col = layout.column()
+ col.label(text="Local Brush Settings")
+
+ row = col.row()
+ row.prop(brush.dyntopo, "disabled", text="Disable Dyntopo locally for this brush")
+
+ col.label(text="Overrides")
+ inherit_all = "ALL" in brush.dyntopo.inherit
+
+ col.prop_enum(brush.dyntopo, "inherit", value="ALL", text="Use All Defaults", icon="LOCKED" if inherit_all else "UNLOCKED")
+
+ def do_prop(key):
+ row = col.row()
+ if key.upper() in brush.dyntopo.inherit:
+ icon = "UNLOCKED"
+ else:
+ icon = "LOCKED"
+
+ row.prop_enum(brush.dyntopo, "inherit", value=key.upper(), icon=icon, text="")
+
+ row2 = row.row()
+ row2.prop(brush.dyntopo, key)
+
+ if icon == "UNLOCKED":
+ row2.enabled = False
+
+ if inherit_all:
+ row.enabled = False
+
+ col = layout.column()
+ do_prop("subdivide")
+ do_prop("collapse")
+ do_prop("cleanup")
+ do_prop("spacing")
+ do_prop("local_subdivide")
+ do_prop("local_collapse")
+ do_prop("detail_size")
+ do_prop("detail_range")
+ do_prop("detail_percent")
+ do_prop("constant_detail")
+ do_prop("mode")
+ do_prop("radius_scale")
+
+# TODO, move to space_view3d.py
class VIEW3D_PT_sculpt_dyntopo(Panel, View3DPaintPanel):
bl_context = ".sculpt_mode" # dot on purpose (access from topbar)
- bl_label = "Dyntopo"
+ bl_label = "Dynamic Mode"
bl_options = {'DEFAULT_CLOSED'}
bl_ui_units_x = 12
@@ -789,6 +857,8 @@ class VIEW3D_PT_sculpt_dyntopo(Panel, View3DPaintPanel):
col = layout.column()
col.active = context.sculpt_object.use_dynamic_topology_sculpting
+ col.prop(sculpt, "use_dyntopo");
+
sub = col.column()
sub.active = (brush and brush.sculpt_tool != 'MASK')
if sculpt.detail_type_method in {'CONSTANT', 'MANUAL'}:
@@ -806,7 +876,12 @@ class VIEW3D_PT_sculpt_dyntopo(Panel, View3DPaintPanel):
if sculpt.detail_type_method in {'CONSTANT', 'MANUAL'}:
col.operator("sculpt.detail_flood_fill")
+ col.prop(sculpt, "use_dyntopo_cleanup")
col.prop(sculpt, "use_smooth_shading")
+ col.prop(sculpt, "use_flat_vcol_shading")
+
+ col.prop(sculpt, "dyntopo_spacing")
+ col.prop(sculpt, "dyntopo_radius_scale");
class VIEW3D_PT_sculpt_voxel_remesh(Panel, View3DPaintPanel):
@@ -866,6 +941,7 @@ class VIEW3D_PT_sculpt_options(Panel, View3DPaintPanel):
col = layout.column(heading="Display", align=True)
col.prop(sculpt, "show_low_resolution")
col.prop(sculpt, "use_sculpt_delay_updates")
+ col.prop(sculpt, "use_fast_draw")
col.prop(sculpt, "use_deform_only")
col.prop(sculpt, "show_sculpt_pivot")
col.prop(sculpt, "smooth_strength_factor")
@@ -944,6 +1020,7 @@ class VIEW3D_PT_sculpt_symmetry(Panel, View3DPaintPanel):
row.prop(sculpt, "tile_z", text="Z", toggle=True)
layout.prop(sculpt, "use_symmetry_feather", text="Feather")
+ layout.prop(mesh, "use_fset_boundary_mirror")
layout.prop(sculpt, "radial_symmetry", text="Radial")
layout.prop(sculpt, "tile_offset", text="Tile Offset")
@@ -951,6 +1028,7 @@ class VIEW3D_PT_sculpt_symmetry(Panel, View3DPaintPanel):
layout.prop(sculpt, "symmetrize_direction")
layout.operator("sculpt.symmetrize")
+ layout.prop(WindowManager.operator_properties_last("sculpt.symmetrize"), "merge_tolerance")
class VIEW3D_PT_sculpt_symmetry_for_topbar(Panel):
@@ -2284,6 +2362,7 @@ classes = (
VIEW3D_PT_tools_grease_pencil_brush_vertex_color,
VIEW3D_PT_tools_grease_pencil_brush_vertex_palette,
VIEW3D_PT_tools_grease_pencil_brush_vertex_falloff,
+ VIEW3D_PT_sculpt_dyntopo_advanced
)
if __name__ == "__main__": # only for live edit.