Had a bit more of a look/think about this and deriving the correct shape is not trivial, I think this kind of functionality would make more sense as an extension on what is in the corrective shape keys addon.
May 23 2015
May 13 2015
I can think of a few ways this could be made to work...
- It could just apply all deform modifiers up until the corrective smooth modifier. (but that will bake the pose in too - which isn't typically what you want)
- It could calculate the deformation thats being applied to the previous modifier, then apply the deltas to a shape key on the base mesh (using per vertex tangents).
I'm interested to see how this could work, but its not a software error, moving to design task.
May 11 2015
Mar 31 2015
Thanks for all your help with review and fixes.
Mar 30 2015
@Jack Simpson (sazerac)
The smoothing algorithm seems rather strange (multiplying the edge by its length & accumulating),
is this based on some known good/working smooth method? or is it something you came up with yourself?
I tried some different methods, but found the most simple smoothing method works quite well. rB46f83e7391b637d16d81dc12a2d21bab912c5afd
Its stronger then the one is this patch (2x - 3x),
From my tests with 10 iterations, a factor of 0.5, it gets a good result which requires more iterations with the current method used in this patch.
Its committed to the branch but I didn't include in this diff since its changing behavior.
Mar 29 2015
@Campbell Barton (campbellbarton) just looking through your changes on the new branch, looks good, and looks like I have lots of reading on C optimisations to do at some point.
Mar 26 2015
Mar 23 2015
- Change ui range of smoothing factor to positive only
Posted a thread on BA: http://blenderartists.org/forum/showthread.php?366313-Delta-Mush-Modifier
Mar 22 2015
- Addressed a few more review comments - turns out I already know how long the vectors I am using form normal weighting are - I normalised them already.
- More fixes, including removing the DerivedMesh copy
@Campbell Barton (campbellbarton), I have addressed you comments so far, and I was wondering, is there a simpler way of setting up the bind button in the UI that defining a whole operator just to essentially flip a bit?
- Address some more review comments, including moving invalidation of deltas to rna callbacks
Mar 21 2015
Thanks. Yeah I'm planning on making a thread on BA when I got the code fairly stable and sorted out.
Update the patch with boundary pinning.
- Address some review comments and add in pinning for boundary verts.
Mar 19 2015
- fix smoothing
Did a big tidyup and a bunch of improvements.
Massive rework of modifier.
- Changed to use first face/loop tangent to calculate tangent space
- Now directly calculates tangent space
- Now uses new edge weighted smoothing method
- Now stores rest positions of vertices and re-calculates the deltas when smoothing params change
- Vertex groups now only apply to the smoothing, and deltas are re-calculated when weights change (this should lead to a more intuitive effect)
- smoothing is now always displayed when not bound
- when bound, there is now a toggle to display only the effects of smoothing
Mar 18 2015
Thanks, I just had a quick shot with that and initial tests look good, no spinning around normals of the deltas so far.
Mar 17 2015
Didn't get as far as I hoped with changes tonight, so no new patch.
Mar 16 2015
bobizib, thanks for the link to the paper, I'll have a read and see about trying that smoothing alg.
Added an updated diff with warning stuff + smoothing method change
- Campbell Barton's warning fixup + a couple of changes
- Change smoothing method to use normal smooth modifier
Thanks Matt Heimlich,
Interesting about the smoothing mode. I'll take a look tonight when I get home from work. I did notice that the smoothing effect did seem to end up being pretty localised.