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:
authorFolkert de Vries <flokkievids@gmail.com>2015-07-10 15:57:23 +0300
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2015-07-10 17:15:56 +0300
commiteeeb845d33e81afbc8ed127e6ab4ae7b18472a54 (patch)
tree78f8f3ecf9c4dd3bf4383ccc73520bcd2c6b2c7b /release/scripts/startup/bl_ui/properties_freestyle.py
parent7837f0e8332f3726e0322b0c48b0da4d7c2d5813 (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.py100
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