Page MenuHome

Asymmetrical bevel output from symmetrical input.
Closed, ResolvedPublic


System Information
Operating system: Windows 10
Graphics card: Nvidia RTX 2080 (tested by others with different cards)

Blender Version
Broken: tested in 2.79 and latest 2.8

Short description of error
Bevel producing asymmetrical output from symmetrical input .

Exact steps for others to reproduce the error
Apologies if the following steps are not descriptive enough, I hope the attached blend file and image will clear up any ambiguity.

  1. Create a loop cut on default cube along x axis.

2.Create a loop cut on either side of first loop cut parallel to x axis.
3.Create loop cut along y axis with a factor of .5

  1. extrude top 4 faces and 2 faces on sides (all facing out along the x axis)
  2. extrude top 4 faces again.
  3. select inner edges from the first extrude, and bevel.
  4. The bevel will be lopsided despite both sides being perfectly symmetrical.

This is more pronounced when middle loop cut is removed, but present in both cases.

I hope this description and blend file is sufficient to describe the problem. It has been tested and observed in 2.79 to the latest version.

Event Timeline

I can't reproduce it. Neither in 2.79 nor 2.81:

Windows-10-10.0.16299 64 Bits
GeForce GTX 1080/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 431.86
2.81 (sub 16), branch: master, commit date: 2019-11-04 22:14, hash: `rB95a60fe84d5e`
Philipp Oeser (lichtwerk) lowered the priority of this task from 90 to 80.Nov 5 2019, 11:42 AM

@Marcin Twarowski (Tvaroog) : can reproduce if the connecting two edges are included in the selection

(maybe this is not the best way to do it -- leaving those edges out seems like the better choice from a modelling perspective -- but sort of confirming for now...)

@Howard Trickey (howardt) , @Hans Goudey (HooglyBoogly): is that something to be expected?

Right. In that case only "Depth" Width Type gives symmetrical result.
This is how bevel looks on the right:

This is on the left:


Hans Goudey (HooglyBoogly) lowered the priority of this task from 80 to 50.Nov 5 2019, 6:25 PM

I can confirm this too, definitely a bug. I'll look into it and see what I can find.

Thanks for looking into this everyone.
@Marcin Twarowski (Tvaroog) With the two middle edges selected width produces asymmetrical results as well, it is just much less pronounced than offset. If you remove the center edge loop as shown in the example all the way to the left it becomes much more visible.
@Philipp Oeser (lichtwerk) the thing about leaving those edges out is that it produces all Ngons rather than quads looping around, which is often undesirable.

Thanks again, I really appreciate it.

This is the simpler test case I've been using. I've found that the error is in the offset_meet function, where I think it's not set up to properly handle this sequence of edge directions and face normals.
The difference between the sides is that when placing the "boundary vertices" bevel goes around each vertex counterclockwise.
At the error, build_boundary travels starting at the highlighted middle edge until it reaches the other highlighted edge in the X direction.
This specific sequence of edge directions means that offset_meet ends up trying to intersect the two thicker lines to try to find where to put the boundary vertex.
Normally that would be great but the thicker blue line isn't in the right location, so they don't intersect and it ends up averaging the closest points on each of the lines.

I'm still looking into why this happens, but @Howard Trickey (howardt) might find the error much faster. A fix for this would probably wouldn't get pushed until after D5516 anyway though.