September 14, 2021, 03:14 (GMT) |
Sculpt dyntopo: fix nasty node splitting bug |
September 14, 2021, 02:24 (GMT) |
Sculpt dyntopo: * Fixed noise on using autosmooth with tools that use original coorinates. While this was most prominent with DynTopo, it did happen with other tools. * The solution is to smooth the original coordinates as well as the explicit coordinates if the active tool requires original data. * I decided to replace the original coordinates system for PBVH_FACES and PBVH_GRIDS with the same MDynTopoVert structure DynTopo uses. The alternative would have been extremely messy code. * Todo: Rename MDynTopoVert to. . .SculptInfoVert? * Todo: Cache boundary flag and corner info in MDynTopoVert->flag for PBVH_FACES/GRIDS similar to PBVH_BMESH. |
September 13, 2021, 09:31 (GMT) |
Sculpt dyntopo: more collapse fixes The edge cases just never end. |
September 13, 2021, 06:39 (GMT) |
Sculpt dyntopo: * A few more collapse fixes * Fixed boudary handling in surface_smooth_v_safe |
September 11, 2021, 20:38 (GMT) |
Dyntopo sculpt: fix bug with boundary flags |
September 9, 2021, 18:06 (GMT) |
Sculpt dyntopo: Added a 'hard edge mode' option to forcibly set autosmooth_fset_slide to zero (i.e. treat face set boundaries as hard edges and not project them on the surface). |
September 9, 2021, 07:21 (GMT) |
Add more int casts for linux |
September 9, 2021, 07:18 (GMT) |
Sculpt dyntopo * Non-manifold "fins" are now detected and automatically deleted. * Fixed compile error on linux. |
September 8, 2021, 23:51 (GMT) |
Sculpt dyntopo: * Collapse now uses code from decimate to detect degenerate cases. * Remaining, unknown (and rare) degenerate cases are now detected (via presence of duplicate verts in faces) and fixed. * DynTopo fills in undo size properly now, so undo memory limiting works. |
September 8, 2021, 07:49 (GMT) |
Sculpt dyntopo: * BLI_table_gset now internally uses a SmallHash instead of a GHash. Profiling revealed this to be quite a bit faster. * This is something of a stopgap until C++-afication of pbvh, when we'll have our pick of a bunch of really nice C++ hashmap libs. * pbvh_collapse_edge bites the dust; dyntopo now uses BM_collapse_edge. Of the three topology operations (subdivide edge, collapse edge, dissolve 3/4 valence vertex) only dissolve still has a dyntopo-specific implementation. * Fixed a bunch of annoying memory corruption bugs. * Non-manifold triangles are now detected in more places. SmallHash changes: * Enabled removal * Fixed infinite loop bug caused by improperly counting free*d* cells versus free cells. * Added a BLI_smallhash_ensure_p method that works just like the GHash version. Sculpt replay system * Roughed out a simple system to record and play back sculpt strokes using a simple text format. * This is exclusively for performance profiling and unit tests. * For each brush stroke the system saves a copy of the active StrokeCache and PaintStroke and parts of Sculpt. This should make profiling DRAM thrashing a lot easier. |
September 3, 2021, 06:19 (GMT) |
commit working code |
September 2, 2021, 18:42 (GMT) |
Linux's gcc's flags are evil |
September 2, 2021, 18:32 (GMT) |
Fix warnings |
September 2, 2021, 18:26 (GMT) |
Fix compile error |
September 2, 2021, 18:08 (GMT) |
Sculpt dyntopo: increment subversion. |
September 2, 2021, 18:02 (GMT) |
Sculpt dyntopo: change brush defaults and fix bug * Changed brush defaults a bit. New defaults are for organic modeling. * autosmooth_fset_slide now defaults to 1, so face set boundaries are smoothed but stick to mesh surface (if 0 they would function as hard edges). * Weight by area smooth mode is on by default for all brushes. * Cleaned up versioning code and made it kick in at 3.00:21, with some simple checks to try and detect existing data from beta testers. * Also fixed a small crash bug. |
September 2, 2021, 07:02 (GMT) |
Merge branch 'master' into temp_bmesh_multires |
September 2, 2021, 04:32 (GMT) |
commit before merge |
September 1, 2021, 18:47 (GMT) |
Sculpt dyntopo * Wrote a simple fix for drawing face sets in inverse (ctrl) mode with face set automasking on. * Various fixes related to hard edges and smoothing. * Started writing some code to defragment bmesh mempools. Need to figure out how to avoid triggering excessive PBVH node rebuilds. |
August 30, 2021, 22:04 (GMT) |
Sculpt dyntopo: Dynamic field-propegated topology rake I might write a paper on this. Topology rake now locally updates a vector field, which it uses to smooth the input and constrain to mesh (including face set) boundaries. This can make an enormous difference for things like smoothing. Note that this is different from the existing 'curvature rake' mode, which also builds a field and which is fed into the input of this new one. The only oddity is that the field is stored in a CD_PROP_COLOR since we don't have a CD_PROP_FLOAT4, and this shows up in the UI (not sure if I'm messing up the CD_TEMPORARY flags or if the UI doesn't check for them). |
|