August 27, 2021, 08:57 (GMT) |
change 'error' to 'warning' in a printf |
August 27, 2021, 08:51 (GMT) |
Sculpt dyntopo: undo bugfixes * Fixed nasty undo bug related to now rewinding BMLogEntry subchains properly. * Fixed bug in dyntopo collapse |
August 27, 2021, 03:23 (GMT) |
Sculpt dyntopo: Who knew gcc's nonnull attribute is 1-based |
August 27, 2021, 03:10 (GMT) |
Sculpt dyntopo: Cleanup past few commits * Removed some ATTR_NO_OPTs * Made pbvh_split_edges disallowed 4-valence splits if cleanup topology mode is on |
August 27, 2021, 01:00 (GMT) |
Sculpt dyntopo: support sharp edge flags * Sharp edge flags are now supported and are treated much the same as face set boundaries: + Dyntopo preserves them + Interior smoothing treats them as boundaries + Corners are detected and pinned in smoothing + TODO: add a brush flag to ignore sharp boundaries for smoothing. * Seams are also preserved, but don't affect smoothing. * BMLog now saves edges. * The new edge split function is enabled. * Dyntopo now pushes new combined BMLog entries in its top-level function, to avoid scary id reuse edge cases. * SCULPT_vertex_is_boundary/corner now take a bitmask of which types of boundaries you wish to query instead of check_face_sets. |
August 25, 2021, 10:01 (GMT) |
commit prior to small cleanup |
August 24, 2021, 20:18 (GMT) |
* Implemented bounday/face set corner handling. * New function SCULPT_vertex_is_corner, similar to SCULPT_vertex_is_boundary it takes argument to check face sets. PBVH_FACES/GRIDS version is incomplete. It returns a bitmask of whether the vert is a boundary corner and/or a face set one. * PBVH_BMESH uses a somewhat more expensive calculation to detect corners of face set islands by edge angle. This is currently not done for boundary corners. Corner pinning now happens in: * The internal smoother dyntopo uses for stability reasons. * SCULPT_vertex_neighbor_average_interior. * Topology rake. * Dyntopo collapse. Note that DynTopo always pins face set corners but everything else only does so if preserve face sets is on. |
August 24, 2021, 05:55 (GMT) |
Sculpt dyntopo: more smooth stuff * All of the smooth brushes now use the SculptCustomLayer system for temporary data, so all work with dyntopo now. * You can now use a flat array in SculptCustomLayer with PBVH_BMESH (though you have to build the structure manually). The mesh filter code uses this. * Smooth (and autosmooth) now have an option to preserve face set boundaries. Corners are currently not handled. * Simplify brush has preserve face set boundaries autosmooth flag set by default. * SCULPT_vertex_is_boundary now takes an addition argument for whether to check for face set boundaries. |
August 24, 2021, 04:06 (GMT) |
Sculpt dyntopo: Smooth improvements and bug fixes * Added an option to weight smooth by face areas * Dyntopo now caches face areas in a CD_PROP_FLOAT layer * Dyntopo also caches number of edges around verts inside of MDynTopoVert. To avoid increasing the struct size flag was made a short. * Cleanup mode (dissolves 3/4-valence verts) now piggybacks on subdivide code to build list of verts; this is much faster. |
August 23, 2021, 09:28 (GMT) |
Sculpt dyntopo: fix mem cache test function, how did this ever work |
August 23, 2021, 08:19 (GMT) |
Dyntopo Sculpt: Wrote new edge split code, currently disabled |
August 22, 2021, 20:31 (GMT) |
I hate default int |
August 22, 2021, 20:16 (GMT) |
Silly me, don't use alloca in this situation |
August 22, 2021, 20:15 (GMT) |
Fix compile error on linux |
August 22, 2021, 19:51 (GMT) |
Sculpt dyntopo: Temp fix for nasty GCC compiler bug on linux. I'll file a bug report with GCC tomorrow. |
August 22, 2021, 17:29 (GMT) |
Sculpt dyntopo: Fix a dumb mistake I made in space_toolsystem_toolbar.py |
August 22, 2021, 03:46 (GMT) |
fix signed/unsigned warning |
August 22, 2021, 03:40 (GMT) |
Sculpt dyntopo: Finished bmesh cache coherency tester To run, in the python console enter: bpy.msgbus.pbvh_bmesh_do_cache_test() The output will be in the regular console. The test build a half-million vert cube and smooths it. It runs several passes (all of which perform the same smoothing operation): 1; Randomized order pass 2. Ordered pass (by vertex clustering) 3. Same as 2 but with a purely data-oriented version of the bmesh structs. 4. Same as 2, but using a version of the bmesh structs with all pointers replaced by integer indices. At least on my laptop #3 and #2 are about a third faster then #1, and #2 tends to be around 15%. |
August 21, 2021, 22:19 (GMT) |
Sculpt dyntopo: Don't allow dyntopo when multires modfier exists Note that thoeretically we could support multires in dyntopo, but numerical instability would probably make the grid data explode. |
August 21, 2021, 03:52 (GMT) |
Sculpt dyntopo: disable mem cache test executable from compiling altogether |
|