2024-11-25 Modeling Module Meeting

Day and Time: 2024-11-25T13:00:00Z

Present

  • Howard Trickey
  • Campbell Barton
  • Nika Kutsniashvili
  • Tolga Yildiz
  • Thomas Dinges
  • Jason Wenger

Discussion Topics

Extrude Boolean PR

This has been tried by a number of users and it seems to generally do what people were hoping the current Extrude Manifold tool would do.

Howard is working on the review, mainly fixing code style and other such minor issues so far.
A topic for discussion is: this PR essentially duplicates the fast boolean code in order to add coplanar intersection, but specifically for the use in the Extrude Boolean. Originally, the modified fast boolean code was offered as a separate PR but issues regarding exact expectations of a boolean were bogging down the review.
Attendees of the meeting discussed whether this near duplication of code was OK and consensus was that, while not ideal, it could be tolerated here.
For example, there were specific things in the code to deal with planes that might not be wanted in a general boolean.
Also the future of the float boolean is unclear at this point, with the upcoming Manifold Boolean that Howard is working on.

Code Quality Project

We had decided a few meetings ago that our module’s Code Quality Project would be about paying some attention to old issues.
Thomas requested that we write this up and link it into the Quality Project Overview Page

Currently Campbell has been working on clearing up the high priority bugs.

Shift Extrude and Duplicate
Nika mentioned this PR about a modifier key to transform gizmos that could do duplicates / extrudes.

Nika notes that the developer seems inactive now but that all that appears to remain is finishing the review; can someone do it?
No-one among the attendees immediately volunteered to do this, but it has our attention.

Face Orientation Problems Overlay

Nika notes that the UI module has made overlay for correct face orientation better (transparent, only marking wrong orientations).
He asks: do we want to make this default in startup files? For new users?
Campbell: this a bit opinionated - rendering doesn’t care. Nika: sometimes it does. Howard: what about cases where inside/outside is not clear (non-manifold). Tolga: as default, would find it quite invasive. Nika: how about only enabled in some workspaces, like modeling. Thomas: there were some attempts a few years ago to have beginner’s workspace.

Automerge Vertex Mode

Nika notes that automerge vertex mode (which will automatically merge vertices that suddenly overlap within some tolerance) is too limited: it works after the move tool, but there are many other tools that could benefit (e.g., after a bevel where the offset limiting has made two vertices overlap).
Yet it probably isn’t universally desired (e.g., if you extrude 0 distance, as a prelude to some thing else, you don’t want that extrude undone by automerge!).
Nika volunteered to write a design task to discuss which tools should object automerge.

Face Corner Selection

Tolga discussed his PR which can allow selection of a face corner (a face along with a particular vertex in that face).
His motivation is to use this as a building block to implement “manifold-preserving operations”.
For example, if you connect opposite corners of a cube with an internal edge, that is no longer manifold.
But if you add certain internal faces, it can be manifold.
By selecting face corners instead of just vertices to make the edge, the operation has enough information to know which faces to make.

Nika: wondering if this is a true corner selection or just needed for this particular application (manifold-preserving). Howard: would be good for custom normal editing, or in general, setting custom attributes on face corners for use of geometry nodes. Campbell: making face corners work across all parts of blender (e.g., all selecting tools; drawing modes; selection flushing): quite a big project. Editing custom data is the obvious use case for this. However, how this is implemented may depend on what we intend to use it for. Nika: should consult with Hans Goudey who has lately worked on setting attributes in edit mode and also custom face corner attributes, including custom normals. Howard: make a design task please.

Next meeting:
2024-12-09T22:00:00Z.

Shared calendar of all Modeling Module meetings.

21 Likes

good to see this still on the radar
people have been waiting for this for a long long time :v:

1 Like

Oh wow! I had no idea this was coming to blender. I have always thought about this, this will help with UV-ing as well.

I suppose this would be in edit mode hitting 4? 1- vertex 2-edge 3- face 4- face corner yes?

