[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59652] trunk/blender/release/scripts/ freestyle/style_modules/parameter_editor.py: Fix for [#36599] Freestyle: Line thickness modifier with certain blend types incorrectly calculated.

Tamito Kajiyama rd6t-kjym at asahi-net.or.jp
Fri Aug 30 11:17:27 CEST 2013


Revision: 59652
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59652
Author:   kjym3
Date:     2013-08-30 09:17:27 +0000 (Fri, 30 Aug 2013)
Log Message:
-----------
Fix for [#36599] Freestyle: Line thickness modifier with certain blend types incorrectly calculated.

The inner/outer thickness values were separately blended by Multiply, Divide and other binary
operators, which resulted in the wrong thickness values reported in the issue.  The operations
must be applied to the sum of the inner and outer thickness values.

Also the Minimum and Maximum operators were not properly implemented (one of the two operands
were ignored by mistake).

Modified Paths:
--------------
    trunk/blender/release/scripts/freestyle/style_modules/parameter_editor.py

Modified: trunk/blender/release/scripts/freestyle/style_modules/parameter_editor.py
===================================================================
--- trunk/blender/release/scripts/freestyle/style_modules/parameter_editor.py	2013-08-30 09:11:47 UTC (rev 59651)
+++ trunk/blender/release/scripts/freestyle/style_modules/parameter_editor.py	2013-08-30 09:17:27 UTC (rev 59652)
@@ -78,11 +78,11 @@
         elif self.__blend == 'DIFFERENCE':
             v1 = facm * v1 + fac * abs(v1 - v2)
         elif self.__blend == 'MININUM':
-            tmp = fac * v1
+            tmp = fac * v2
             if v1 > tmp:
                 v1 = tmp
         elif self.__blend == 'MAXIMUM':
-            tmp = fac * v1
+            tmp = fac * v2
             if v1 < tmp:
                 v1 = tmp
         else:
@@ -142,18 +142,19 @@
         self.__ratio = ratio
 
     def blend_thickness(self, outer, inner, v):
+        v = self.blend(outer + inner, v)
         if self.__position == 'CENTER':
-            outer = self.blend(outer, v / 2)
-            inner = self.blend(inner, v / 2)
+            outer = v * 0.5
+            inner = v - outer
         elif self.__position == 'INSIDE':
-            outer = self.blend(outer, 0)
-            inner = self.blend(inner, v)
+            outer = 0
+            inner = v
         elif self.__position == 'OUTSIDE':
-            outer = self.blend(outer, v)
-            inner = self.blend(inner, 0)
+            outer = v
+            inner = 0
         elif self.__position == 'RELATIVE':
-            outer = self.blend(outer, v * self.__ratio)
-            inner = self.blend(inner, v * (1 - self.__ratio))
+            outer = v * self.__ratio
+            inner = v - outer
         else:
             raise ValueError("unknown thickness position: " + self.__position)
         return outer, inner
@@ -168,8 +169,8 @@
         StrokeShader.__init__(self)
         ThicknessModifierMixIn.__init__(self)
         if position == 'CENTER':
-            self.__outer = thickness / 2
-            self.__inner = thickness / 2
+            self.__outer = thickness * 0.5
+            self.__inner = thickness - self.__outer
         elif position == 'INSIDE':
             self.__outer = 0
             self.__inner = thickness
@@ -178,7 +179,7 @@
             self.__inner = 0
         elif position == 'RELATIVE':
             self.__outer = thickness * ratio
-            self.__inner = thickness * (1 - ratio)
+            self.__inner = thickness - self.__outer
         else:
             raise ValueError("unknown thickness position: " + self.position)
 




More information about the Bf-blender-cvs mailing list