Paper: NURBS with Extraordinary Points: ... Non-uniform, Rational Subdivision

Hi there,

Hope this might be of interest to some people here. I came across an interesting video at Vimeo about a subdivision method where the surfaces can represent any odd degree NURBS patch exactly. Source code seems to be available.

I can’t link directly but a search for “NURBS with Extraordinary Points: High-degree, Non-uniform, Rational Subdivision Schemes” and Tom Cashman should bring it up.

Not sure I grasp it completely.

I did a search and couldn’t find it mentioned before.

Ah first post, no links allowed :slight_smile:

Here’s the link to the video http://vimeo.com/4412389

Also here’s a link to the project’s website and paper http://www.cl.cam.ac.uk/~tc270/subdnurbs.html

you should into the Post for the new Nurbs tools at leat the DEv for this wold know about it and may be do something !

http://blenderartists.org/forum/showthread.php?p=1373195&highlight=new+nurbs#post1373195

Salutations

I could be wrong but my understanding is that this is a subdivision scheme which can achieve Nurb equivalent surfaces. It isn’t actually Nurbs.

@Lamoot - Thanks for providing the links for the linkless.

then why is the paper called Nurbs ?
ok did not have time to read the paper but i’ll do later

but i did read the beginning of it and it clearly states that this is Nurbs of some sort
i’ll ask the DEv for Nurbs ot at leat have a look and let them decide if it is usefull

Thanks

It’s called “NURBS with Extraordinary Points”. I think extraordinary points are typical of subdivision surfaces. It looks to me like it’s using Nurbs maths to produce the subdivision surface. They’ve been squished together.

it clearly states that this is Nurbs of some sort
I’m not too clear on anything about this. :slight_smile:

This is from the paper:

“With the introduction of subdivision surfaces which have the full
capabilities of NURBS, it is possible that end users need no longer
be presented with mutually exclusive surface primitives for NURBS
and Catmull-Clark subdivision surfaces.”

i’ll ask the DEv for Nurbs ot at leat have a look and let them decide if it is usefull
Cool. Hope it is.

Hi, I’m the primary author on this paper. Thanks for taking a look! I thought I might be able to clear up some of the confusion in this thread.

@Sleeper: it’s fair to think of these surfaces as NURBS and subdivision surfaces “squished together”. But the new surfaces are also “actually NURBS”. It all hinges on these ‘extraordinary points’ (I think the T-splines people call them ‘star points’; it basically means points which are connected to a number of edges which isn’t 4). In any part of the surface without extraordinary points, the new surfaces are exactly the same as NURBS. In bits of the surface which are close to extraordinary points, the new surfaces work a bit like subdivision surfaces. Does that help?

tjc, any chance of you contributing this bit of mesh magic to blender’s code as another option in addition to catmull-clark and “simple subdiv” under the subsurf modifier? Please, pretty please? :smiley:

Great work, regardless! Kudos!

@Tjc

Thanks for clarifying theses Nurbs concept

and i find it very interesting - mind you i’m not really in math
but know a little about it

i hope this can be added to Blender as a new tool - look very interesting !

now would you be able to summaryse the difference between the different type of curves we have in blender

Like – Bezier - Poly - Nurbs - and also the other one like Spline and B spline
amd this new type Nurbs with Star-points

but not too deep in math please - more in simple layman terms if possible

Thanks

Happy blendering

Yes thank you. That does clear it up a bit. So to be brutally reductionist it’s NURBS with subdivision-ish bits?

I don’t know that much about NURBS. Most of my experience is with flat poly representatons. Going all the way back to using graph paper and having to type the numbers into Videoscape3D.

Congratulations on getting into SIGGRAPH.

What about trims and uvs?

So to be brutally reductionist it’s NURBS with subdivision-ish bits?
Sure. In exactly the same way, actually, that Catmull-Clark subdivision is “uniform bicubic B-splines with subdivision-ish bits”. In fact, in both cases the subdivision-ish bits are made up of an infinite number of B-spline patches, so to be even more reductionist:

  • Catmull-Clark subdivision is “uniform bicubic B-splines, with a way of generating smoothly-joining uniform bicubic B-spline patches around extraordinary points”
  • The new surfaces are “NURBS, with a way of generating smoothly-joining NURBS patches around extraordinary points”

@RickyBlender, I suspect the Blender documentation wiki would do a better job of explaining your list than I could!