3 Likes

One single user opinion: agree, automegre should be an option, turned off by default.

From the very first steps with Blender, while transitioning from 3DS Max, I was and still am fascinated by the freedom Blender gives to artists in terms of forgiving non-manifold modelling.

In some other softwares, some of the modelling operations and sequences of operations simply are not allowed or are leading to crashing or saved file corruption.

The current (unintended) non-merge of a zero distance extrusion or inset is a constant bother, and one that I’ve never had in other 3D software. It’s just too easy to get duped elements and not even notice it for awhile. The Merge operator of course does fix the geometry, but it’s also an operation I almost never used until I came to blender.

I don’t know that an operator auto-merge by default is the correct solution, but … there’s definitely room for improvement somewhere here.

3 Likes

In the same way that Alt+D extends vertices and edges, it could extend faces, leaving the vertices unwelded. Meanwhile, the rest of the actions could be executed in a single step, that is, duplicating the faces and moving them in a single undoable action, preventing unintentional duplication of vertices.

I understand how annoying it is to ene up with double vertices after incorrectly cancelling extrusion. But I was thinking it should not be handled by “auto-merge vertices” option because in number of cases that is intentional.

For example when you have non manifold cylinder and you extrude, cancel, and then scale new created verts inwards. It would be annoying if it merged those verts after extrusion and you had to turn off auto merge verts.

Im open to changing my mind, maybe consistency is more valued, what do others think?

I think having overlay for double verts will make issue less important because you’ll not miss incorrect extrusions, and merging wouldnt be as necessary.

3 Likes

Yes, this feature is intended to be in edit mode with 4 as the hotkey for it. This can be used for setting face-corner attributes, but my long term goal is the introduction of manifold-preserving operations. Hopefully this week I will compile a design task document to further elaborate on this set of features.

5 Likes

Absolutely wonderful!


Some apps “explode” the mesh in the face corner mode. I guess this would be a new paradigm in blender, having a mode affect the mesh in such a way. Would this mode handle it like this do you think?

What does that mean?

2 Likes

In the PR I had a screenshot with the “face+vertex” selection:

I was thinking of using something similar to “face dots”(the dots in the middle of the faces when X-ray is enabled) for selection, but towards the corners of the faces. It would be called “corner dots”. Exploded view like the one that you are showing looks cool but only problem is that for complex meshes the exploded view may not work and could be cluttered with too much visual noise. Corner dots would be highlighted after selection but that is still WIP.

1 Like

Gotcha, so something like this actually


I like that better actually!

4 Likes

Great question, I will detail all of these in my design task for this feature and another PR for specifically “manifold-preserving-operations”. A summary would be the following though:

Given a 2-manifold(or manifold in the regular modeling context) mesh, any operation that you carry out on the mesh will leave the mesh 2-manifold, i.e. it is impossible to create “non-manifold” topology with these operations. For example think of a cube and you want to add a vertex between the opposite corners (creating a body diagonal edge), normally if you create an edge between them with the regular edge_face_add operator it would create a non-manifold vertex at the corners. But with these “manifold preserving operations” if you use an insert edge operator it preserves the 2-manifold properties by reorganizing the face loops around.

I am currently developing these operators(or utils) to be accessed from the python module first without relying on the viewport selection in the following dev branch. Then I will combine UI part later by operator(utils) calls.

2 Likes

@Bobo_The_Imp Where did you get these screenshots?

Oh. I just mocked it up just now.

1 Like




If you want, here are some mathematically more precise versions, other than just me drawing dots manually. Simple mesh up to more dense one.

3 Likes

This would be also usefull for the UV selection sync, being able of selecting a corner and even more important, seeing what corner its being selected it would be great.
Really like this mockup idea

Yea it might also help boost getting UV selection sync on by default, which has been on the workboard from many years now.

Having face corners as a selection mode would also clarify the Rip command that technically operates on face corners and not vertices. Right now it can be quite unintuitive what specific corner gets ripped.

5 Likes