Notifications
Clear all

[Closed] TurboSmooth subdivision algorithm?

@TheGrak @PEN

I’m attaching a .mse for anybody who wants to test this for a while…,
I didn’t plan it as a public release, because its was mainly to see how it works.

I tested on different meshes like the previous snapshot, until I found they all worked, but I don’t know how solid it is. It could do more testing vertex per vertex but it would take more time to process…

it wont detect if the mesh is at the lowest level, it will always try to reverse…

catmull clark only, I don’t know about most models in internet…there are different cases.
editable_poly only
no subdivided cubes :-]

It should run fast enough; but its not all optimized, surely there is room for more, but because the code is not final yet… I’ll try later…

the algorithm is known as Reverse Catmull-Clack. it’s easy to find it in internet… let’s say this article: http://wscg.zcu.cz/WSCG2006/Papers_2006/Full/B89-full.pdf
it might be cool to practice in math and spend about half a day to implement the algorithm. but who can give a reason to do it. what is a practical value?
so the reverse “subdivision” doesn’t make any sense for me.

It can be useful Denis if you get a Zbrush mesh or something from someone, and don’t have the source LP Mesh. Or if you accidently collapsed your Turbosmooths or someone else did.

I did some remote work for Bioware, and they wanted us to collapse the mesh into 1, with the turbosmooths applied/collapsed.

1 Reply
(@denist)
Joined: 11 months ago

Posts: 0

zbrush has this method… it calls something like reconstruct subdivision.
it’s only one universal algorithm to restore anything destroyed accidentally – make copies.
using of reverse algorithm is very limited, and might work in very specific cases.

Oh yeah…that is right… I forgot about that in Zbrush. Well, if you don’t have Zbrush, then his tool is still good

if you have no tool, then any tool is good.

 eek

Does this only work with models that have gone through a subdivided process? For instance I you poly model > tesselate > model etc etc… Will it reverse it? I ask as i thought in the paper it mentioned it doesnt quite work with regular models.

the paper explains how to reverse Catmull-Clark only, requires a C-C mesh,
but trying something more… depends on how you implement the code, which is the hard part

if you modify a subdivided model, the result is relative to how much you modified it, could result in something ok or something with distorted parts.

e.g:
I though, to test each vertex to assure it belongs to a catmull-clark subdivision, this way it will be possible to restore meshes “partially” subdivided, then I would interpolate the boundaries of the restored parts with the rest.

if a mesh has a different subdivision method, like 3ds’s tessellation, it requires a different approach,
it is possible to extend the reversion to these other cases, but this is not a re-topology solution

try the maxscript file I attached, its a clean mxs…(it has the undo on, so don’t use on very dense meshes)
I’ll try to work on it more…

.

Interesting discussion. I tried this in the past too, but couldn’t find a way to make it work for vertices that are shared by 3 edges.

Anyone got that working? (:

Also I thought zbrush’s subd wasn’t based on Catmull-Clark. Is it?

Cheers,
Light

catmull-clark algorithm doesn’t assume a reverse action. if you don’t know boundary vertices you can’t reverse the result back. if you know that all original faces were triangles or quads technically you can find boundary vertices and reverse.
the reverse catmull-clark can’t be used for mesh optization.
the only one thing that reverse catmull-clark does do good it’s helping light-headed persons to restore collapsed turbosmoothed meshes.

I know the boundary vertices but the problem is to find these vertices’ old position when they are shared by 3 edges, which makes it impossible to calculate. It’s easy to calculate other vertices but when they are shared by 3 edges, one needs to find another way.

It’s not super useful but I think still a handy feature to have IMO.

Cheers,
Light

Page 2 / 2