Hi,
since there have been some changes to how snapping works during 2.8 development, mainly ability to enable multiple snapping modes at once, it would be great to get it finally right for 2.8.
For years, there has been one very annoying issues that breaks flow and fluidity of modeling process if one uses snapping a lot. It’s the fact that angular increment snapping is toggled by grid increment snapping toggle. The problem stems from the fact that transform increment snapping (grid snapping) and angular increment snapping (rotation snapping) are two extremely different use cases, which are coupled under a single button in a very unfortunate way.
While transform snapping to grid is rather rare use case, mainly used for building modular blocks for for example level design, angular snapping is used extremely often to turn stuff 90 or 180 degrees.
Arguably, one of the most used snapping modes is vertex snap. I personally use it most often. In 2.7, as long as I was using vertex snap, I had to make a compromise of not being able to use angular snap, as it would require me to perform a very frustrating, flow breaking operation of switching snapping mode from vertex to increment prior to every single rotation operation, and then switch snapping mode back from increment to vertex and continue transforming my objects and mesh elements.
Since this has been breaking my flow so much, I just gave up on using angle snap all together, and instead adapted to use type-in rotation value. Unfortunately, this breaks the flow too, as instead of interactive, fluid, visual workflow of looking at the object and rotating it the way I want, I need to pause, think of a numerical value to type in along with axis I want to rotate around, then type it in, then correct depending on if the value was supposed to be positive or negative, and only then I am done. It’s a very non-interactive process in a century of interactive workflows.
In 2.8, a new feature was introduced - an ability to enable multiple snapping modes at once. So now, one can have incremental snap enabled alongside vertex snap. This unfortunately does not solve the issue at all, as the transform snapping to grid severely interferes with the precision and comfort of vertex snapping, if both are enabled at once. Occasionally, when vertex to be snapped to is aligned very close to a grid intersection, it’s borderline impossible to snap it correctly.
Since angular snap is such a common feature, we really need to get this working right.
There are 2 solutions I propose:
A, Angular snap would be decoupled from incremental snap, but not exposed in the UI. Since rotation operation is modal, once in rotation mode, angular snap would always work, respecting the snap toggle status. If snap would be enabled, rotation would always snap to the increments. If it was disabled, it would require snap key (Ctrl by default) to be held down to initialize angular snapping. This would not interfere with anything as it would work only in rotation mode. This functionality would be always present and would not be in any way affected by on/off state of any of the snapping modes.
B, Angular snap would be decoupled from incremental snap, and exposed in the UI. This way, user could simply turn it on or off, so that if it was turned off, Ctrl key or snap button state would have no effect in rotation mode. This doesn’t make much sense honestly, therefore I just prefer option A.