This Article 
 Bibliographic References 
 Add to: 
Performing Efficient NURBS Modeling Operations on the GPU
July/August 2009 (vol. 15 no. 4)
pp. 530-543
Adarsh Krishnamurthy, University of California, Berkeley, Berkeley
Rahul Khardekar, University of California, Berkeley, Berkeley
Sara McMains, University of California, Berkeley, Berkeley
Kirk Haller, SolidWorks Corporation, Concord
Gershon Elber, Technion, Israel Institute of Technology, Haifa
We present algorithms for evaluating and performing modeling operations on NURBS surfaces using the programmable fragment processor on the Graphics Processing Unit (GPU). We extend our GPU-based NURBS evaluator that evaluates NURBS surfaces to compute exact normals for either standard or rational B-spline surfaces for use in rendering and geometric modeling. We build on these calculations in our new GPU algorithms to perform standard modeling operations such as inverse evaluations, ray intersections, and surface-surface intersections on the GPU. Our modeling algorithms run in real time, enabling the user to sketch on the actual surface to create new features. In addition, the designer can edit the surface by interactively trimming it without the need for retessellation. Our GPU-accelerated algorithm to perform surface-surface intersection operations with NURBS surfaces can output intersection curves in the model space as well as in the parametric spaces of both the intersecting surfaces at interactive rates. We also extend our surface-surface intersection algorithm to evaluate self-intersections in NURBS surfaces.

