Snapping & precision modeling improvements

I think I would be down for presets. Of course as every time presets are involved there should be a set of good defaults. But I think it’s worth the complexity : often when doing retopology I have to switch between vertex and face snapping, because while I want the retopo mesh to snap to the sculpt object’s faces (obviously), I also want it to snap to its own vertices for merging purposes. If that kind of discrimination becomes possible it would streamline things quite a bit. Sure, collapsing or merging vertices/edges can be done with the dedicated commands, but the workflow of just bringing a vertex over to another to merge them is very natural, especially within the “kinetic” workflow of sculpting & retopologizing, and I use it often. Maybe that’s just me?

Edge center and edge perpendicular I use for more mechanical models, I’d say if it overlaps with other snap targets those would be vertex and edge. Volume I personally only use in armature edit mode for placing bones within geometry, but then again I might be underutilizing the feature.

I’m not entirely sure what all the filters do in your mockup, but I’d say “edited object” is the most important. If you’re editing several objects at the same time, you probably want them to behave as one, in the sense that you don’t want to discriminate between “self” and “other edited objects”. I think also having an explicit snap target object/collection would go a long way in simplifying many of these combinations.

Thanks for the proposal ! I love seeing movement on that front

3 Likes

Good to see the interest @Hadriscus :slight_smile:

The filters shown are equivalent to the current Target Selection.
image

Those options were added by commit 011327224e, however the benefits are still unclear.

It seems convenient to hide most of the filters (as is done for Restriction Toggles in the outliner).

1 Like

From looking at it I don’t think it is something I would personally use. It does seem overcomplicated.

But also I have met many blender character artists who don’t know what face nearest is or how it is really good for retopology. So maybe a preset for that will help them discover it organically.

2 Likes

Could you explain exactly what those four buttons toggle? It’s not clear to me. It seems like toggle for edit mode and object mode? But what is selection button for? I’m very confused. I haven’t read start of the topic is “Non-Edited vs Edited” explained somewhere?

Updates

I changed the UI and made the build functional.

You can test through the build at: #108734 - WIP: UI: Snapping Redesign: Presets and filter support - blender - Blender Projects

I tried to make it as uncomplicated as possible.


Include Active Edit Mode
Snap to other mesh elements of the active object.
This checkbox is ignored if Proportional Editing is enabled.

Include Edited Edit Mode
Snap to other objects that are also in Edit Mode.

Include Non-Edited Edit Mode
Snap to other objects that are not in Edit Mode.

Exclude Non-Selectable
Snap only to objects that are selectable.

17 Likes

Is there really a usecase to flag these per snap mode?

The options are useful for various things but I can’t think of a need to be this specific, as those feel more like ‘global’ snapping behaviour toggles.

2 Likes

Can’t it be a modal option in the existing tools as well? The idea is that you can toggle the Base point snap on/ off.When it’s off, it behaves like it always did, when it is on, you first set the basepoint and then transform.

You could add the option to preserve the basepoint for subsequent transforms (e.g. move first and then rotate using the same basepoint) or to pick the basepoint for each individual transform operation.

I am really exited to see this new snapping functionality.

Looks like RTOs filter from Collection Manager.
Not sure what kind of a practical workflow may require such kind of a flexibility in snapping though.

I would prefer to be careful with implementing something like that - it is not that hard to flood the software with unnecessary functionality making it overcomplicated, so it is always reasonable to detect and cover critical demands first, especially at the core level.

Thank you for the clarification, I understand now, but I have to say naming of those four options are very bad. Looking at the names before reading your comment I assumed actual opposite of that, no kidding. I can’t see any beginner understanding what those are without reading tooltips or documentation. I would also suggest rethinking icons, because those icons are associated with some things in Blender and might confuse users. I’m not say change it they might be correct, but we need to think.

Also what I would suggest:

  1. Make all four of those disabled by default, so that new users, or those who don’t have use for it don’t have to take it into account. We already see people in this thread who don’t have a use for it, but I have, so just hide it for them and few people who use it will turn on by themselves.

  2. Make presets enum (or whatever that is) fit entire width of the panel, it’s ugly and text would be impossible to read with long names.

Hi Mano-wii.

Personally, I find that the latest version organizes and simplifies the options, and does not overload.

