Edge Slide (g+g) with Even mode (e) does not "[force] the edge loop to match the shape of the adjacent edge loop" in many cases #103897

Open
opened 2023-01-15 11:06:01 +01:00 by Matthew Adams · 7 comments

System Information
Operating system: macOS-12.5.1-arm64-arm-64bit 64 Bits
Graphics card: Apple M1 Max Apple 4.1 Metal - 76.3

Blender Version
Broken: version: 3.4.1, branch: blender-v3.4-release, commit date: 2022-12-19 17:00, hash: blender/blender@55485cb379
Worked: Unknown. (Possibly never? The bug is about the core behavior of the "even" mode algorithm.)

Short description of error
Edge Slide's "Even" mode does not behave as documented. The documentation says that it "forces the edge loop to match the shape of the adjacent edge loop," but it appears to actually force the points of the edge loop to be a constant distance from the adjacent loop, which, in many cases, results in a different shape.

blenderEdgeSlideEvenModeBugCorrected.png

Exact steps for others to reproduce the error

  1. Select an edge loop that cuts through non-parallel line segments. (For the attached .blend files, the edge loops to select are marked as seams. This is just to highlight what to select - seams are not necessary to reproduce this bug.)
  2. Double-tap g to activate the Edge Slide tool.
  3. Press e to enable the "Even" mode.
  4. Drag the mouse.

Note that you can then press f to change which adjacent edge loop is used for the shape template (in case the bug is more visible for one adjacent loop than the other).

File with a minimum example: edgeSlideEvenBugMinimumExample.blend

File with the example pictured in the screenshots above: edgeSlideEvenBugCircleSquareExample.blend

Thanks for taking a look (and for building an amazing piece of software)!

**System Information** Operating system: macOS-12.5.1-arm64-arm-64bit 64 Bits Graphics card: Apple M1 Max Apple 4.1 Metal - 76.3 **Blender Version** Broken: version: 3.4.1, branch: blender-v3.4-release, commit date: 2022-12-19 17:00, hash: `blender/blender@55485cb379` Worked: Unknown. (Possibly never? The bug is about the core behavior of the "even" mode algorithm.) **Short description of error** Edge Slide's "Even" mode does not behave as documented. The documentation says that it ["forces the edge loop to match the shape of the adjacent edge loop," ](https://docs.blender.org/manual/en/latest/modeling/meshes/editing/edge/edge_slide.html#:~:text=Forces%20the%20edge%20loop%20to%20match%20the%20shape%20of%20the%20adjacent%20edge%20loop.) but it appears to actually force the points of the edge loop to be a constant distance from the adjacent loop, which, in many cases, results in a different shape. ![blenderEdgeSlideEvenModeBugCorrected.png](https://archive.blender.org/developer/F14150774/blenderEdgeSlideEvenModeBugCorrected.png) **Exact steps for others to reproduce the error** 1. Select an edge loop that cuts through non-parallel line segments. (For the attached .blend files, the edge loops to select are marked as seams. This is just to highlight what to select - seams are not necessary to reproduce this bug.) 2. Double-tap `g` to activate the Edge Slide tool. 3. Press `e` to enable the "Even" mode. 5. Drag the mouse. Note that you can then press `f` to change which adjacent edge loop is used for the shape template (in case the bug is more visible for one adjacent loop than the other). File with a minimum example: [edgeSlideEvenBugMinimumExample.blend](https://archive.blender.org/developer/F14150745/edgeSlideEvenBugMinimumExample.blend) File with the example pictured in the screenshots above: [edgeSlideEvenBugCircleSquareExample.blend](https://archive.blender.org/developer/F14150746/edgeSlideEvenBugCircleSquareExample.blend) Thanks for taking a look (and for building an amazing piece of software)!
Author

Added subscriber: @matthewadams

Added subscriber: @matthewadams

Added subscriber: @mano-wii

Added subscriber: @mano-wii

Changed status from 'Needs Triage' to: 'Needs Developer To Reproduce'

Changed status from 'Needs Triage' to: 'Needs Developer To Reproduce'

In fact that description is not helping much.
"force the points of the loop edge to be a constant distance from the adjacent loop" seems better for me.
But I'll leave it to the #documentation team to confirm if it's an error or not.

In fact that description is not helping much. `"force the points of the loop edge to be a constant distance from the adjacent loop"` seems better for me. But I'll leave it to the #documentation team to confirm if it's an error or not.
Author

@mano-wii, thanks for taking a look! So you're thinking this is a documentation issue, not an algorithm issue?

