View Full Version : Align to subD surface when dividing.

05-10-2004, 04:57 AM
Wouldn't this be cool:

When adding detail to a subdivision surface, it would be really cool if it kept the original shape. Kinda like when adding curves on a nurbs surface.

In the below example (kinda crappy example, but still)

1st object. simple torus. 2nd object, cut with knife tool. Shape radically changes.
3rd object, object conforms to keep its general shape even though you added a cut.

05-10-2004, 04:58 AM
Ouch.. bad picture.
Wireframe shade is better

05-10-2004, 05:05 AM
this was something I wanted too, at the moment you start pulling your model around, roughing the shape, then, you need to add some detail and shazam! it stuffs the work you've just done!

Chris S. (Fez)
05-10-2004, 07:03 AM
Being able to nondestructively add detail is one of the cooler things about NURBS. I agree it would be interesting to see something similar in Subds.

jin choung
05-10-2004, 12:13 PM
for me,

i will always argue for an implementation of SDS that is as much like everyone else (and especially like renderman) as possible.

sds currently is almost as nonstandardized a surface type as you can get (i.e. the standards for polys meshes and nurbs is pretty well defined) and the more this is true, the more difficult it becomes to move finalized assets from one app to another.

you don't want your meshes trapped on an island that is your app (especially if you hope to use your app of choice in various work environments) so i say before we make unique changes, we should implement all the features that are currently part of the renderman spec (i.e. edge weighting, uv mapping without distortion, etc).


and SDS is not necessarily the ideal surface for all kinds of models...

imo, true NURBS are ideal for things like industrial design shapes, car chassis and other smoothly flowing but non deforming meshes precisely for the ability to slice and dice in new details without having to alter the underlying control point structure - while keeping the whole model resolution independent at the same time.

on the other hand, i can't imagine why anyone in this day and age would attempt a NURBS character model!


05-10-2004, 01:33 PM
Ahh! But I am not talking about a new sds algorithm!
I am talking about the mesh adapting its points such as as closely as possible match the look of the mesh before the new detail was added. There must be some way that you can try to match a new mesh to fit an underlying mesh (old mesh).

And about standard or no standard sds.. In LW a sds cube looks like a cube witch tries to be a sphere, but just can't get there. In XSI, for example, a sds cube looks like a perfekt sphere.. Where is the standard here?

jin choung
05-10-2004, 06:18 PM
that's what i'm saying...

there are, indeed, NO STANDARDS.

and this is a problem for a geometry type. i believe xsi has several different sds types including catmull/clark (pixar) and butterfly among others.

imo, everyone should go pixar. they are the defacto adobe of the field.

they should take a leadership role in standardizing the 3d landscape and everyone else should pack it in and follow suit.


Elmar Moelzer
05-10-2004, 06:34 PM
There is a new plugin- class in LW8.0 that allows everyone to add his own custom polytypes.
Custom Polytypes can be used for Metaballs, Skelegons, renderable Splinepatches and of course custom SubDivision Surfaces (!). So, you can add whatever SDS- algorithm you want now.

jin choung
05-10-2004, 07:09 PM

are you serious?! that [email protected]#$ing unbelievably great!!!

if that's not a tipping of the hand of future development, nothing is!


thanks for sharing!


Elmar Moelzer
05-10-2004, 07:40 PM

Chris S. (Fez)
05-10-2004, 08:27 PM
Very cool! Thanks Elmar!

05-10-2004, 11:31 PM
This is really good new Elmar! :)

Me happy, me do little dance :)

05-11-2004, 12:39 AM
I hope it comes with some sample code ...

Does it allow you do use the standard subdivision level and metaball resolution? Or wont it plug into these?

05-11-2004, 12:49 AM
Hmm.. could this be why hurleyworks patchit is not released yet?

(plugins, view patchit demos)


Does this now allow micropoly displacement btw, or just the way the sds splines act in modeler?

