Blender NURBS Development

san

please reconsider what you said.

While this kind of statement is fun to say, and likely theoretically possible, given enough time to manually calculate and move each vertex of an extremely dense mesh, in practice, and therefore reality, it is a falsehood.

Just one of the many (very common in ID) situations is what’s known as continuity of adjacent surfaces: I’ll let Wikipedia give the details: (quoted from the link above)

These relationships affect the way reflections appear at the seam between the adjacent surfaces. This is just one example of where mesh editing has absolutely no chance of competing. Oh, it can come close, and certainly can “look” right from a good rendering angle, but when it comes to accuracy and reproducability (mass production/manufacturing) there’s simply no comparison. For blender, meshes are good enough, because its only meant to look good enough. In the CAD world, looks matter, but so does accuracy. This simple example is but the tip of the iceburg…

These are raytraced fractals with infinitely small, repeating detail, they can’t be repoduced with NURBS. But indeed, standard catmull-clark can’t be used to create a perfect sphere (proven mathematically).

my bad. can I buy you a frappachino?

@shortwave
could you please post some details, that would be of great interest for me. the whole discussion here has been initiated by me because of a research project, which should start in a few weeks. it’s concentrated on blenders usability in architectural workflows and involves mathematicians, programmers, economists and , of course, architects. if things carry on as now it should run somehow like Project ORANGE, which means that there are a few people using blender in a professional workflow and supporters (itc. the mathematicians and programmers at our university) that help out with the troubles we run into.

the difference between blender and a native CAD program is very important, because thats one thing this is about. blender is not going to be an alternative but a substitution in creative work, and one of the main questions is going to be how far is blender of use and when do we have to switch to CAD. if you have a hint where we have to expect the worst please tell me.

What you should understand is that Maya has NURBS capability. So does C4D, TrueSpace, and I don’t know if Lighwave, Max and XSI do. At least that’s what I heard them call it, NURBS. Maya is a commercial app that costs $2000 to purchase. That said you cannot edit Rhino NURBS in it. Yet that’s what you want, right? You want Blender to have the extensive NURBS capability to be able to edit Rhino files. Obviously, that’s not going to happen, at least in the near future. See, what everyone is forgetting is, RHINO IS DIFFERENT. In a BIG way, that is. One salient feature is its almost perfect handling of BOOLEAN operations because its got SOLID geometry built into it as oppose to just surfaces, which Maya and these 3d apps have. More later…

3Dabbler:

c4d has not complete NURBS. They have the same tools like Blender. They use splines to create lofts and extrusions and thats it. But that is not what NURBS is used for. WIth fillets, edge bevels, trim surfaces, curve projectoins things get very interesting with NURBS and that is where their power is.

And maya is a surface editor and has not any solid capabilities.

Brecht,
I would not be that sure about it. With stitch and attach you can make that out of NURBS.

Some people here should keep something in mind:

Polygones are linear lines over which you create an artificial smoothing.
Because of that they are easy to use to create organic objects but you
need to hand model all geometry.

NURBS are calculated via pure math and are always smooth when you want to calculate a point. To simplify that NURBS models are rough in realtime display. When you set Cobalt’s preview or other system to smooth and perfect the applications will get extremly slow.

Renderman can render a point on a NURBS object WITHOUT tesselating the model into polygones first.

Because of that mathmatical accuracy NURBS are the only way for product design when you need to engenier an object for mass production and for mechanical elements.

And yes NURBS objects are send to a 3D printer as a mesh but that mesh is so fine and highres that you do NOT want to edit it in Blender.

Everybody who denies that and things polygones can do the same only shows they do not know what they are talking about.

You have product design and product visualisations, but both are not the same.

Modeling a character and engeniereing a product is just not the same.
I know both because I use both for my work.

(please excuse my spelling errors, I do nto have a spell checker here at the moment)

no.
but i want a clean nurbs import from blender and maybe the possibility to tweak the geometry a little bit. i don’t need the Rhino booleans in Blender and i don’t need all the tools for Nurbs that Rhino offers. but if i’m in a workflow and want to do a quick n’ dirty it just has to look good modification that helps getting new directions into a project, which is what Blender is really good in, thats why i’m posting here, i can’t get back to Rhino without loosing a whole lot of accuracy. ex- and importing just parts of a model is no alternative, it’s too timeconsuming.

thats the reason why i’m not asking for Nurbs tools in Blender but for the possibility to import them as Nurbs, not as Meshes. And i know that Maya’s Nurbs aren’t as good as Rhino’s, but i can work with them and use them in Rhino afterwards. and to say somthing about 3dmax: their nurbs suck much more than blenders, at least until the previous version, i don’t know the last one.

