Is NURBS in Blender true NURBS ?


I had a closer look at the ‘Add’ option for NURBS surface and noticed that for a 4x4 control point cage, the surface looks more like a BiCubic patch as I was expecting a NURBS surface with a 4x4 control point cage to extend all the way to the edges but my viewport shows a smaller patch about 1/9 of the expected area.

Can anyone with NURBS knowledge in Blender shed some light?

Is it related to how the u,v order are specified?

I had a look at the Blender3D source code hoping to find the OpenGL call to gluNurbs to shed some light but I didn’t find any call.

Does Blender3D draws it NURBS surface differently in OpenGL ?


I think NURBS in Blender is true NURBS.

You just cannot save it into anything.

nicholas_yue, for history and current news on blender NURBS development, visit this thread. I was poking around to see if I could find a web log link from the main developer of the NURBS branch, but came up empty. Check at for the latest builds of this branch.

I am accessing the information via the Python API and writing out the information to RenderMan RIB to verify via a render.

i.e. I am writing an experimental Blender to RenderMan export script hence trying to understand the details behind NURBS in Blender.


in the edit buttons (f9 if you are using 2.49) and look for the endpointU/V buttons

All draw code in blender is custom as we onbly use the most basic of OGL calls, this gives us good compat across OGL versions

Thanks. This will be useful. Hope the Python API have access to the underlying NURBS information now represented via Nurbana.

Quick question : Is the Nurbana core embedded in Blender 2.5 or references via a stand alone Nurbana library ?

It’s not used as a library. Nurbana has not been under development for quite a while. Its code base was donated to the BF and Eman (and 2 other developers) have worked to graft it directly into blender in place of the old code and continued it’s development.

I doubt any serious work on the python API for is has been undertaken yet since it’s not even in the trunk yet.

There are quite a few projects queued up for inclusion into the trunk once the Durian project is over. I would guess (based upon maturity of the projects) that the render branch will be pulled in first followed by the B-Mesh branch. After that it’s a bit of a toss up as to whether Freestyle of Nurbana would be pulled in next. The upside for Nurbana is that the current implementation of NURBS is so god-awful bad, that nobody uses it. So the impact of moving the new code in would be quite minimal.

Zstar Electronic Co.Ltd, we sell fire cards for DS/NDSL/NDSi, we also have Wii, DSiLL, NDSi, NDSL, PSP2000, PSP3000, PS2, PS3, PSP go, PSP, Xbox360 accessories

At the risk of being wrong again, I’m pretty sure a lot of time was spent by Emmanuel Stone turning it into a library. Time consuming because it wasn’t originally written that way. In fact isn’t it called LibNurbana?

if you need info go to the New nurb tools thread and ask questions there

one of the dev Eman i think is gone outside for at least 2 months so not available for the time being
but there is somebody else working on this and he may check the thread ounce and a while
so you may get an answer from the one of the dev
prenently working i think on the tool for lofting

2 weeks ago they released the first Built 2.5 with the first 2 new tools for Nurbs
so you can test theses yourself - split and refine tools

but for the rest of it it’s being work on and will take a while before getting another built with new tools but who knows may be next month !

so i don’t think the code for the new Nurbs tools is completed and wont be for a while
but it’s being work on by devs and hopefully will see it soon

so you best shot is the thead for new Nurbs tools

happy 2.5

Well I may be wrong, but from what I understand it is built directly into blender. Doesn’t really matter what it’s called. Being a library simply depends on if it is an independent chunk of executable code that is linked to (statically or dynamically) from blender.

It could be a library, but if no other projects would be using it, there is really no point.