WIP: Sculpt: Plane Trim Brush #111382

Draft
Sergey Sharybin wants to merge 1 commits from Sergey/blender:sculpt_trim_brush into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.

1 Commits

Author SHA1 Message Date
Sergey Sharybin e53ac373c1 WIP: Sculpt: Plane Trim Brush
buildbot/vexp-code-patch-coordinator Build done. Details
This implements a brush that can properly flatten and polish surfaces.
Right now the brush that does a similar thing is Scrape, which has a lot
of limitations and a confusing implementation between scrape/fill/flatten.

In order to solver most of the Scrape brush limitations and artifacts,
this brush does the following:

* It uses its own surface sampling function, which takes into account the
  previous trim plane and samples different radius in different areas.
* Area center and normal are stabilized using multiple samples.
* Instead of combining proxies, the brush runs multiple iterations of
  sampling - deforming to converge towards the plane, similar to smooth.

Before continuing, refactoring and cleaning up the algorithm, it would
be nice to know how do we want to merge it before having brush
management. The options are:

* Add a new Plane Trim tool (best option in my opinion, even if it is
  experimental. This will make things easier for the brush management
  refactor).
* Add this as a deformation mode inside Scrape.
* Add this as a deformation mode inside Flatten.
* Replace Flatten (I still don't quite understand what that brush is for).

NOTE: This is a port of the submitted by Pablo Dobarro to the old developers
      platform: https://archive.blender.org/developer/D9571
2023-08-22 14:10:42 +02:00