jin choung
05-11-2004, 12:57 AM
nothing but a change in the RENDERER will allow for micropolygon displacement.

we can do ourselves a favor so that our sds surfaces end up looking and behaving like pixar sds but it will still just tesselate according to the subdiv iteration setting unless they change that pipeline and the renderer.


05-11-2004, 01:02 AM
Ok.. but how about adaptive tesselation then? Can we override the 'render subD level'? Before that could not be accessed by plugins I heard. If we can do that now, and not just on an object basis, but polygon basis, adaptive tesselation is a possibility. Someone from newtek stated earlier that they were working on n-gon subD's aswell. That seems to fit right in with what Elmar said. That would perhaps allow easier tesselation aswell?

I'm in no way a coder or any the least into the math behind it.. Just trying to understand this whole thing..

jin choung
05-11-2004, 01:06 AM
since they already have the code for METAFORM PLUS, i desperately hope that they hurry and pump out a 'tab' version of that:

-all quads upon first iteration
-ngons no problemo
-much less puckering, pinching and sucking

just the presence of the new 'polytype' doesn't say anything about edges as entities or edge weighting (or a strategy or method of dealing with uv maps and sds) but i guess you gotta start somewhere....


jin choung
05-11-2004, 01:12 AM
right. exactly right.

ADAPTIVE SUBDIVISION is a big part of the advantage of 'dicing' into micropolygons... the renderers that DO do that attain as much speed in rendering that they do because they do indeed adaptively dice... so that a part of a surface in the extreme foreground does NOT dice at the same resolution as the exact same surface in the extreme background.

again, that's a renderer thing.

and again, it's not something that lightwave does... AT ALL.

there is a plugin that will change the subdivision level of a model depending on distance but all that does is change an integer value-

and the WHOLE OBJ undergoes the exact same change.

you're exactly right... if we DID do adaptive subdivision to some degree, so that a single object can have differing levels of tesselation, we COULD fudge a way to do it. but lw don't:we can't.


p.s. in fact, i don't think that the lw renderer 'subdivides' at all (with the exception of hypervoxels - that rasterizes a volume directly which is pretty freakin' advanced....). at most, it turns everything (ngons, quads) into triangles but that seems to be the extent to the the geometry manipulation that it does... i think lw doesn't send an 'sds' to the renderer at all... it just sends out triangles and that's the only geometry that the renderer can render or recognize.

05-11-2004, 03:16 AM
Don't worry Jin, as long as there's some kind of example code for sds I'll try to make something you'll be happy with ;)

I'd like to see how they handle edges in their code, as they're not supported in the sdk, but they are needed to do cc sds properly. There's still some things metaform plus should be doing to be cc sds though. Also, why do you say metaform plus does less pinching etc? It still pinches from what I can see. Can you should us how maya subdivides a cylinder or something Jin?

As this is a plugin type now, and you can hopefully get data in and out of it, maybe someone will be able to make a volumetric plugin that'll make your sds surface a perfectly smooth volumetric object. Maybe ...

jin choung
05-11-2004, 10:56 AM
one at a time cuz i don't know how else to do it.

behold a test cage. it is the one that was frequently cited as an example when geri's game came out proclaiming sds to be the next best thing since sliced bread.


jin choung
05-11-2004, 10:57 AM
the reprehensible result of 'TAB'ing it.


jin choung
05-11-2004, 10:58 AM
the worlds apart difference of mfp (i.e. catmull clark).


jin choung
05-11-2004, 11:00 AM
and so you can play for yourselves, here's the .lwo.

it is an extreme example but it is very demonstrative on how different the subdivision algorithms are.


jin choung
05-11-2004, 11:07 AM

and here is the equally lovely results from maya.


p.s. the mfp and the maya example is what the pixar example looked like from the geri's game articles.

jin choung
05-11-2004, 11:14 AM
hey karmacop,

i was also thinking about a way to make the renderer render the surface of an sds like a hypervoxel too.

but two problems:

