diff options
author | Folkert de Vries <flokkievids@gmail.com> | 2015-07-10 15:57:23 +0300 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2015-07-10 17:15:56 +0300 |
commit | eeeb845d33e81afbc8ed127e6ab4ae7b18472a54 (patch) | |
tree | 78f8f3ecf9c4dd3bf4383ccc73520bcd2c6b2c7b /release/scripts/startup/bl_ui/properties_freestyle.py | |
parent | 7837f0e8332f3726e0322b0c48b0da4d7c2d5813 (diff) |
Freestyle: new stroke modifiers
This patch introduces a couple new stroke modifiers. The ones currently implemented are based on prototypes by @kjym3 and myself.
The new modifiers:
- Tangent
- Thickness noise
- Crease Angle
- Simplification
- Curvature 3D
The documentation for these new modifier types can be found [[ http://www.blender.org/manual/render/freestyle/parameter_editor/index.html | in the manual ]]:
{F134441}
(left: AnisotropicThicknessShader, right: NoiseThicknessShader)
{F140499}
(left: Curvature 3D, right: Simplification)
Author: Folkert de Vries (flokkievids)
Reviewers: kjym3
Subscribers: #user_interface, plasmasolutions, kjym3
Projects: #bf_blender
Differential Revision: https://developer.blender.org/D963
Diffstat (limited to 'release/scripts/startup/bl_ui/properties_freestyle.py')
-rw-r--r-- | release/scripts/startup/bl_ui/properties_freestyle.py | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/release/scripts/startup/bl_ui/properties_freestyle.py b/release/scripts/startup/bl_ui/properties_freestyle.py index 995136b0d97..f58a698d194 100644 --- a/release/scripts/startup/bl_ui/properties_freestyle.py +++ b/release/scripts/startup/bl_ui/properties_freestyle.py @@ -283,6 +283,10 @@ class RENDERLAYER_PT_freestyle_linestyle(RenderLayerFreestyleEditorButtonsPanel, sub.operator("scene.freestyle_modifier_move", icon='TRIA_DOWN', text="").direction = 'DOWN' sub.operator("scene.freestyle_modifier_remove", icon='X', text="") + def draw_modifier_box_error(self, box, modifier, message): + row = box.row() + row.label(text=message, icon="ERROR") + def draw_modifier_common(self, box, modifier): row = box.row() row.prop(modifier, "blend", text="") @@ -351,6 +355,33 @@ class RENDERLAYER_PT_freestyle_linestyle(RenderLayerFreestyleEditorButtonsPanel, if show_ramp: self.draw_modifier_color_ramp_common(box, modifier, False) + elif modifier.type == 'TANGENT': + self.draw_modifier_color_ramp_common(box, modifier, False) + + elif modifier.type == 'NOISE': + self.draw_modifier_color_ramp_common(box, modifier, False) + row = box.row(align=False) + row.prop(modifier, "amplitude") + row.prop(modifier, "period") + row.prop(modifier, "seed") + + elif modifier.type == 'CREASE_ANGLE': + self.draw_modifier_color_ramp_common(box, modifier, False) + row = box.row(align=True) + row.prop(modifier, "angle_min") + row.prop(modifier, "angle_max") + + elif modifier.type == 'CURVATURE_3D': + self.draw_modifier_color_ramp_common(box, modifier, False) + row = box.row(align=True) + row.prop(modifier, "curvature_min") + row.prop(modifier, "curvature_max") + freestyle = context.scene.render.layers.active.freestyle_settings + if not freestyle.use_smoothness: + message = "Enable Face Smoothness to use this modifier" + self.draw_modifier_box_error(col.box(), modifier, message) + + def draw_alpha_modifier(self, context, modifier): layout = self.layout @@ -380,6 +411,32 @@ class RENDERLAYER_PT_freestyle_linestyle(RenderLayerFreestyleEditorButtonsPanel, box.prop(modifier, "material_attribute", text="") self.draw_modifier_curve_common(box, modifier, False, False) + elif modifier.type == 'TANGENT': + self.draw_modifier_curve_common(box, modifier, False, False) + + elif modifier.type == 'NOISE': + self.draw_modifier_curve_common(box, modifier, False, False) + row = box.row(align=False) + row.prop(modifier, "amplitude") + row.prop(modifier, "period") + row.prop(modifier, "seed") + + elif modifier.type == 'CREASE_ANGLE': + self.draw_modifier_curve_common(box, modifier, False, False) + row = box.row(align=True) + row.prop(modifier, "angle_min") + row.prop(modifier, "angle_max") + + elif modifier.type == 'CURVATURE_3D': + self.draw_modifier_curve_common(box, modifier, False, False) + row = box.row(align=True) + row.prop(modifier, "curvature_min") + row.prop(modifier, "curvature_max") + freestyle = context.scene.render.layers.active.freestyle_settings + if not freestyle.use_smoothness: + message = "Enable Face Smoothness to use this modifier" + self.draw_modifier_box_error(col.box(), modifier, message) + def draw_thickness_modifier(self, context, modifier): layout = self.layout @@ -415,6 +472,45 @@ class RENDERLAYER_PT_freestyle_linestyle(RenderLayerFreestyleEditorButtonsPanel, row.prop(modifier, "thickness_min") row.prop(modifier, "thickness_max") + elif modifier.type == 'TANGENT': + self.draw_modifier_curve_common(box, modifier, False, False) + self.mapping = 'CURVE' + row = box.row(align=True) + row.prop(modifier, "thickness_min") + row.prop(modifier, "thickness_max") + + elif modifier.type == 'NOISE': + row = box.row(align=False) + row.prop(modifier, "amplitude") + row.prop(modifier, "period") + row = box.row(align=False) + row.prop(modifier, "seed") + row.prop(modifier, "use_asymmetric") + + elif modifier.type == 'CREASE_ANGLE': + self.draw_modifier_curve_common(box, modifier, False, False) + row = box.row(align=True) + row.prop(modifier, "thickness_min") + row.prop(modifier, "thickness_max") + row = box.row(align=True) + row.prop(modifier, "angle_min") + row.prop(modifier, "angle_max") + + + elif modifier.type == 'CURVATURE_3D': + self.draw_modifier_curve_common(box, modifier, False, False) + row = box.row(align=True) + row.prop(modifier, "thickness_min") + row.prop(modifier, "thickness_max") + row = box.row(align=True) + row.prop(modifier, "curvature_min") + row.prop(modifier, "curvature_max") + freestyle = context.scene.render.layers.active.freestyle_settings + if not freestyle.use_smoothness: + message = "Enable Face Smoothness to use this modifier" + self.draw_modifier_box_error(col.box(), modifier, message) + + def draw_geometry_modifier(self, context, modifier): layout = self.layout @@ -512,6 +608,10 @@ class RENDERLAYER_PT_freestyle_linestyle(RenderLayerFreestyleEditorButtonsPanel, row.prop(modifier, "scale_y") box.prop(modifier, "angle") + elif modifier.type == 'SIMPLIFICATION': + box.prop(modifier, "tolerance") + + def draw(self, context): layout = self.layout |