Can I put in a vote for changing the behavior and keeping the documentation? The described behavior seems much more useful to me (and also more difficult to reproduce through other methods), and it matches how I've seen a variety of other people describing the feature (for example: https://www.youtube.com/watch?v=D7iWcHmMh_k).

@mano-wii, thanks for taking a look! So you're thinking this is a documentation issue, not an algorithm issue? Can I put in a vote for changing the behavior and keeping the documentation? The described behavior seems much more useful to me (and also more difficult to reproduce through other methods), and it matches how I've seen a variety of other people describing the feature (for example: https://www.youtube.com/watch?v=D7iWcHmMh_k).

Changing behavior may not please everyone.
And if we want to keep the shape we can use other features like inset and scale.

The feature was implemented in blender/blender@88fc573596.
There wasn't much information about it.
Apparently it was called "non-proportional edge slide".

The documentation misled users, but I don't think it introduced a bug into an existing feature and therefore needs to be fixed.

For modified/improved behavior it is recommended to resort to other channels: https://wiki.blender.org/wiki/Communication/Contact#User_Feedback_and_Requests

Changing behavior may not please everyone. And if we want to keep the shape we can use other features like inset and scale. The feature was implemented in blender/blender@88fc573596. There wasn't much information about it. Apparently it was called "non-proportional edge slide". The documentation misled users, but I don't think it introduced a bug into an existing feature and therefore needs to be fixed. For modified/improved behavior it is recommended to resort to other channels: https://wiki.blender.org/wiki/Communication/Contact#User_Feedback_and_Requests
Author

Changing behavior may not please everyone.

Definitely aware of the https://xkcd.com/1172/ effect :)

I think there's an argument to be made in this case though - the documented description has been around since 2.83 LTS without being changed, and there are a decent number of tutorials, etc. that teach that documented behavior (not realizing it only works in certain, albeit common, cases). I just spent a little while trying to find a counter-example - i.e., someone talking about the actual behavior - and couldn't find a single one.

I suppose the documentation is considered to be a description of the behavior but not the source-of-truth specification for it?

And if we want to keep the shape we can use other features like inset and scale.

Would you mind elaborating on your method? I see how one could:

  1. Delete the edge loop that should match the shape of the adjacent edge.
  2. Inset the faces the loop had cut through (O: Off, B: On, I: Off).
  3. Delete the extra edge loop that was created.
  4. Manually fix all of the points on the loop by doing one of the following:
    • If on a flat surface, scale points until the line segments perpendicular to the edge loop look collinear/straight.
    • Remove the points and recut them one-by-one with the knife tool. (This is more tedious but is the only way I've thought of that gives the exact intended result.)
    • Something else?

Did you have an easier approach in mind?

The feature was implemented in blender/blender@88fc573596: non-proportional edge slide patch by XercesBlue.
There wasn't much information about it.
Apparently it was called "non-proportional edge slide".

Interesting, thanks for the link.

For modified/improved behavior it is recommended to resort to other channels: https://wiki.blender.org/wiki/Communication/Contact#User_Feedback_and_Requests

Good to know, thanks.

Also, thanks a lot for taking the time to discuss this with me - really appreciate it!

> Changing behavior may not please everyone. Definitely aware of the https://xkcd.com/1172/ effect :) I think there's an argument to be made in this case though - the documented description has been around since 2.83 LTS without being changed, and there are a decent number of tutorials, etc. that teach that documented behavior (not realizing it only works in certain, albeit common, cases). I just spent a little while trying to find a counter-example - i.e., someone talking about the actual behavior - and couldn't find a single one. I suppose the documentation is considered to be a description of the behavior but not the source-of-truth specification for it? > And if we want to keep the shape we can use other features like inset and scale. Would you mind elaborating on your method? I see how one could: 1) Delete the edge loop that should match the shape of the adjacent edge. 2) Inset the faces the loop had cut through (`O`: Off, `B`: On, `I`: Off). 3) Delete the extra edge loop that was created. 4) Manually fix all of the points on the loop by doing one of the following: * If on a flat surface, scale points until the line segments perpendicular to the edge loop look collinear/straight. * Remove the points and recut them one-by-one with the knife tool. (This is more tedious but is the only way I've thought of that gives the exact intended result.) * Something else? Did you have an easier approach in mind? > The feature was implemented in blender/blender@88fc573596: non-proportional edge slide patch by XercesBlue. > There wasn't much information about it. > Apparently it was called "non-proportional edge slide". Interesting, thanks for the link. > For modified/improved behavior it is recommended to resort to other channels: https://wiki.blender.org/wiki/Communication/Contact#User_Feedback_and_Requests Good to know, thanks. Also, thanks a lot for taking the time to discuss this with me - really appreciate it!
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender-manual#103897
No description provided.