[1] A. Krishnamurthy, R. Khardekar, and S. McMains, “Direct Evaluation of NURBS Curves and Surfaces on the GPU,” Proc. ACM Symp. Solid and Physical Modeling, pp.329-334, 2007.
[2] T. Kanai, “Fragment-Based Evaluation of Non-Uniform B-Spline Surfaces on GPUs,” Computer-Aided Design and Applications, vol. 4, no. 3, pp.287-294, 2007.
[3] M. Guthe, A. Balazs, and R. Klein, “GPU-Based Trimming and Tessellation of NURBS and T-Spline Surfaces,” ACM Trans. Graphics, vol. 24, no. 3, pp.1016-1023, 2005.
[4] H. Pabst, J. Springer, A. Schollmeyer, R. Lenhardt, C. Lessig, and B. Froehlich, “Ray Casting of Trimmed NURBS Surfaces on the GPU,” Proc. IEEE Symp. Interactive Ray Tracing, pp.151-160, 2006.
[5] C. de Boor, A Practical Guide to Splines. Springer-Verlag, 1978.
[6] C. Loop and J. Blinn, “Resolution Independent Curve Rendering Using Programmable Graphics Hardware,” Proc. ACM SIGGRAPH '05, pp.1000-1009, 2005.
[7] M. Guthe, A. Balazs, and R. Klein, “GPU-Based Appearance Preserving Trimmed NURBS Rendering,” J. WSCG, vol. 14, 2006.
[8] D.L. Toth, “On Ray Tracing Parametric Surfaces,” Proc. ACM SIGGRAPH '85, pp.171-179, 1985.
[9] T. Nishita, T.W. Sederberg, and M. Kakimoto, “Ray Tracing Trimmed Rational Surface Patches,” Proc. ACM SIGGRAPH '90, pp.337-345, 1990.
[10] W. Martin, E. Cohen, R. Fish, and P. Shirley, “Practical Ray Tracing of Trimmed NURBS Surfaces,” J. Graphics Tools, vol. 5, no. 1, pp.27-52, 2000.
[11] T.J. Purcell, I. Buck, W.R. Mark, and P. Hanrahan, “Ray Tracing on Programmable Graphics Hardware,” ACM Trans. Graphics, vol. 21, no. 3, pp.703-712, 2002.
[12] T.J. Purcell, C. Donner, M. Cammarano, H.W. Jensen, and P. Hanrahan, “Photon Mapping on Programmable Graphics Hardware,” Proc. ACM SIGGRAPH/EUROGRAPHICS Conf. Graphics Hardware (GH '03), pp.41-50, 2003.
[13] N.A. Carr, J. Hoberock, K. Crane, and J.C. Hart, “Fast GPU Ray Tracing of Dynamic Meshes Using Geometry Images,” Proc. Graphics Interface '06, pp.203-209, 2006.
[14] G. Elber and M.-S. Kim, “Geometric Constraint Solver Using Multivariate Rational Spline Functions,” Proc. Sixth ACM Symp. Solid Modeling & Applications, pp.1-10, 2001.
[15] T. Thompson and E. Cohen, “Direct Haptic Rendering of Complex Trimmed NURBS Models,” Proc. Eighth Ann. Symp. Haptic Interfaces for Virtual Environment and Teleoperator Systems, 1999.
[16] G.E. Blelloch ed., Vector Models for Data-Parallel Computing. MIT Press, 1990.
[17] D. Horn, GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation, chapter on Stream Reduction Operations for GPGPU Applications. Addison-Wesley, 2005.
[18] A. Greß, M. Guthe, and R. Klein, “GPU-Based Collision Detection for Deformable Parameterized Surfaces,” Computer Graphics Forum, vol. 25, no. 3, pp.497-506, 2006.
[19] S. Sengupta, M. Harris, Y. Zhang, and J.D. Owens, “Scan Primitives for GPU Computing,” Proc. ACM SIGGRAPH/EUROGRAPHICS Symp. Graphics Hardware (GH '07), pp.97-106, 2007.
[20] N.K. Govindaraju, S. Redon, M.C. Lin, and D. Manocha, “CULLIDE: Interactive Collision Detection between Complex Models in Large Environments Using Graphics Hardware,” Proc. ACM SIGGRAPH/EUROGRAPHICS Conf. Graphics Hardware (GH '03), pp.25-32, 2003.
[21] P. Kipfer, M. Segal, and R. Westermann, “UberFlow: A GPU-Based Particle Engine,” Proc. ACM SIGGRAPH/EUROGRAPHICS Conf. Graphics Hardware (GH '04), pp.115-122, 2004.
[22] A. Kolb, L. Latta, and C. Rezk-Salama, “Hardware-Based Simulation and Collision Detection for Large Particle Systems,” Proc. ACM SIGGRAPH/EUROGRAPHICS Conf. Graphics Hardware (GH '04), pp.123-131, 2004.
[23] A.A.G. Requicha and J.R. Rossignac, “Solid Modeling and Beyond,” IEEE Computer Graphics Applications, vol. 12, no. 5, pp.31-44, 1992.
[24] C.M. Hoffmann, Geometric and Solid Modeling. Morgan Kaufmann Publishers Inc., 1989.
[25] N.M. Patrikalakis, “Surface-to-Surface Intersections,” IEEE Computer Graphics and Applications, vol. 13, no. 1, pp.89-95, 1993.
[26] S. Krishnan and D. Manocha, “An Efficient Surface Intersection Algorithm Based on Lower-Dimensional Formulation,” ACM Trans. Graphics, vol. 16, no. 1, pp.74-106, 1997.
[27] R.E. Barnhill and S.N. Kersey, “A Marching Method for Parametric Surface Surface Intersection,” Computer Aided Geometric Design, vol. 7, nos.1-4, pp.257-280, 1990.
[28] G.A. Kriezis, P.V. Prakash, and N.M. Patrikalakis, “A Method for Intersecting Algebraic Surfaces with Rational Polynomial Patches,” Computer Aided Design, vol. 22, no. 10, pp.645-654, 1990.
[29] L.A. Piegl and W. Tiller, The NURBS Book, second ed. Springer, 1997.
[30] S.S. Abi-Ezzi and M.J. Wozny, “Factoring a Homogeneous Transformation for a More Efficient Graphics Pipeline,” Computer Graphics Forum, vol. 9, no. 3, pp.245-255, 1990.
[31] D. Filip, R. Magedson, and R. Markot, “Surface Algorithms Using Bounds on Derivatives,” Computer Aided Geometric Design, vol. 3, no. 4, pp.295-311, 1987.
[32] J. Corney and T. Lim, 3D Modeling with ACIS. Saxe-Coburg, 2001.

Index Terms:
NURBS, GPU, inverse evaluation, sketching, interactive trimming, SSI, intersection curves, self-intersection, prefix sum.
Adarsh Krishnamurthy, Rahul Khardekar, Sara McMains, Kirk Haller, Gershon Elber, "Performing Efficient NURBS Modeling Operations on the GPU," IEEE Transactions on Visualization and Computer Graphics, vol. 15, no. 4, pp. 530-543, July-Aug. 2009, doi:10.1109/TVCG.2009.29
Usage of this product signifies your acceptance of the Terms of Use.