0
$\begingroup$

Is there a way to use the Subdivision Surface modifier on my mesh while keeping the silhouette more or less intact? The Catmull-Clark algorithm reduces the volume and the form of the mesh a lot. I want to create Level of Detail versions that should blend into each other based on procimity/the space they take up in the camera view in my game engine. The following picture hopefully clarificates what I am going for.

The black Wireframe is the original unmodified model. The displayed mesh is the outcome of subdividing with Catmull-Clark algorithm. The red outline I painted in is kind of what I need. The silhouette shouldn't "change", just get a little more smooth/detailed with each level of subdivision.

I tried to Shrinkwrap the subdivised mesh back to a lowpoly copy of itself, "Apply Base" in the Multiresolution Modifier but nothing helps, the volume and silhouette is always compromised. Maybe there is a way to achieve this with some clever combination of modifiers?

picture

$\endgroup$
7
  • $\begingroup$ That's how Subsurf works. You can try to duplicate them in modifier stack and set the top one to Simple but that doesn't always work. That said, if this is for game engine I wouldn't use Subsurf at all since geometry should be minimized quite much $\endgroup$
    – Mr Zak
    Jul 29, 2019 at 13:23
  • $\begingroup$ Mr Zak the model for the player character is down to only 550 vertices on the lowest LOD. I could just add additional loopcuts manually for the higher resolution versions, but I'm trying to figure out a way to create LOD's without much work at all. If I can find a reliable way to do so for every of my meshes, that should increase the performance of the game by a lot. The outcome of the Subsurf is only for close up shots where the mesh takes up a majority of screen space, so it shouldn't be that bad right? $\endgroup$ Jul 29, 2019 at 13:53
  • $\begingroup$ It shouldn't be but it might not be practical either. Subsurf adds geometry everywhere even if some area doesn't require that. LODs from what I saw are created manually without using this modifier and the other way around, by decimating mid-poly. If e.g. taking method I mentioned above it would increae geometry 4 times which is quite a waste. You could add Subsurf set to Simple and add Smooth modifier after it which also might be waste of topology $\endgroup$
    – Mr Zak
    Jul 29, 2019 at 15:14
  • 1
    $\begingroup$ Why couldn't you just add a loop cut and drag it closer to the edge? $\endgroup$
    – WhatAMesh
    Jul 29, 2019 at 16:59
  • 1
    $\begingroup$ Maybe changing the "edge crease" value of an edge might also be an option. By setting the edge crease value of the outline to something close to 1 the silhouette will be closer to what you draw (however the curve will be less smooth from a different view) $\endgroup$ Jul 30, 2019 at 14:52

1 Answer 1

1
$\begingroup$

With Blender 2.82 out, there is a good enough method to keep the volume while subdividing the whole mesh without actually using the subdivision modifier.

It's the Bevel modifier. Select the percent method and set the value to 50%. uncheck the clamp overlap option and now, you might notice there are now duplicate vertices. weld modifier disabled, 24 vertices and 26 faces

But there is a new modifier: weld; and its job is to get rid of those in a non-destructive manner, so you can keep your bevel modifier.weld modifier enabled, 6 vertices and 8 faces you can then add as many segments and tweak the profile as much as you want. Make sure to set the outer Milter to "patch" for concave meshes.

As you may notice, the subdivision isn't as perfect as the subdivision modifier, so you might encounter problems like weird overlapping geometry In that case, buff the distance of the weld modifier juuust until it fixes everything. cleaner mesh

After that, you can add a subdivision modifier for a better edge flow and tweak the profile of the bevel (even the custom profile works) if it looses too much volume to your taste.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .