Naar de inhoud

What is the difference between mesh modelling and NURBS modelling?

This is the English reading version of the Dutch news item Wat is het verschil tussen mesh-modelleren en NURBS-modelleren?

Two programmes can draw the same part and still store it differently. One keeps the shape as a skin of triangles, the other as surfaces defined by mathematics. That difference decides what you can do with the model later: measure it, round it, exchange it and edit it.

What a mesh is

A mesh model is a skin of triangles. A round hole becomes a row of flat patches, and the finer you make them, the rounder it looks. Up close the kinks stay visible, and a true circle does not exist in such a model: it is a polygon with many sides. Measure that hole and you get a value that sits just off the intended size, and a fillet is a staircase of facets instead of a smooth transition.

For visual work that is no problem. A render, an animation or a 3D print works with triangles, and a print is built up in layers anyway.

What a NURBS/B-rep model is

A NURBS/B-rep model stores no triangles but surfaces: a flat plane, a cylinder, a cone, a sphere, a torus, and for free forms a surface described by formulas. Those surfaces are joined together in a structure of edges and adjoining faces, a B-rep. A hole of 10 mm is then exactly 10 mm, a cylinder is round at every zoom level, and a fillet is a real fillet.

In practice you will also come across the words exact modelling and B-rep modelling for the same thing. It is the same principle: computing with surfaces instead of with triangles.

What NURBS actually is

NURBS stands for non-uniform rational B-spline: a curve or surface fixed by a handful of control points and weights, so that the computer can recalculate it at any zoom level. A car mirror, a shoe sole and a bucket seat are not a cylinder or a sphere, which is why they are described with NURBS. Most NURBS models also contain ordinary analytic surfaces: a block with a hole in it is a flat plane plus a cylinder.

What you notice

The difference really shows when you exchange and when you edit. STEP keeps real surfaces, so another programme can edit the model again and change a dimension. STL and 3MF keep only triangles, and there is little left to change there. A mesh is fine for printing or rendering; a NURBS model is what you need if someone later wants to adjust a fit or make a drawing with dimensions.

The computing heart of a programme follows that choice too. A kernel that works with NURBS surfaces can place a fillet where two surfaces meet, give a wall a thickness and run a model through for machining. A mesh kernel cannot do that, or only half, because there are no surfaces to compute on, only triangles.

Why a programme still chooses mesh

Because it is simpler. A mesh kernel is smaller, quicker to build and free of the licence terms attached to the big NURBS kernels. The best known are commercial libraries such as Parasolid and ACIS, and the open-source OCCT; they are large, old and expensive to maintain. Anyone who wants to put a modelling programme together quickly therefore often starts with triangles.

The price is paid by the user. A fillet on a round edge, reading STEP, editing someone else’s model: none of it is there, even when the buttons on screen look the same as in a programme that can do it.

How to see the difference

Zoom in on a round hole. If the edges stay smooth, the programme computes with NURBS; if you see facets, it is a mesh. A second check: have the programme draw a hole of 10 mm and measure it. A mesh kernel returns a value that is slightly off, a NURBS kernel returns 10.00.

The description of NURBS and B-rep is in the OCCT documentation. What a kernel does beyond that, and which open-source kernels exist, is in What is SMLib, and how does it relate to OCCT?.

Laat een reactie achter

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *