We present a highly efficient direct trimming technique for NURBS surfaces, which is applicable to tessellation-based rendering as well as to ray tracing systems. The central idea is to split the trim curves into monotonic segments with respect to the two parameter dimensions of the surface patches. We use an optimized bisection method to classify a point with respect to each monotonic trim curve segment without performing an actual intersection test. Our hierarchical two-level acceleration structure allows the use of a large number of such curve segments and performs the bisection method only for points contained in the bounding boxes of the curve segments. We have integrated our novel point classification scheme into a GPU-based NURBS ray casting system and implemented the entire trimmed NURBS rendering algorithm in a single OpenGL GLSL shader. The shader can handle surfaces and trim curves of arbitrary degree, which allows the use of original CAD data without any approximations. Performance data confirms that our trimming approach can deal with hundred thousands of trim curves at interactive rates. Our point classification scheme can be applied to other application domains dealing with complex curved regions including flood fills, font rendering and vector graphics mapped on arbitrary surfaces.
Results and Gallery
We integrated the proposed point classification scheme into our GPU-based Ray Casting System for trimmed NURBS surfaces. Our experiments have shown that real-time rendering of arbitrary trimmed NURBS surfaces is possible on current graphics hardware. This gallery shows models including NURBS surfaces of very high degree and complex trimming regions that can be rendered with interactive frame rates.
This video shows the performance and image quality of our algorithm.
Schollmeyer, A., Froehlich, B.:
Direct Trimming of NURBS Surfaces on the GPU
accepted for ACM SIGGRAPH 2009