Page MenuHome

Sculpt: Regularized Kelvinlets brushes
ClosedPublic

Authored by Pablo Dobarro (pablodp606) on Fri, Aug 30, 4:15 PM.
Tags
None
Tokens
"Dat Boi" token, awarded by shader."Love" token, awarded by HAWk_."Love" token, awarded by johnsyed."Love" token, awarded by kookitoo."Like" token, awarded by YAFU."Love" token, awarded by Zino."Like" token, awarded by erickblender."Love" token, awarded by jfmatheu."Burninate" token, awarded by EitanSomething."100" token, awarded by satishgoda."Like" token, awarded by eobet."Like" token, awarded by theois."Like" token, awarded by amonpaike.

Details

Summary

This patch implements the paper "Regularized Kelvinlets: Sculpting Brushes based on Fundamental Solutions of Elasticity" https://graphics.pixar.com/library/Kelvinlets/paper.pdf

It includes grab, biscale grab, triscale grab, scale and twist.
All Kelvinlets are accessible under the same tool. This helps to keep the code organized and it should not make any difference to the user if this proposal is implemented. https://devtalk.blender.org/t/the-tools-brush-workflow/9111/11?u=pablodp606

Diff Detail

Repository
rB Blender

Event Timeline

  • Fix artifacts in scale and twist
Brecht Van Lommel (brecht) requested changes to this revision.Fri, Sep 6, 7:43 PM
Brecht Van Lommel (brecht) added inline comments.
source/blender/editors/sculpt_paint/sculpt.c
2925–3171

Add a comment with the name of the paper for reference. Something like:

/* Regularized Kelvinlets: Sculpting Brushes based on Fundamental Solutions of Elasticity
 * Pixar Technical Memo #17-03 */

Bonus points for adding comments with the formula numbers from the paper.

2926

itearion -> iteration

2949

Weird indentation.

2997

itearion -> iteration

source/blender/makesrna/intern/rna_brush.c
94

Can we name this something like "Elastic Deform"? "Kelvinlet" is a pretty obscure name.

1692

Name this deform_type?

1832

Name this "compressibility"?

This revision now requires changes to proceed.Fri, Sep 6, 7:43 PM
Pablo Dobarro (pablodp606) marked 7 inline comments as done.Fri, Sep 6, 11:14 PM
Pablo Dobarro (pablodp606) updated this revision to Diff 17929.
  • Rename Kelvinlet to Elastic Deform
  • Move kelvinlet parameters to a struct for better organization
  • Rename poisson_ratio to compressibility
  • Fix naming
  • Rebase
This revision is now accepted and ready to land.Fri, Sep 6, 11:44 PM
  • Rename poisson_ratio to compressibility

Note that the Poisson's Ratio represents how much a solid deforms transversally when a longitudinal force is applied to it, so the transversal section goes thinner for traction longitudinal forces, and thicker with compression longitudinal forces. It's a common term in rigid solid mechanics and it will be missed with this relabeling. "Compressibility" is not related to this, it's not even a concept applied to solids' physics but fluids', and in any case I'm not sure if it provides a clear insight towards the behaviour of the tool when tweaking this property. So I would keep the Poisson's Ratio concept present somewhere, in the description at least; but maybe keeping it as property name accompanied with a description like "amount of transversal deformation caused by every (axial) deformation applied" is more suited and hopefully understandable enough.

One last thing: this property is hardly ever over 0.5 for real materials, and has an average value of 0.3. Maybe it's a good idea to reflect this in the ui, while introducing a value up to 1 manually is allowed.

So I would keep the Poisson's Ratio concept present somewhere, in the description at least; but maybe keeping it as property name accompanied with a description like "amount of transversal deformation caused by every (axial) deformation applied" is more suited and hopefully understandable enough.

That's much too technical, we can't assume a user knows what "transversal deformation" means.

If "Compressibility" is confusing for someone who knows physics, we can rename it to something like "Volume Preservation".

The description can be something like. "Poisson ratio for elastic deformation. Higher values preserve volume more, but also lead to more bulging".

One last thing: this property is hardly ever over 0.5 for real materials, and has an average value of 0.3. Maybe it's a good idea to reflect this in the ui, while introducing a value up to 1 manually is allowed.

We can test if 0.3 works better, but really this is something we should decide empirically. We're not doing an actual physics simulation here and digital sculpting is not necessarily most useful with real material parameters. The paper shows higher values than 0.5 are useful, so I wouldn't set even a soft limit on that.

I know, but I had to point it out. As long as the expression "Poisson's Ratio" is not lost, I think it's ok. I find both Volume Preservation as property name as well as the new description so much better. Thank you.

This revision was automatically updated to reflect the committed changes.