Why does blender do this exactly?

I know it's to do with the sub-d, but I really have to wonder WHY these tags still appear when a bevel is already set on all the relevant edges. The way I deal with it on flat surfaces is to add another bevel on the flat surface, which fixes it. I mean what else can I do, it's the only other edge available TO bevel.

Unfortunately I'm boned if I ever want to do anything to a cylinder besides the default shape.

Why does blender do this, and what is a legit workaround that will help me preserve the actual vision for the object?

  • status451_cg replied

    To clarify - are you referring to how sub-d makes it "cut that corner"? And you end up with a rounded corner that doesn't follow the 90 degree angle that you actually created?

  • paxalon replied

    sstatus451_cg Yes,  but no.


    I'm wondering why it does it at all, not the mathematics behind it. It's clearly not intended, an infinitely thin cut corner overlapping on a completely bevelled, hard edge corner.  That's just my wondering as to why it's there.

    I ultimately want to know how to deal with it properly, as I've already bevelled the correct edges that would not affect the rest of the geometry of a more complex object, like a cylinder with a bool shape in the side - in which case it has caused pinching and some pretty gnarly artifacts when I extended the holding edges techniques outward.


    Edit: words.


    Edit: If this needs more clarity I can make another example showing what I mean.

  • status451_cg replied

    ppaxalon I wasn't making an offer to try and explain the mathematics behind it - was just trying to clarify what exactly you were asking the question about.

  • paxalon replied

    sstatus451_cg Sorry if I came off as blunt, it's how I am. I really don't mean offence. 


    Ultimately I want to know how to deal with these artefacts without damaging the surrounding geometry.

  • status451_cg replied

    ppaxalon Well, if it's any consolation, I feel your pain. I frequently find myself working with a sub-d model where I want one bit to be sharp, but adding more geometry to achieve that sends an edge loop careering though my nice smooth object... wreaking havoc with all my lovingly crafted curves.... 

    There is no magic solution. It is a fact of how sub-d works. It is always trying to smooth your object into oblivion. You can see this by adding the modifier to a plain cube, and watching it turn into a ball.

    The only ways I personally know of dealing with the issue that you describe:

    1. Crease edges - You can tell Blender than certain edges are creased. Read more about it here. Creasing edges tells the sub-d algorithm that you want them to be sharp. I will caveat this answer, however, by saying that I never use edge creasing (well, almost never) as I can never seem to get it to look right. Even if you crease the edges you want, the edges around it tend to start doing weird stuff. I just can't get it to work, so I never use it. Probably my failing. I bet other people could explain better how to use this feature.
    2. Add holding edges - You sound like you already know about this. Putting edges closer together limits the smoothing the sub-d algorithm can do in between those edges. Upside is a nice smooth edge, which you can sharpen and un-sharpen by edge sliding the holding edge towards and away from the edge you are working on. Downside is that you will add an edge loop to your model, which will probably upset the smoothness in other locations.
    3. Add holding edges *but cheat* - This is what I tend to do. The ways of cheating are:
    • If you have a mirror modifier applied, direct the unwanted edge loop created by the holding edge over the mirror line (effectively terminating it). Often you can alter your geometry to send a loop to the mirror line instead of sending it right through your model;
    • Leave a hole somewhere on your object that cannot be seen (e.g. inside an inset) and direct the edge loop (and all other unwanted edge loops) there to terminate. I do this a lot on space ships, as you have lots of insets for engines and stuff where you can leave a hole that no one can see;
    • Don't be afraid to use triangles to terminate a holding edge loop. Triangles should generally be avoided because they cause a pinching effect with sub-d, however, sometimes that is desirable - e.g. if you have a lip that joins into a flat surface, you can get nice results with a triangle (even though people seem to think they are the devil);
    • Insert your holding edge, select the verts beyond where you want the tight angle, and edge slide them away from the edge. This causes the tight edge to kind of fade away. Sometimes the transition here will look weird, but often you can get a nice result with a bit of fiddling.

    Let me know if any of those don't make sense from my description, and I will do a quick screenshot to show what I mean.

    I hope that helps anyway.


  • paxalon replied

    sstatus451_cg Thank you for the detailed reply! I know most of all of these techniques but still find most of them nuke my smooth surfaces. Could you do a quick model of a sub-d cylinder with a square inset/extrusion on it's surface? In these cases, the inset will have the gnarly curved lip in the corner for me, and in the extrusion the corners will be super pinched, making it look like the extrusion is a separate piece rather than part of the object itself - and any attempt to rectify will make a faceted edge somewhere else I really don't want it to be.


    Just a simple 16 sided cylinder with one of it's vertical faces being an inset > extrude either into or out of the obj would be the case in particular I am thinking of.

  • status451_cg replied

    ppaxalon Not sure if I follow. Is something like this what you are trying to do?

  • paxalon replied

    sstatus451_cg Yes! how did you make it keep the sharp corners without altering the other geometry? Just crease?


    Edit: Whatever I try, I either wind up with the tags in the corners of the inset example, or i wind up with the corners of the extruded piece floating off the surface of the cylinder. If I try to crease, bevel or add holding lines it alters the geometry so that the cylinder becomes faceted - will add a picture to show what I mean.


    Edit for picture context: The inset has the tags, the extrude has come away from the surface. The only way I know how to fix that is by bevelling the 'supporting' lines of the corner:

    Here, I've bevelled the supporting lines (I will upload another and highlight the edges I have creased/bevelled) and I no longer have those artefacts, but now the cylinder doesn't have the roundness in the surface surrounding the inset/extrusion.

  • paxalon replied

    ppaxalon These are the edges I bevel or crease. I get the same result either way, even with holding lines.

  • status451_cg replied

    ppaxalon Hi

    No, I didn't use creases, just holding edges. In the case of using a cylinder, the key is to only make horizontal cuts (as vertical ones will upset the curve of the object).

    Does seeing this help?:

    https://www.youtube.com/watch?v=Sj6bKVzF1FE

  • paxalon replied

    sstatus451_cg Yes it does! Problem being that I am adding geometry to the cylinder when really I should have just constructed the cylinder to fit to begin with. I've been making a bunch of extra faces which results in a really dense section of geometry. It's a shame, because i had hope to have a lot more freeform freedom in the creation process, but the limitations are proving a lot harsher (beyond sculpting). Thank you for the help!

  • status451_cg replied

    ppaxalon Good stuff.

    Yeah, general approach is to create your object how you want it without sub-d. Add sub-d to smooth it all out, then add holding edges to pull it back into shape where the smoothing has got rid of an angle that you wanted.

    It's not ideal and takes a bit of getting used to. I agree that modelling with sub-d feels like you are following a lot of extra rules which limit your freedom, but it's more or less the only way it can work.

    Good luck!