@el_diablo, The new surfaces can handle trims and uv maps in exactly the same way as existing subdivision surfaces (or, in regular parts of the surface, exactly the same way as NURBS). I don’t think Blender has any trimming capabilities for NURBS or subdivision surfaces, but there’s no technical barrier here. UV maps are a way of assigning a parametrization to a surface, and the paper does talk briefly about the impact that our method has on the natural parametrization that comes directly from the surface definition (see Figure 13 in the paper).

Sure. In exactly the same way, actually, that Catmull-Clark subdivision is “uniform bicubic B-splines with subdivision-ish bits”. In fact the subdivision-ish bits are made up of B-spline patches as well, so to be completely reductionist:

  • Catmull-Clark surfaces are “uniform bicubic B-splines, with a way of generating smoothly-joining uniform bicubic B-spline patches around extraordinary points”,
  • the new surfaces are “NURBS, with a way of generating smoothly-joining NURBS patches around extraordinary points”

@RickyBlender: I suspect the Blender documentation wiki would give a better explanation than I could here!

@el_diablo: Trimming curves can work for subdivision surfaces in almost exactly the same way as NURBS. Most modelling applications don’t support trimming curves for subdivision, but there’s no thereotical challenge here. As for UV mapping, that works in just the same way as current subdivision surfaces. In fact UV mapping is a way of allocating a 2D “parametrization” to the surface, and we do talk briefly in the paper (see Figure 13) about the impact that our method can have on the “natural parametrization” that comes from the definition of the surface (i.e. without having to do any UV unwrapping).

Right, okay. I can’t help thinking that part of the confusion here is caused by how one usually interacts with these surfaces when modelling. That and a lack of maths.

Subdivision surfaces, especially the way they’re usually implemented, just look like a way of dividing up the geometry of a poly mesh. If you had the time you could build them manually. I don’t think there is an awareness that you’re actually dealing with curves. You only ever experience it as approximating a curve, the more you divide it up. If when you added subdivision to a cube, BAM, a sphere popped up the link would be clear.

As for patches, hmm, well the NURBS guys talk about them a lot. I thought they referred to joining separate curves. Looking at Wikipedia’s description of the Catmull-Clark recursive evaluation algorithm there isn’t any mention of taking different action at extraordinary points. So I assume the algorithm inherently produces these patches?:spin:

thats because the current sub-surf modifier in blender does not really turn your poly mesh into a full sub-division surface…

At least from what I’ve understood anyway’s. :smiley:

Blender, Lightwave, Modo, or C4D all use what we call Subdivision Surfaces with Catmull Clark.

Maya on the flipside has a different subD system which works different. Instead of global subdivision
like in Blender with levels you can make local subdivision of just a face or selected faces.
This gives locally more points to work with.

This system works actually similar to multires because you can switch forward and backwards in the
levels. However Mayas SDS system only I think has 3 levels. However they ALWAYS result in 100% smooth surfaces.

What is Subsurf in Blender is something like SmoothProxy in Maya.
Maybe this is also why Maya converts SDS right into NURBS.

I could be wrong (often am) but that sounds like just a more sophisticated way of controling it.

However they ALWAYS result in 100% smooth surfaces.
Right. As far as I’m aware Maya uses Exact Evaluation. Whereas Catmull-Clark is a recursive algorithm (been looking stuff up). Blender’s implementation requires you to set the level of recursion. It’s that which disguises the fact you’re dealing with curves.

What I was actually confused about is the patches bit.

have you seen a good definition of patches?

like to see it and better understand it !

Thanks

Ah, well er, no not really.

If you check Wikipedia’s Nurbs entry, then you get the definition you get from the Nurbs modelling guys. It’s a separately modelled piece of an object that you want joined together. It goes on to discuss different types of join.

This is all very well but I can’t reconcile it with CC subdivision. But if you look at this definition from a 3D scanning company you get something that makes more sense. Only the definition itself is poorly worded and ambiguous in meaning.

It states that this use is specific to them but it’s not clear if that just refers to that paragraph or the whole thing. It then goes on to say that Patch doesn’t mean the same in CAD and CGI. Does that mean that CAD uses a different definition to CGI, or both use a different one to the one they’ve just defined?

So still confused.:confused:

ok i’v seen thsi wiki definition
and still not clear if the pieces to joint have the same qty of isolines for instance
or what about dimensions can it be like doing a bottle neck ?

it’s still a vague definition - it’s 2 pieces but what are the limitations if any ?

Thanks