- User Since
- May 1 2011, 2:06 PM (350 w, 2 d)
Unfortunately, it is not the last known one for bevel. I'm currently working on T53459, which is taking a lot of effort to fix (end is in sight, though).
For this bug, as mentioned earlier, the problem is that I don't understand the theory of subdivision with constraints on boundary normals well enough to make the general case ensure curvature continuity.
Wed, Dec 20
I am happy to change the code for Bevel and Inset to allow spacebar for confirm. Just wanted to check with someone else (Campbell?) that this is indeed a UI pattern that Blender is intended to have.
Mon, Dec 18
Dec 5 2017
The mesh isn't corrupted. But it does hit a non-determinism in the current algorithm. Here is what I wrote on that thread, which shows my current understanding of this bug:
Dec 4 2017
Yes, I see what you mean. I will look into it.
Oct 6 2017
The given test file now imports, though probably not in a satsifying way for you. This importer only pays attention to vector geometry that forms closed polygons, and the imported file has images and / or bare edges for most of the interesting stuff.
Thanks for the report. Always good to fix crashes!
Sep 29 2017
I confirm the crash and will look at this.
Sep 27 2017
Now that Campbell has taken the GSoC 2016 PBVH project into master, this task can be closed.
Sep 26 2017
Sep 19 2017
Thanks, can confirm that that happens now.
Sep 18 2017
I agree it is weird, though sometimes things like this happen because it is impossible to simultaneously set the bevels for all edges to what they should be mathematically (due to interactions with the bevels at other edges, and the code tries to "compromise" in cases like that). But I need to investigate more to see if that's what is going on here.
I am pretty sure this is not a bevel bug. I tried installing and running your testBugAddon.py (on Linux), and while it didn't crash, it did produce error messages like:
Sep 14 2017
Strange, it works fine for me on Linux. I will try on Windows when I get a chance and see if I can reproduce there.
Sep 13 2017
Thanks for your suggestion, Jac. And thanks for the clear examples in your rightclickselect post. While it seems strange to me to have a different treatment of seams for odd and even numbers of segments, I can understand your argument. What about other edge attributes (e.g., smoothness; bevel weight; ...). In your opinion, which edge attributes should go exclusively to the middle edge, which should go to all of the edges, and which should go to the outer edges of a beveled edge?
Sep 5 2017
Yes, looks like that would work. I will wait for D2724 to be merged.
Hmm, not sure what to do about this.
Aug 11 2017
The fix just committed only fixes this bug if the 'Clamp overlap' option is enabled. The fact that sometimes the existing code stops the edge slides when it hits another vertex was not something that was intended to find and fix all geometry collisions. Even 'Clamp overlap' doesn't do that, though it tries harder.
Aug 10 2017
Jul 24 2017
Jun 30 2017
Jun 7 2017
May 31 2017
Someone else requested something similar to what you suggest -- just that when some vertices get blocked, they stay there and the unblocked ones continue to move. Maybe this should be the default, but I'd like to get some kind of consensus from artists before changing. As you say, it could be an option, but there is a lot of pushback on Blender devs from Ton not to add too many options to tools, but rather make them smart enough to "do the right thing" without options.
May 30 2017
Sorry it took so long to fix. Thanks for the report. It is fixed in the blender-addons-contrib repository.
May 29 2017
The problem is that the clamping is very naive right now: just clamps to the min of the half-length of all the edges involved in a vertex bevel. In this case, that means it clamps to the half length of the vertical edge, which doesn't even have advancing vertices on it, and it is a lot shorter than the edge that the vertices move along. It is a TODO to do much smarter clamping, but I'll spend some time now to see if cases like this, at least, can be improved.
Another requested bevel clamping change. See T50994. Requester would like clamp to apply to edges individually rather than globally. Could be consider as breaking backward compatibility for 2.8. Or an option (but we dislike adding too many options).
Sorry, the behavior mentioned here in this bug (T50994) is the intended behavior. The clamp that is calculated is a GLOBAL clamp for the offset amount, calculated as the minimum amount that might cause overlap (approximately -- doing it exactly is hard, and a TODO). The reason for this is so that the bevel looks uniform when done -- that is, the widths all look about the same. In some artistic contexts, it could look strange to have some edges beveled a lot and some edges beveled a little (e.g., you might want all edges of a table beveled approximately the same).
May 28 2017
May 27 2017
What is the status of this patch? Is it likely to get applied in the 2.8 branch any time soon? Since a GSoC 2017 student that I am mentoring is also doing Vertex Paint improvements, it would be a pity not to be able to build on top of this.
May 25 2017
May 23 2017
May 18 2017
I could not get it to crash with my vs2017 release or debug builds. I did try the buildbot 2015/x64/release build, and it crashed, but I don't know how to get a symbol file for this so couldn't get a meaningful stack trace. I have a strong suspicion that the problem now is not with bevel, but somewhere else.
May 17 2017
Thanks. Do you have a stack backtrace? At any rate, I will try with VS2017 which I have at home and see what happens with that.
I cannot reproduce a crash. Maybe I don't have all the same build settings. Can someone who gets a crash paste a stack backtrace? I am wondering if the crash is still in bevel, or whether it is somewhere else now.
May 16 2017
Hmm. Can you see if the code you compiled includes commit rB8be9d68dd42d ? (git log in the blender source directory should show it).
Fixed this now. Sorry for the long delay. Fixed in master; the 2.8 branch should update in a day or two when merge from 2.78 to 2.8 happens.
May 14 2017
Looking at this again now. For reference, here's a simpler file that causes the assert failure (in mesh_vert_canon):
Mar 11 2017
Yes, it is not good that three of the four seemingly identical bevels have straight profiles while the 4th has curved profiles. I need to look into why.
Mar 7 2017
Mar 6 2017
Thanks for the thoughtful suggestions.
Feb 28 2017
Sorry, I haven't had a chance to look into this yet. The code that prevents overlap is (the 'clamp overlap' option) is only approximately right, since getting it really right is quite hard. But I agree it seems to be failing completely in the case of selecting a whole loop, and hopefully it will be easy to figure out why and correct it.
Jan 13 2017
I have looked a bit, and made a much simpler file that triggers the same assert:
It seems to have something to do with the geometry being small, too, as scaling the object up and applying scale makes the problem go away.
Will try to find time to look at this next week.
The bug reporter might want to try loading the file I just uploaded to see if it crashes Blender on their build -- that is, try to see if this assert failure indicates that bevel is the cause of the crash, or whether this is a harmless problem with bevel and the real crash is caused by something else.
Jan 11 2017
Thanks for the file. I tried importing it, and it did not crash.
Can you please tell me the version of the pdf importer that you have on your computer?
Under binary directory where blender lives, there should be a file like
Dec 28 2016
This was a known problem, and there was a known workaround (enable 'clamp overlap'); I made that workaround kick in automatically in clearly problematic cases, like this one.
I'm sorry, I cannot reproduce this problem without a sample .blend file. Please upload the .blend file with the two modifiers, and I will look at it.
I suspect what is happening is that the "clamp overlap" is reducing the width you desire, but that is only a guess without seeing sample .blend file.
Also, is the last picture supposed to be the desired result? If so, could you supply that .blend file too?
Dec 21 2016
Without an example file where this crash happens, I can't fix it. What kind of rights error do you get when trying to add a file? I see that you have been successful uploading files in other bug reports; e.g., T50276
Dec 14 2016
We write our tools under the assumption that the meshes are 'valid'. (If you run the python command mesh.validate(True) it can tell you whether the mesh is valid or not. Rather than try to put all sorts of protective code in all the tools, our policy is to instead make sure no tools produce invalid meshes. At any rate, even if Blender didn't crash, most tools could produce crap results on invalid meshes. Clearly some tool has produced your corrupt mesh -- in the example .blend file that you uploaded -- but without help understanding how that mesh was produced, I'm afraid there's nothing more than can be done here.
Closing this bug, but feel free to open a new bug or reopen this if you can reproduce the mesh corruption (that is, can provide an uncorrupted model and instructions for a next step that causes corruption).
Thanks anyway for the report.
Dec 8 2016
Looking at this now. It seems that the mesh in the test file violates the assumed invariants about BMeshes. If you start blender with --debug, and then toggle into Edit mode, the validation code reports that a particular face has a duplicate vertex and a duplicate edge.
Dec 6 2016
Nov 29 2016
I can confirm this. Will work on fixing it now.
I confirm that this happened in the version of blender cited (commit 3e460b6), but at the latest revision of 2.78 (bd5ae46c) the crash does not happen. I am closing this one. Feel free to reopen if the crash still happens for you. There is another bevel crash bug task that I am going to look at now, so I am not discounting that there may be a bug to fix here. Going to look at that other task now.
Nov 28 2016
Nov 18 2016
Hope to get to this soon.
Oct 16 2016
I suspect this might be similar or the same as the problem in T49467, which I haven't had time to fix yet. I should have time to look at this soon - not next week, but the week after.
Oct 6 2016
The problem appears to be not with a change in the pdf/svg/ai importer (which still works on my test pdf files), but rather that your file uses a PDF feature called 'Cross Reference Streams' (introduced in PDF 1.5) that I did not program for.
I confirm the problem, and will look into it.
Oct 5 2016
OK, I understand now.
Yes, it is a limitation of using Vertex Groups that you cannot precisely specify which edges you want to include. Because, as I explained earlier, all edges that have both ends in the vertex group will be beveled, and for the simple unsubdivided cube case, you cannot select all the vertices and yet only have a subset of the edges beveled. This is a case where it would be good if Blender also had Edge Groups, but it does not. Using Vertex groups to specify edges to bevel was an imperfect workaround to not having edge groups.
Oct 4 2016
I don't understand what behavior you are expected. The example file looks working as expected to me. When you specify "Vertex Group" as the selection method in the Bevel Modifier it works as follows:
- all the given vertices are selected, and then those induce certain edges to be selected (the ones with selected vertices at both ends)
- those edges are beveled
Sep 28 2016
Yes, it is triggering a "shouldn't happen" assert in Bevel. I fixed a similar problem to this recently. Will try to fix this soon.