I don’t know of any application that could export Rhino NURBS into clean meshes. It’s almost an impossibility because of the complex mathematical operations involved such as filleting, booleaning, etc. That’s why I keep throwing Maya as a measuring stick. If you can export Maya NURBS into clean meshes, then you won a quarter of the battle. Bottom line is, if a commercial app can’t be developed the way its developers wanted it to, what’s more in a free app like Blender? Look at SketchUp. It isn’t NURBS, yet it can do what it is applied to. What you can only hope with Blender is Maya-like NURBS, never a Rhino-like NURBS, which, ironically, is the very reason why people are crying, “I want NURBS in Blender!”. LOL.

These fractals are infinitely repeating, you can keep zooming in and still see new detail. That can’t be done with NURBS. But fractals are more of a mathematical curiosity, not relevant to this discussion.

To render without tessellating nurbs surfaces you need raytracing,you must find the intersections between a ray and a 3(or upper)polynomial(rational for nurbs).Even renderman dices them in polygons(micropolygons)
The only program(as far I know)that doesn’t tessellate nurbs and render them mathematically is/was Real 4d,which uses a newton/raphson algorithms to find the roots,but generally is slow and not practical.
Nurbs are really good,but only with good tools(especially continuity tools,for keeping surfaces together without crack,for patch modelling,and projecting tools)

lapost

for bglender to be able to show NURBS objects as created in Rhino, Blender needs an industry standart NURBS kernel. It would not make sense to import NURBS but than you cannot do anything with it besides showing it.
You get my point?

You have to just accept Rhino is for modeling your product. In Blender you can render it. But the output from Blender will only be an image. Only Rhino will give you the data for further production.

You can try to use STL or other file formats like obj and also DXF. You will run into issues with fillets and bevels. Rhino exports might give you some hard edges. I also found some issues inside Flamingo which I think is a piece of useless render engine for those who just need a point and click solution.

3Dabbler
again there is no messy mesh from Rhino. You cannot use that in this context. To transfer all edge properties and surface information you just need a “n” amount of polygon faces to represent that. There is no other way to transfer NURBS into Polygon. I am exported a lot from Maya into other formats for further design processes and I do the same with Rhino.
I am not sure where for you guys the issue is.

I use Blender only to do a rendering of the product and often that Rendering is either a simplified model or just a high res export of the NURBS model.

Brecht:
ah ok you ment the fractals. I missed that.

LAPost:

What details are you looking for? Reasons why blender sucks for CAD? There are many reasons.

San Diego James: “polys can do anything NURBS can”? well sure. Graphics hardware doesn’t understand NURBS, it understands polys. But those polys are the results of a mathematical calculation. I’d love to see you try to model some of the more complex NURBS objects by hand with subdiv meshes. Ask yourself just how long you think it would take you.

I want to see you model something like THIS http://www.eyakae.com/pumproomx.jpg with polys, get it to scale (as in, making the pipes exact lengths so an installation contractor can cut the pipe at one location, transport it to another location and install it) and then transfer that model into autocad for 2D SCALED isometric plotting…and guess what? You’ve got TWO DAYS to get it done. Do you really think polys are up to that task? I think not. First off, hidden line display in autocad via “SOLVIEW/SOLPROF” tools will work great with NURBS/IGES/ACIS objects. Meshes will look utterly hideous (and I can prove that).

Working with a polygon-based object for design purposes is utterly painful. NURBS are FAR superior for that, and many other reasons.

Any experienced Rhino user can far outstrip a blender user when it comes to constructing mechanical assemblies and such. I know this for a fact. I’ve been a Rhino user for almost as long as I’ve been a blender user, and I have to tell you…Blender is NOT up to the task of rapid object creation and positioning. Snapping abilities and block support notwithstanding, I’m actually talking about the input model, and workflow. Blender’s workflow is oriented towards working with one single object at a time. Rhino is designed to work with hundreds, even thousands of individual objects at a time. As such, it’s far faster at CAD and industrial design tasks than Blender will ever be.

Incidentally, fractals really aren’t “mathematical surfaces”. A fractal is more of a 2D plot of a given mathematical function. Go read the fractint documentation for more info on that if you’re interested. A mathematical surface would be a 3D object whose surface area is defined by a mathematical function of some sort, which is precisely what NURBS objects are.