1. if i'm right, renderer does not even recognize an sds object... it only sees polys that it tesselates into triangles.
2. i don't think hypervoxels are rendered with ANY kind of adaptive 'rasterization' (in this case). and it doesn't cull hidden geometry and all of that adds up to the problem with hypervoxels even right now... it's impractically slow.

oh, and nevermind the fact that we'd be wasting a hell of a lot of cycles by trying to calculate sds as volumes. we don't need that at all.

so it would be interesting to try as an experiment but i don't think it would be useful in any production sense.


05-11-2004, 12:13 PM
Just for comparison's sake here's XSI's interpretation:

jin choung
05-11-2004, 12:39 PM

hey rui, xsi lets you SELECT what kind of subdivision algorithm you want to apply right? what options do they have? and which one is the one shown? it looks like catmull clark....


05-11-2004, 12:46 PM
Jin, I was thinking of volumetrics because HD instance uses volumetrics and it's cloning polygon objects. As far as adaptive sampling, hyper voxels are rendered by the pixel, so I think that's sort of like adaptive sampling, but I'm not too sure about how it all works.

What Rei has attached is Catmull Clark, the other methods look quite different.

jin choung
05-11-2004, 01:01 PM
about volumes... ah, i see.

about per pixel... yah, if so, you're right, it would be adaptive in its way. but again, the volume thing would be a waste.

actually, i think that rui's example would look just like mfp, just like maya....


05-11-2004, 01:13 PM
As Karmacop mentioned the example shown is using catmull-Clark

jin choung
05-11-2004, 01:16 PM
hey rui,

so does xsi cc look like lw's metaform plus? could you maybe export xsi's as a polygonal mesh (.obj should do) so we can check it out?



05-11-2004, 01:16 PM
What is mfp?

jin choung
05-11-2004, 01:17 PM
metaform plus

05-11-2004, 01:18 PM
Ahh ok.

Here's a test for both xsi and maya, what happens when you apply catmullclark to an object with open edges, ie a flat plain?

05-11-2004, 01:34 PM
I found that HV's can render really damned fast. What slows it down is not the size on screen, but the number of elements.
So.. If we could just find a simple way of changing the shape of a single particle :)

Just dreaming...

jin choung
05-11-2004, 01:37 PM
this is the comparison between mfp and maya...

they're not exactly the same but definitely in the ball park. maya's is a bit 'plumper'.

wonder where the xsi one would fall...


p.s. in maya, if you just delete one 'outer face' of the pyramid (i.e. all the faces on the 'bottom') and expose open edges, the results are the same in maya as it is in lw.

05-11-2004, 02:13 PM
Actually that geometry is...yours :D

I downloaded your pyramid.zip file, loaded the lwo into 3DExploration, exported as OBJ and loaded it in XSI.

jin choung
05-11-2004, 02:20 PM
oh i know...

what i meant is, can you export the SUBDIVIDED version of that original cage... so we can see what the xsi subdivision looks like.


05-11-2004, 02:34 PM
MY bad :rolleyes:

here it is at subdivision level 4:

jin choung
05-11-2004, 06:45 PM
thank you rui,

very cool... as luck would have it, all the meshes that i've been working with were frozen to subdivision level 4 as well.

well people,

as it turns out, the xsi is very close to maya... effectively indistinguishible. but all three examples are definitely within 'acceptable tolerance'.

so mfp is just a bit skinnier than the other guys but still a hell of a lot better than the abhorrent, abominable, revolting results from tab.


05-11-2004, 10:48 PM
Jin, what I want to knwo is when you subdivide say, a single quad, do the corners get curved liek thay do in lightwave? From what I've read, when using catmull clark, they are meant to stay straight.

jin choung
05-11-2004, 11:04 PM

a single quad is treated very predictably for someone familiar with lw.

there's no fundamental difference except that it's much nicer....


05-12-2004, 02:38 AM
Hmm ... well from what I've seen that should still be a square. This is partly why you get uv distortion. Again, this is only from what I've read.