2024-03-19 Sculpt, Paint, & Texture Module Meeting

Check the overview thread for more information about the meeting.

Present

  • Hans Goudey
  • Raul Fernandez Hernandez
  • Sean Kim
  • Sergey Sharybin

Since the Last Meeting

  • Sean has been working on gesture tools. The lasso hide tool was committed, and polyline gestures with a different input method are next.
  • Other than that, with available time, the team has been working on bug fixing for the 4.1 release.

Meeting Topics

  • UX: Polyline Gesture
    • Ready for code review
    • Need to poke UI team to help with the icon
  • It looks like there will be more time to dedicate to the sculpt module soon. We loosely discussed priorities, and agreed that spending some time wrapping up the obvious dynamic topology changes made sense, but that overall it would be best to focus on the brush code refactor, multires fixes, longer term multires design (touched on in older design tasks like #84864), and then some aspect of the texture painting project.
    • In the meantime, Raul will continue working on bug fixes, with an emphasis on multires bugs. Sergey and Hans will focus on wrapping up other projects.
  • Sean mentioned he has been looking into low hanging fruit on right click select lately, particularly around area he has been working in. Hans suggested that adding a boolean solver option for the trim tools might be a nice small improvement.
16 Likes

probably a dumb question, but couldnt the “bisect” code be used in those trim tools? :thinking:
the bisect tool seems to have far better performance cutting meshes with a good amount of polys than boolean

2 Likes

Maybe if there was a “Line Trim” tool it would be helpful, but the bisect code can’t handle the more complex box and lasso shapes.

1 Like

there is also the carver addon which is very fast, already bundled with blender.

1 Like

ah, too bad
thanks


Nomad (the sculpting app) is using an opensource library for this kind of stuff… and it seems pretty fast… :thinking:
If Blender could somehow use that as well, it would be great, I think… :slightly_smiling_face:

https://twitter.com/nomadsculpt/status/1678401764729536512

14 Likes

wow, open source? this looks amazing
@Farsthary can we have that boolean power inside of sculpt mode? ^^ :smile:

1 Like

Thanks for the link. I wouldn’t be surprised if there was some sort of catch. There often is with that sort of library. Maybe it requires manifold inputs, or maybe the binary size of the library is massive, etc. Or maybe it would work!

There’s also this work for Blender in development: #114476 - Exact Boolean V2 - blender - Blender Projects

@Howard_Trickey Have you heard of the library linked above?

5 Likes

Just from a quick scan of their README, your first guess was correct:

This library is fast with guaranteed manifold output. As such you need manifold meshes as input, which this library can create using constructors inspired by the OpenSCAD API, as well as more advanced features like smoothing and signed-distance function (SDF) level sets. You can also pass in your own mesh data, but you’ll get an error status if the imported mesh isn’t manifold. Various automated repair tools exist online for fixing non manifold models, usually for 3D printing.

1 Like

Library which is btw made by @elalish who recently contributed the Khronos PBR Neutral tone mapper!

11 Likes

Which is perfectly fine for sculpting purposes… :slightly_smiling_face:

4 Likes

Howard is working on a much better and faster boolean algorithm for exact operations, but the time of arrival is uncertain.

Meanwhile Sean just submitted a patch that switches trimming to use the fast algorithm already in Blender.

Yeah…
This is not meant to replace those more precise methods… they are needed in edit mode…

1 Like

Just a gentile reminder this is a meetings note thread, we’ll allow the occasional short question, but this seems to be getting a bit beyond that. If you want to have a causal chat, i suggest this happens elsewhere.

how fast is it compared to the library above? thats what id like to know

looking at the patch, sean said:

on a mesh with 1.7m vertices, a Trim operation with the Fast solver finishes in roughy 20 seconds as opposed to still being in progress after five minutes with the Exact solver.

it is definitely a massive improvement, but waiting 20 seconds is still very painful

i hope that foss library can do better. and looking at the video, it seems like it does :thinking:


@LazyDodo people are discussing something related to the meeting notes. i cant see the problem
if you got a problem with it, maybe you should split it to a new thread?

devtalk is not meant for this sort of discussion, it’s a developer forum, and a short staffed one at that, we the lack the resources to babysit such threads when people can’t behave them selves. Sorry to be this strict but sadly it’s needed.

but this is development discussion
anyway, its up to you

Thanks for the shoutout, @pablovazquez! Indeed, I think Manifold could be a good solution for Blender’s modeling needs, especially Booleans. It sounds like this isn’t the right place for the discussion, but I’m new to Blender’s forums, so I’m not sure of the appropriate place. If someone wants to start another thread on this and @ me, I’ll be happy to answer any mesh geometry or Manifold API questions.

17 Likes

Very smooth indeed.

@elalish So I believe this could also be used as a voxel remesh alternative to union/subtract meshes together, and with a cleaner result, right?

2 Likes

Yes, exactly, and much faster. And @roundsquare is correct regarding the need for closed meshes, which of course is not everything in Blender. That said, Boolean operations are not particularly well-defined for open meshes anyway.

A possibility: keep track of whether meshes are manifold or not, enabling some features only for manifolds. Manifold has functions for fixing meshes that are close to manifold, as well as for tracking arbitrary vertex properties, even when they have joints, as at a Boolean intersection.

In addition, I wrote the glTF EXT_mesh_manifold extension which gives an efficient way to interchange the manifold losslessly. Supporting this would make it more likely to import manifold meshes.

13 Likes