use ease interpolation for dilate/erode feather option, looks smoother
authorCampbell Barton <ideasman42@gmail.com>
Sat, 16 Jun 2012 15:15:05 +0000 (15:15 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 16 Jun 2012 15:15:05 +0000 (15:15 +0000)
source/blender/compositor/operations/COM_BlurBaseOperation.cpp

index 0e7676dfcef25edea216a9b333596dcec0c42053..a233c7a50aee92849f20f6f24a3a286314222893 100644 (file)
@@ -89,7 +89,8 @@ float *BlurBaseOperation::make_gausstab(int rad)
        return gausstab;
 }
 
-/* normalized distance from the current (inverted so 1.0 is close and 0.0 is far) */
+/* normalized distance from the current (inverted so 1.0 is close and 0.0 is far)
+ * 'ease' is applied after, looks nicer */
 float *BlurBaseOperation::make_dist_fac_inverse(int rad)
 {
        float *dist_fac_invert, val;
@@ -101,6 +102,10 @@ float *BlurBaseOperation::make_dist_fac_inverse(int rad)
 
        for (i = -rad; i <= rad; i++) {
                val = 1.0f - fabsf(((float)i / (float)rad));
+
+               /* ease - gives less hard lines for dilate/erode feather */
+               val = (3.0f * val * val - 2.0f * val * val * val);
+
                dist_fac_invert[i + rad] = val;
        }