[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49031] trunk/blender/source/blender/ blenkernel/intern/mask_rasterize.c: change bucket size to give better performance for high detail 4k masks, also clamp from 0-1 for each layer when accumulating.
Campbell Barton
ideasman42 at gmail.com
Wed Jul 18 15:34:14 CEST 2012
Revision: 49031
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49031
Author: campbellbarton
Date: 2012-07-18 13:34:14 +0000 (Wed, 18 Jul 2012)
Log Message:
-----------
change bucket size to give better performance for high detail 4k masks, also clamp from 0-1 for each layer when accumulating.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/mask_rasterize.c
Modified: trunk/blender/source/blender/blenkernel/intern/mask_rasterize.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mask_rasterize.c 2012-07-18 12:56:36 UTC (rev 49030)
+++ trunk/blender/source/blender/blenkernel/intern/mask_rasterize.c 2012-07-18 13:34:14 UTC (rev 49031)
@@ -51,7 +51,8 @@
#define SPLINE_RESOL_CAP_MIN 8
#define SPLINE_RESOL_CAP_MAX 64
-#define BUCKET_PIXELS_PER_CELL 8
+/* found this gives best performance for high detail masks, values between 2 and 8 work best */
+#define BUCKET_PIXELS_PER_CELL 4
#define SF_EDGE_IS_BOUNDARY 0xff
#define SF_KEYINDEX_TEMP_ID ((unsigned int) -1)
@@ -60,8 +61,9 @@
#define TRI_VERT ((unsigned int) -1)
/* for debugging add... */
+#ifndef NDEBUG
/* printf("%u %u %u %u\n", _t[0], _t[1], _t[2], _t[3]); \ */
-#define FACE_ASSERT(face, vert_max) \
+# define FACE_ASSERT(face, vert_max) \
{ \
unsigned int *_t = face; \
BLI_assert(_t[0] < vert_max); \
@@ -69,6 +71,10 @@
BLI_assert(_t[2] < vert_max); \
BLI_assert(_t[3] < vert_max || _t[3] == TRI_VERT); \
} (void)0
+#else
+ /* do nothing */
+# define FACE_ASSERT(face, vert_max)
+#endif
static void rotate_point_v2(float r_p[2], const float p[2], const float cent[2], const float angle, const float asp[2])
{
@@ -1234,9 +1240,13 @@
value += value_layer;
break;
}
+
+ /* clamp after applying each layer so we don't get
+ * issues subtracting after accumulating over 1.0f */
+ return CLAMPIS(value, 0.0f, 1.0f);
}
- return CLAMPIS(value, 0.0f, 1.0f);
+ return value;
}
#endif /* USE_RASKTER */
More information about the Bf-blender-cvs
mailing list