Blender Git Commits

Blender Git "temp_test_sc_keymap" branch commits.

Page: 13 / 43

May 15, 2021, 01:26 (GMT)
* Prototyped a faster smooth algo, currently disabled.
* Wrote a new API for wrangling temporary customdata layers across pbvh types:
- SCULPT_temp_customlayer_ensure: makes sure a (named) customdata
layer exists. Works for multires; since these are temporary
layers we can safely allocate them in a temporary CustomData
structure (in ss->temp_vdata).
- SCULPT_temp_customlayer_get: initializes a special structure,
SculptCustomLayer, that is used to get per elem customdata.
- SCULPT_temp_cdata_get: Uses a SculptCustomLayer ref along with
a SculptVertexRef to look up the data.
May 14, 2021, 22:56 (GMT)
Did some profiling with VTune.
* Sculpt code seems to be memory bandwidth bound.
* Some key topology loops will have to be written manually
instead of using BM_ITER.

I wrote a function to re-allocate a bmesh with elements ordered by
PBVH leaf nodes, SCULPT_reorder_bmesh. It's currently disabled.

This is going to take more profiling, but my original proxy refactor
idea might be worth revisiting. Might be more cache efficient.

The good news is that the worst case is the smooth code, which I can speed
up significantly by keeping a bit of state around.
May 14, 2021, 17:09 (GMT)
Merge branch 'master' into sculpt-dev
May 14, 2021, 17:08 (GMT)
Merge branch 'master' into sculpt-dev
May 13, 2021, 15:43 (GMT)
Merge branch 'master' into sculpt-dev
May 13, 2021, 05:27 (GMT)
Update ATTR_NO_OPT macro
May 12, 2021, 23:22 (GMT)
Dyntopo branch

* Sculpt expand now works with dyntopo in more cases
* Fixed various dyntopo face set bugs

Stuff from several commits ago:

* There is now an API to get face sets using SculptFaceRef's.
+ SCULPT_face_set_get
+ SCULPT_face_set_set

* Prototyped a faster geodesic propagation function, but it currently
doesn't work.

* Dyntopo triangulation now preserves face flags (took some work as BM_triangulate_face explicitly prevents selection flags from being preserved).
* Also face smooth flags are no longer being overriden.
* Most of the faceset create operators work (I'm not sure I've tested
all of them though).
* SCULPT_face_set.c now has helper functions that checks if a pbvh
is *not* PBVH_BMESH, in which case it builds a temporary bmesh,
otherwise ss->bm is used (sculpt_faceset_bm_begin and sculpt_faceset_bm_end).
+ Note that some functions were able to use SCULPT_face_set_XXX
instead and avoid bmesh entirely.
May 12, 2021, 05:57 (GMT)
Fix nasty edge case for BMLog.
May 12, 2021, 04:48 (GMT)
Remove yet more debugging crap . . .
May 12, 2021, 04:46 (GMT)
Get rid of various ATTR_NO_OPT debug attributes left from two
commits ago.
May 12, 2021, 04:45 (GMT)
Fix bug in last commit.
May 12, 2021, 04:14 (GMT)
Today I ran outside screaming and an hour later came back in and made BMLog
reference counted. This fixes various undo bugs caused by dyntopo
needing to execute an undo push but not being able too (e.g. during
file load, and I think it also happens sometimes with global undo).

A much better way of fixing this would be to add unique IDs to mesh
verts and faces, perhaps as a customdata layer.

The root problem is that BMLog assigns unique IDs to mesh elements,
which it does via a series of GHash's. I imagine this is a fairly
serious violation of the undo system's design rules, since it means
BMLogs are tied to specific instances of the bmesh in SculptSession->bm.

There were some hacks to try and get around this, but they were buggy
and needed to push the unstack stack to work, which wasn't possible in
all cases (e.g. if G_MAIN->wm.first->undo_stack is NULL, as it is during
file loading and apparently global undo).

Anyway, long story short each chain of SculptUndoNodes needs some way
to reconstruct their ID GHash's when exiting/entering the chain. The
only way I could think to do this was to make BMLog reference counted,
with BMLogEntry the users.

Like I said, having a proper system to assign unique IDs to mesh
elements would be *much* better.
May 11, 2021, 21:18 (GMT)
Merge branch 'master' into temp_bmesh_multires
May 10, 2021, 17:01 (GMT)
Merge branch 'master' into sculpt-dev
May 7, 2021, 14:04 (GMT)
Get face set create operator working for dyntopo
May 5, 2021, 15:52 (GMT)
Merge branch 'master' into temp_bmesh_multires
May 2, 2021, 21:29 (GMT)
* Added new paint API method paint_stroke_apply_subspacing, for various
things that need custom spacing (that is coaser than the brush radius),
and refactored the existing dyntopo spacing code to use it.

* Added option to topology rake to ignore brush falloff settings
(it forcibly uses Smooth falloff).

* Smooth and topology rake support custom spacing now.
+ This is especially important for the clay brush, which works
better at smaller spacings and with a bit of autosmoothing.
Now you can tell it to override the smooth spacing to be coarser,
leading to much better performance.

* Topology rake now has a projection setting similar to autosmooth
which defaults to 1.0 (to preserve current behavior).

The main motivation for this commit was to make topology rake work
better for normal brushes. This is now possible, however it tends to
make the brush slower and also the settings are a bit fiddly.
We might want to make dedicated brush presets for this.

Btw, the UI for brush settings are becoming a real mess. Help!
May 2, 2021, 17:54 (GMT)
* Added a "projection" option to smooth/autosmooth. It works by
projection neighboring vertices onto the current smooth vert's normal
plane, multiplied by a "projection" factor. This is extremely similar
to what the surface laplacian produces, but is much simpler, uses
no temporary state and thus can be used in more places.
April 29, 2021, 17:17 (GMT)
Merge branch 'master' into temp_bmesh_multires

Also fixed a pose brush bug that may or may not have been
the result of the merge nixing code, need to check master.
April 29, 2021, 15:01 (GMT)
Fix a few cast warnings
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021