SubD to Nurbs G0 continuity problem

G0 = continuous
G1 = G0 + tangent continuous
G2 = G1 + curvature continuous.

Rhino SubDs are Catmull Clark subdivision surfaces. Below “subd” means Catmull Clark subdivision surface.

For every interior point on a smooth subd edge, the subd is G2.
At an ordinary smooth vertex (4 faces and 4 smooth edges), the subd is also G2.

At smooth exceptional vertices (also called “star points”) the subd is G1, but often is not G2.

In many cases, the corners of subd faces at exceptional vertices are not even NURBS surfaces. This is a well known issue with Catmull Clark subdivision surfaces. As a result, ToNurbs is forced to approximate the subd surface at exceptional points. Chuck has done the hard part of getting a smoother NURBS approximation at exceptional vertices and this will be added to ToNurbs in the near future. In addition, we have finished developing the tools to automatically group subd quads into large grids that can become a single face in the ToNurbs brep and an option to make fewer and larger brep faces will be added to ToNurbs in the near future.

Zebra analysis is created by rendering a simple environment map on a polygon mesh approximation of the brep or subd. Away from the NURBS surface bispans touching exceptional points, any Zebra visualization issues are mesh rendering artifacts. You can run the Zebra command on the subd itself to get a better idea of the subd surface shape. (The mesh used for Zebra display on subds is a very regular quad mesh, the meshes on breps are often more ragged.) You may use the ExtractAnalysisMesh command to see the mesh being used to create the Zebra image.

8 Likes