Partial sub-d option for subd modifier?

I thought I’d throw it up for discussion. I think one very useful additional option for the subd modifier would be a vertex group limit method, similar to the bevel modifier. With the new bmesh system it should not be very problematic to implement.

Modo, Lightwave, Max, Truespace all have had partial subd’s for ages now. It would be very useful to stack multiple subd modifiers to control sections in your model where you require more detail, and other sections (like flat surfaces) where you would want to limit the number of polygons.

We can do this in sculpt mode now, so the algorithms and functions are already implemented in Blender - so how about implementing a vertex limit in the subd modifier?

Especially for hard surface modeling it could be extremely convenient and useful. With the new gpu open subd being implemented as I write this, now is the time to discuss partial subs’s again.

Opinions?

(Tiles: you WANT this, do you not? :eyebrowlift2: )

i have propose this to Psy-Fi in the paint thread this would be a useful addition but look like it difficult to implement right know

I can’t quite see how this would work unless you go to a triangle based modeler. Blender’s quad based modeling is not something I would care to give up for any reason. Even with a huge library of transitions from dense to sparse quad areas you would lose the edge loop paradigm and end up with a topology that has no flow to it.

@DruBan: as I imagine it (never used it), it wouldn’t break your loops and nice topology.
As it is a modifier, your base mesh is the same. You just choose where you want more density/smoothness and the modifier creates a transition. This one can be messy of course, but it is not your concern, as you can only manipulate the vertices of your base mesh anyway, not the newly added subdivided ones.
Of course, if you apply the modifier…

But I may be completely wrong. Someone has a wireframe example of such a workflow ?

No you can’t. The multiresolution modifier is like the subsurf modifier, it applies subdivision to the whole object. Dynamic topology can subdivide areas of the model but that is not a modifier. If you now say you don’t need a modifier there is nothing stopping you just selectively subdividing your model now the way you want.

EWOC tools has a oddly named thing called deathguppie :wink:
its does limited subD

(Tiles: you WANT this, do you not? :eyebrowlift2: )

Definitely :wink:

But i know that it will not happen with the current approach. The whole problem with the modifiers is that they apply to the whole mesh. And this means for a partial SDS we would need another approach, not a modifier one.

Partial SDS is nothing trivial neither. You need to deal with all the special cases that can happen at the areas where the partial SDS transists into the normal mesh.

My guess is that Open Subdiv is also a modifier approach at the moment. So i see the chances that we will ever see partial SDS in Blender rather small.

What do you mean they apply to the whole mesh ?
You can restrict their influence with vertex groups in many cases.

But in general they apply to the whole mesh first. They are made to affect the whole mesh. Limiting by vertex groups is an step afterwards. And SDS can definitely not be limited by vertex groups.

Mmmhh, I don’t have enough insight into the mechanisms behind it all I must admit…

shouldn’t you be worried about this though because a messy derived mesh == messy vertex normals == shading errors.

I have never seen such a system in practice, if possible to the O.P do you have some screen shots from some of the programs you mentioned.

Something like this? The right arm is subdivided. The rest of the mesh not. I have simply selected the part, and have hit the sds button. trueSpace 7.61b8 from 2009. tS 6.6 from 2004 was also able to do partial sds already. Not sure if this feature was even introduced in version 5 or 4 though.

Attachments


So it looks like it converts the quads at the transition to ngons then

Yes. It adds a vertice at the bordercorner where the subdivision adds an edge. So N-gons is a must have feature for that.

What the OP might be asking for is the ability to mix sub-ds and unsubdivided polygons within the same mesh. This works best when used with unconnected sub meshes.

For example, in Lightwave you can select a few polys and hit the tab key to convert them into sub-ds. The result will show tearing in areas where they are joined to regular polys.

It might be nice to have a little tiny - and very feasible - addition to the code to allow ‘partial’ subdivision for objects that are made up of joined, but separate, meshes. as it stands, when joining meshes with different subdivision levels one of them has to conform to the other. This might require a new class of object though since vertex group would not cover the requirement that it be completely separate topologically. Maybe it’s time to have a ‘sub-mesh’ class? Possibly useful in other ways as well?

Hi Herbert123,

In the meantime, would this Modifier method be of any help for you?


  • Select faces and create a vertex group
  • Add Subsurf modifier
  • Add Decimate modifier, select vertex group, control selective SubD with Ratio setting

[Example image uses the following:](http://no link)
Two vertex groups
Subsurf modifier level 3
Two Decimate modifiers with different Ratio settings (settings take a bit of tweaking to get right)

David

Err, there would still be the case of if you need to transition between two or more subdivision levels if part of the mesh is not subsurfed and the rest is.

In this case, you would need to have at least a two step transition to avoid jarring artifacts in the mesh. If the multi-step transitioning can be done to create meshes without smoothing errors and if the subdivision level can be controlled with a vertex group, then it may be worth adding to the subsurf modifier.

Well, for my part I’m speculating that this is what the OP may be requesting (Herbert123 would have to confirm or deny this).
In the case of other software that has the feature I mentioned, yes it’s possible to create meshes with artifacts if used incorrectly. That’s not usually seen as a problem as its considered the modeller’s responsibility to ensure correct geometry in the same manner that it’s possible (but usually undesirable) to create non-manifold meshes.
If you want a form that mixes plain polys and sub-ds then splitting the object into two separate meshes seems a reasonable workaround for me seeing as blender can use one armature to drive multiple objects.
If it is indeed a subdivision LOD system that’s being asked for, then yes, this would be difficult to implement to say the least.

This would be very excellent to have, especially for terrains. Only subdivide the parts of the terrain as much as needed for the detail of the displacement. For example: rock piles on smooth rolling hills. Nothing sucks more than taking up 40GB of memory for some rock displacements that only take up 5 percent of a terrain.