What exactly are you talking about? How can you say there is no messy mesh imported from Rhino? Common sense will tell you that a circle done polygonally, for example, is different from a NURBS circle. Vectorially, it is a simple diameter/radius information, in addition to its center point location in space, which is a single coordinate. OTOH, a circle done polygonally is composed of a series of line segments the number of which depends on the curvature resolution you want. Not only can you imagine the vast amount of coordinate data involved, but the accuracy, ie, a NURBS circle is a perfect circle. That is how Rhino translates its data into polygons. It converts a NURBS circle, as an example, into a polygonal circle. And if that circle happens to be a hole on a flat surface, every point on that circle will connect itself to the nearest point of that flat surface to create the appearance of a face. Therefore, expect to see triangles other than quads. There is simply no other way around it. Clean meshes require human intervention such as adding extra edges, vertices, faces.

There is no other way to transfer NURBS into Polygon. I export a lot from Maya into other formats for further design processes and I do the same with Rhino. I am not sure where for you guys the issue is.
You are talking about models done with very simple topologies – NURBS models that almost look like they’re done polygonally, everything is in quads. No booleans, no fillets, no circles, etc.
I use Blender only to do a rendering of the product and often that Rendering is either a simplified model or just a high res export of the NURBS model.
There you go. You’ve been talking about simple NURBS meshes that can be exported to another format with minor difference.

3Dabbler

try to understand the difference between product modeling for rendering and, character modeling for games, and character modeling for motion picture movies.

Maybe that you will understand what you are wrong about.

Cekuhnen, We’ve been talking about Rhino and NURBS, how to export them to clean meshes. Your response is nonsense.

Two simple categories: 1. Models for manufacturing, 2. Models for visualisation.

Number 1 requires accuracy. Number 2 doesn’t.

You need apps like Rhino for 1, or parametric solid modelers like Solidworks, Inventor, Pro-Engineer.

All of the above could be used for both–manufacturing and visualisation as they have their own native or compatible renderers, like Rhino has Flamingo where you don’t have to bother exporting them to another format. Solidworks, I believe, has Mental Ray.

For visualisation purposes, you can use Blender if you are resourceful–architectural, mechanical, organic, you name it.

As for games and movies, you need Blender or other 3d packages. Nothing to do at all with the discussion about NURBS.

Product visualization is a key reason to want to import NURBS geometry into Blender. It is a perfectly valid application for 3D packages like Blender, Maya, 3DS, etc.

After doing CAD file manipulation and hundreds of file conversions for 17 years, I’ve been sent geometry originating from Rhino only once. I’m not saying having a really great Rhino importer that will properly import and display NURBS surface models is a bad idea, in fact it would be great. But what we really need a more neutral way of importing NURBS models. Since I’ve done more file conversions from IGES than any other file format, I’d say a decent IGES importer would be best (IMO).

On a side note, DXF/DWG have, by far, given me the most trouble of any file format. And the existing DXF importer/exporter, although I appreciate it, needs some attention. I know of 3 CAD packages that won’t touch 3D DXF’s exported with Blender, and they all have excellent DXF importers.

But all of this is moot since Blender has no functional API to even write a python import script, and no usable NURBS “kernel” to deal with the data anyway. Nurbana integration seems to have screeched to a grinding halt after its SoC project was completed. Was this work even intergrated into CVS?

Sure, I can always just import STL files… that works, but the resulting model is an absolute mess with gaps and resulting rendering artifacts that take a lot of time to model out.

Getting back to the original post. As far as NURBS modeling tools, yes Blender’s NURBS tools are really insufficient for any kind of serious modelling/skinning. I mention skinning because it is a common method of building models that Blender doesn’t do well at all. I’m talking even about character modeling, not CAD stuff. Since many people believe subsurfacing obsoletes skinning, I think skinning has been largely ignored. If you don’t need to skin a model anymore, then why bother with NURBS at all? But that thinking leaves guys like me who want to do product vis, out in the cold.

Iso

Hear hear. In my line of work (engineering visualization and what-not) I use IGES models a lot. I’d be happy with that, if blender had the capability.

And to anyone who wants to say “But blender has a python API, you can script anything you want!”, let me tell you…concerning NURBS surface access, there ISN’T ANY IN THE CURRENT RELEASE. That functionality was just added a month ago…at my request. Because there’s no way to even get the NURBS that blender has back OUT for rendering to other renderers…has to be converted to mesh, which is far from ideal.

ShortWave

For IGES import, here are some possible libraries

http://mediawiki.blender.org/index.php/File_format_list#CAD_formats

LetterRip

3Dabbler

read my posts again. it might help.

Your talk about messy mesh is nonsense because you do not seem to understand the complexity of details you have to deal with when you export any complex NURBS object into a mesh.

The hole export/import system of mesh works fine, even when the poly-count is high. I am still able to perfectly texture and even animate the geometry because we are dealing here with product animations and not character animations.