Interactive Display of Large Scale Trimmed NURBS Models

Images of Models

The shipping, pivot and torpedo models -- Courtesy Electric Boat.

Graphics systems have made significant advances in polygon rendering capabilities. However many models are more conveniently represented and manipulated using more general representations, e.g. non-uniform rational B-spline (NURBS) surfaces. This class includes Bézier surfaces and other rational parametric surfaces like tensor product and triangular patches. Large scale sculptured models consisting of thousands of such surfaces are commonly used to represent shapes of automobiles, submarines, airplanes, building architectures, sculptured models, mechanical parts and in applications involving surface fitting over scattered data or surface reconstruction. Real time rendering of sculptured models for applications involving virtual worlds and other immersive technologies remains a difficult problem.

We have been working on fast and accurate algorithms to display NURBS surfaces (trimmed and non-trimmed). We polygonize the sculptured models and render them using the capabilities of current graphics systems. The NURBS models (e.g. the dragon model) are decomposed into Bézier surfaces (Bernstein basis) and each Bézier surface is tessellated uniformly in its parametric domain. The criteria for this tessellation are based on the sizes of triangles and their deviation from the surface in the screen space. This involves the calculation of bounds on derivatives and an estimation of curvatures of the surface. Our method improves the way these bounds are calculated and generates fewer triangles

The main new features of our approach are:

We introduce techniques to discard patches facing away from the viewing direction, aka back face culling of triangles. The patches that do not lie on the viewing frustum for a frame are also discarded. We use the coherence of image from frame to frame to speed up the rendering. Only incremental computation is performed to update the triangulation of surfaces at each frame. Most ot the triangles used for a frame are reused in the next frame. We prevent cracks in our rendered images by using the idea of coving and tiling introduced by Rockwood et. al. at patch boundaries. We solve the problem of cracks at trimmed curves by maintaining a multi-resolution representation of the trim curves. The idea is to use the space representation of the curve to estimate the required tessellation.

For triangulating the trimmed surfaces we draw the trim curves on the uniform tessellation mesh, leaving out the triangles totally trimmed out and cutting the triangles that are partially trimmed. Only the points that are in the final triangulation are evaluated.

The PixelPlanes can currently render models with about 30,000 Bézier patches at more than 10 frames a second. (These patches were generated by the BOOL CSG system of UNC, which got its data from Electric boat.) We have got the performance of upto 400K on-screen Bézier primitives per second.

For more information, contact

Subodh Kumar
Dinesh Manocha
Anselmo Lastra

Check Our

Papers and Technical Reports

MPEG demonstration of interactive NURBS display


This research is supported by DARPA ISTO Order No. A410, NSF Grant No. MIP-9306208, Alfred P. Sloan Foundation Fellowship, University Research Award, ARO Contract P-34982-MA, NSF Grant CCR-9319957, ARPA Contract DABT63-93-C-0048, NSF/ARPA Science and Technology Center for Computer Graphics and Scientific Visualization, NSF Prime Contract No. 8920219 and Office of Naval Research Contract, ONR N00014-94-1-0738.


The page (counter) was accessed times since Jan 1 1997.