Things that may not have to do with the organization, but I think would help to understand how snaps works:

  • In Object Mode and Closest, temporarily show the Bounding Box to see how the fit is done.

  • Use Center by default and not Closest, because with the Set Snap Base option it makes less sense.

  • Title and rename filters:
    Snap on:
    _ Active → Self object
    _ Edited → Edit mode objects
    _ Non-Edited → Object mode objects
    _ Non-Selectable → Non-selectable objects

  • Although you can duplicate an object and snap its mesh in Object mode, perhaps it could be attached when Active is on.

Closest and Basepoint are supposed to be used together. The first one is fast and the second is exact.
You sort of cannot replace speed with exactness.

We actually made a massive test in this area.
We discovered the absence of a viable basepoint snapping in 2008 when tried Blender in the first time after a decade of using Autodesk software.
(For sure, when you open some software after using something else for a decade, it looks entirely wrong, so it take sufficient time to distinguish real software weaknesses from what you got used to)

In 2013 when we decided to move our studio to Blender, so we hired local python developers and wrote custom basepoint snapping addon and several other tools and concepts to cover real critical demands we discovered to make up the difference between the software to compete on a market.
Some of them was presented in the B.A.S.E. video.

According to our tests, despite the fact that we have basepoint snapping for more than a decade already, we use closest snapping most of the time - even when perform linear/CAD workflows like architectural modeling. This way we discovered that basepoint snapping is a must have feature of course and covers a critical demand, but surprisingly it is not a substitution for the closest one.

5 Likes

Within the test build:

  • I’m able to Snap the origin point to various edges, points, edge midpoints. I cannot determine how to snap it to the center of a face.

  • The term “MIX” for the pulldown is very non-descriptive. Shouldn’t it say something plainly descriptive, such as “Snapping” or “Options”?

1 Like

Hi,
First of all, thanks for the basepoint. It is extremely useful and already my most awaited feature for blender 4.

Regarding the new snapping panel, I’m not sure that the new interface is more user friendly. I do not see in which case I could have the utility to change the filters independently for each element.

However, presets are essential for me and I use a similar system made with pie menu editor.
Would it be possible to give access to these presets in the shortcut modals of each transformation?
For example, one could use the numbers from 1 to 9 to activate the corresponding preset.
This will avoid this kind of situation:

  • press G to move
  • press ctrl to activate snapping and move the mouse
  • the snapping mode is not correct, right click to cancel
  • open snapping panel
  • choose the preset from the list
  • press G
  • press ctrl to snap and move the mouse
  • left click to validate

It would rather give:

  • press G to move
  • Press ctrl to activate snapping and move the mouse
  • the snapping mode is not the right one, press the preset shortcut
  • press ctrl to snap and move the mouse
  • left click to validate
5 Likes

Hi,
Amazing work on basepoint!

About snap menu changes, I guess it would make more sense to save those snap options per workspace, instead of a preset menu inside it.

If I want to do retopology, I would go to the specific workspace, where all settings (snap, overlays,…) would be adjusted to a predefined setup optimized for this task.

If snap settings would have a preset menu for it, I guess overlays would need one too, for sake of consistency of the UX.

I think a preset system might be overkill, a snap setting per workspace would be nice, with maybe an “override” toggle to keep the same default behaviour as today but give the possibility for the user to have workspace-specific snapping options.

Strong disagree. Presets are absoluteny not overkill. For example, I don’t like switching workspaces that often except for really different tasks like shaders or NLA. But everything that’s got to do with modeling I tend to just stay in the main 3D view layout.

If presets can be stored/autoloaded per Workspace then that’s fine but I would certainly not want to switch workspace everytime I need a different snap setting config preset.
On the fly switching is great while working on something and adjusting as needed but a preset makes it so that you also can recall a baseline setting every time you want to quickly go back to a certain state. That’s not solveable via workspaces alone.

4 Likes

Yes I don’t use workspaces anymore either, I just switch the editors in the workspace I am in as I need them. I am not saying I am against preset settings for workspaces, I am saying that there should also be an option to set presets for people who don’t use workspaces.

1 Like

I almost exclusively change to different workspaces, as i then don’t have to drag/drag/resize everything on the screen for whatever I’m doing.

I’m fine with presets, and I’m fine with workspace-specific settings - but, I don’t want to have to redo whatever snap settings I have set, every time I change to a new workspace, so there needs to be some element of sync and persistence across workspaces.

1 Like

Wouldn’t that just be not having workspace specific settings/presets?

No, it’s not the same thing.

For comparison - the Outliner. It is not persistent and does not sync between workspaces. (Would be nice, but that’s outside the scope of this discussion. I just mention it for explaining what the snap feature should do, while in development.)

The current test build DOES behave as I would like, so I’m just saying that this behavior should be kept.