Blender Git Commits

Blender Git "temp_bmesh_multires" branch commits.

Page: 3 / 21

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
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021