Sharp details using subsurf

Today I did this sort of arbitrary model to tryout how to use subsurf without sacrificing sharp and crispy edges. Think of it as a room with a basin, reservoir, or whatever.

While working on this model, I tried to give priority to tonnes of detail next to these sharp edges and edges joining at verts at evenly spaced angles everywhere else. I’m sure it can be done a lot better.

I’m sort of admiring the fractal-looking result from today’s test, which wasn’t at all what I expected when I started. But I’m wondering if this is the regular way of doing things. Or I am working my way in the wrong direction?

Larger images on flickr (link).

/ Mats

Looks similar to how I would do it. The basic principle is placing another row of vertices right next to the corner to “sharpen” it. Looks cool. Something that can help with wireframe view is clicking the Optimal Draw button on the subsurf modifier. Makes it easier to see clearly.

OR you could add an edgesplit modifier and sharpen the edges.

what about the “crease” option? not as effective as the edgesplit, but good to know about

i use it in conjunction with edgesplit

FuzzMaster and venar303,
thanks both of you. I’m not sure how I missed those tools.

A first evaluation tells me crease (Shift+E) is actually better. Is there a secret button or parameter for EdgeSplit (Ctrl+E) I still haven’t found?

/ Mats

EDIT: Never mind, I just discovered I was actually using both.

EDIT: Adding a screenshot.

Sorry, I can’t see why Optimal Draw makes anything more clear.

/ Mats

edgesplit is a modifier…just like subsurf, but i wouldnt recomend using the both at the same time, starnge things can happen…

i use edgesplit all the the time, its invaluble!

what strange things? I just used them both on the object posted above with success.

/ Mats

i use edgesplit all the the time, its invaluble!

I don’t use it at all. If rounded corners are needed, I add few loopcuts or just use the crease edge function as in other cases. The edgesplit can produce bad resuls depending on its placement in modifier stack. If it is evaluated before Subsurf, it creates sharp edges. If it is after, then only shading is affected, which is used to substitute shading groups from other applications (but it creates holes, so not very good in some cases).

What you do is crease the edges you want and place edgesplit after subsurf and you get great results

It gets rid of extra lines drawn from subsurfing. So if you take a cube and subsurf it 4 times there’s a bunch of extra lines. Clicking Optimal Draw will get rid of them so you just see the essential lines that make up the curved cube

If you’re trying to make something realistic, it’s best to just add an extra edge (two actually… one on either side of the edge you want to look ‘creased’). There are tools in Blender that can get you quicker results, but there are also drawbacks to those features:

Crease looks good, but it’s dependent on the level of subsurf you apply it at. If you make a crease look really good at level 2 subsurf, but render at level 4 the edge will look slightly different. Also, if you plan on exporting the model the crease will be gone unless you apply everything and export a fully subsurfed model… not ideal. (note, i haven’t used the crease tool since i first got blender something like two years ago… it may have changed, but i still don’t use it)

Edgesplit can look good as well, but it makes an infinitely sharp edge. This sort of edge is impossible in the real world, so it can look great for very small objects, or for when you’re a far distance away from something, but up close it will lose it’s realism. Real-world objects’ edges are ALL rounded to some extent, even if they look really sharp. Unless you are making a Sub_D model of something like a sword or razor-blade or something similar where you really REALLY need a sharp edge, you can get better results usually using edges. Light will not get caught by an Edgesplit edge, and thus you will lose out on highlights on the edge, etc.

The reason I say to add one edge to each side of the edge you want to be sharp is due to the way the Sub-D algorithm works. By using 3 edges instead of 2 you guarantee that no other part of your model will be distorted, whereas just cramming two edges right on top of each other can make for some unpleasant bulging or dipping in areas near the crease. Having one edge on either side allows for the maximum amount of control for how sharp the edge looks. You can get away with two most of the time, but I find three edges makes the low-poly mesh look a lot more solid and easier to work with. But that’s just my view.

As far as the image / model you posted, you could technically have used nothing but 90 degree angles if you were going to subsurf it, tho if you had planned to unwrap it there would probably be some heavy distortion in the texture. with procedural textures, tho, you could get away with it.

I agree with Squiggly_P. In reality, there aren’t sharp edges except few things.

Creasing edges has its own flaws. If it’s not set to 1 or 0, I found some strange things. I some cases it acts weird, maybe it’s caused by the way Subsurf works. However it can be avoided by slightly changing its value.

Sometimes (well, on all cars I made) I use the loopcut method combined with reasing. The middle edgeloop is creased slightly, and the two going parallel with it are fully or almost fully creased if possible.

ok, now I get it. Thanks for the tip.

Squiggly_P and Myn.pheos,
thanks for the feedback. Considering my slow progress in Blender, this is very useful information. I will probably be using three parallel edges to get sharp edges using subsurf. Possibly using crease in some contexts. By using crease and edgesplit now and then, I guess I will pin down its pros and cons.

/ Mats