Geometric Tools for Computer Graphics

From the Publisher: Do you spend too much time creating the building blocks of your graphics applications or finding and correcting errors? Geometric Tools for Computer Graphics is an extensive, conveniently organized collection of proven solutions to fundamental problems that you'd rather not solve over and over again, including building primitives, distance calculation, approximation, containment, decomposition, intersection determination, separation, and more. If you have a mathematics degree, this book will save you time and trouble. If you don't, it will help you achieve things you may feel are out of your reach. Inside, each problem is clearly stated and diagrammed, and the fully detailed solutions are presented in easy-to-understand pseudocode. You also get the mathematics and geometry background needed to make optimal use of the solutions, as well as an abundance of reference material contained in a series of appendices. KEY FEATURES: * Filled with robust, thoroughly tested solutions that will save you time and help you avoid costly errors. * Covers problems relevant for both 2D and 3D graphics programming. * Presents each problem and solution in stand-alone form allowing you the option of reading only those entries that matter to you. * Provides the math and geometry background you need to understand the solutions and put them to work. * Clearly diagrams each problem and presents solutions in easy-to-understand pseudocode. * Resources associated with the book are available at the companion Web site. Author Biography: Philip Schneider leads a modeling and dynamic simulation software group at Walt Disney Feature Animation. Prior to that, his work at Apple and Digital Equipment Corporation in 3D graphics ranged from low-level interfaces to graphics libraries and interactive applications. He holds an M.S. in Computer Science from the University of Washington. Dave Eberly is the president of Magic Software, Inc., a company known for its free source code and documentation for computer graphics, image analysis, and numerical methods. Previously, he was the director of engineering at Numerical Design Limited, the company responsible for the real-time 3D game engine, NetImmerse. His background includes a B.A. in mathematics from Bloomsburg University, M.S. and Ph.D. degrees in mathematics from the University of Colorado at Boulder, and M.S. and Ph.D. degrees in computer science from the University of North Carolina at Chapel Hill. Dave is author of 3D Game Engine Design, co-author with Philip Schneider of Geometric Tools for Computer Graphics, and author of the forthcoming Game Physics (Spring 2003).

[1]  Rida T. Farouki,et al.  The characterization of parametric surface sections , 1986, Comput. Vis. Graph. Image Process..

[2]  Gary H. Meisters,et al.  POLYGONS HAVE EARS , 1975 .

[3]  S. A. Cameron,et al.  Determining the minimum translational distance between two convex polyhedra , 1986, Proceedings. 1986 IEEE International Conference on Robotics and Automation.

[4]  V. Klee On the complexity ofd- dimensional Voronoi diagrams , 1979 .

[5]  S. Sathiya Keerthi,et al.  A fast procedure for computing the distance between complex objects in three-dimensional space , 1988, IEEE J. Robotics Autom..

[6]  Lee W. Johnson,et al.  Numerical Analysis , 1977 .

[7]  Sariel Har-Peled,et al.  Efficiently approximating the minimum-volume bounding box of a point set in three dimensions , 1999, SODA '99.

[8]  Charles R. Johnson,et al.  Matrix analysis , 1985, Statistical Inference for Engineers and Data Scientists.

[9]  G. E. Collins,et al.  Real Zeros of Polynomials , 1983 .

[10]  Kokichi Sugihara,et al.  On good triangulations in three dimensions , 1991, SMA '91.

[11]  J. Mark Keil,et al.  Decomposing a Polygon into Simpler Components , 1985, SIAM J. Comput..

[12]  Bernard Chazelle,et al.  Triangulation and shape-complexity , 1984, TOGS.

[13]  John Amanatides,et al.  Merging BSP trees yields polyhedral set operations , 1990, SIGGRAPH.

[14]  Hans-Peter Seidel,et al.  Ray tracing of spline surfaces: Bézier clipping, Chebyshev boxing, and bounding volume hierarchy – a critical comparison with new results , 1997, The Visual Computer.

[15]  Philip Schneider,et al.  A Bezier curve-based root-finder" A , 1990 .

[16]  Herbert Edelsbrunner,et al.  Sliver exudation , 2000, J. ACM.

[17]  David G. Kirkpatrick,et al.  Determining the Separation of Preprocessed Polyhedra - A Unified Approach , 1990, ICALP.

[18]  Pat Hanrahan,et al.  Ray tracing algebraic surfaces , 1983, SIGGRAPH.

[19]  G. Farin NURB curves and surfaces: from projective geometry to practical use , 1995 .

[20]  Elmer G. Gilbert,et al.  Computing the distance between general convex objects in three-dimensional space , 1990, IEEE Trans. Robotics Autom..

[21]  Henry Fuchs,et al.  Predetermining visibility priority in 3-D scenes (Preliminary Report) , 1979, SIGGRAPH '79.

[22]  James R. Miller,et al.  Geometric approaches to nonplanar quadric surface intersection curves , 1987, TOGS.

[23]  Bernd Gärtner,et al.  An efficient, exact, and generic quadratic programming solver for geometric optimization , 2000, SCG '00.

[24]  Brian Mirtich,et al.  V-Clip: fast and robust polyhedral collision detection , 1998, TOGS.

[25]  Christoph M. Hoffmann,et al.  Geometric and Solid Modeling: An Introduction , 1989 .

[26]  James R. Miller Applications of Vector Geometry for Robustness and Speed , 1999, IEEE Computer Graphics and Applications.

[27]  Dinesh Manocha,et al.  I-COLLIDE: an interactive and exact collision detection system for large-scale environments , 1995, I3D '95.

[28]  Richard F. Riesenfeld,et al.  A Theoretical Development for the Computer Generation and Display of Piecewise Polynomial Surfaces , 1980, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[29]  Robert E. Barnhill,et al.  A marching method for parametric surface/surface intersection , 1990, Comput. Aided Geom. Des..

[30]  Michael Ian Shamos,et al.  Computational geometry: an introduction , 1985 .

[31]  Ron Goldman,et al.  Elimination and resultants. 1. Elimination and bivariate resultants , 1995, IEEE Computer Graphics and Applications.

[32]  Joshua Levin,et al.  A parametric algorithm for drawing pictures of solid objects composed of quadric surfaces , 1976, CACM.

[33]  Fujio Yamaguchi,et al.  Curves and Surfaces in Computer Aided Geometric Design , 1988, Springer Berlin Heidelberg.

[34]  Ernst Huber Intersecting general parametric surfaces using bounding volumes , 1998, CCCG.

[35]  B. Barsky,et al.  An Introduction to Splines for Use in Computer Graphics and Geometric Modeling , 1987 .

[36]  Thomas W. Sederberg,et al.  Ray tracing of Steiner patches , 1984, SIGGRAPH.

[37]  C. Micchelli,et al.  Blossoming begets B -spline bases built better by B -patches , 1992 .

[38]  Georg Glaeser,et al.  Fast Algorithms for 3D-Graphics , 1994, Springer Berlin Heidelberg.

[39]  L. Carpenter Review of "Geometric principles and procedures for computer graphic applications" by Sylvan H. Chasen. Prentice Hall 1978. , 1980, COMG.

[40]  Jack Snoeyink,et al.  On the time bound for convex decomposition of simple polygons , 1998, CCCG.

[41]  D. A. Field,et al.  Implementing Watson's algorithm in three dimensions , 1986, SCG '86.

[42]  Bart M. ter Haar Romeny,et al.  Geometry-Driven Diffusion in Computer Vision , 1994, Computational Imaging and Vision.

[43]  Nicholas M. Patrikalakis,et al.  Surface-to-surface intersections , 1993, IEEE Computer Graphics and Applications.

[44]  Leonard M. Blumenthal,et al.  Theory and applications of distance geometry , 1954 .

[45]  Joseph O'Rourke,et al.  Finding minimal enclosing boxes , 1985, International Journal of Computer & Information Sciences.

[46]  T. Sederberg Implicit and parametric curves and surfaces for computer aided geometric design , 1983 .

[47]  Chandrajit L. Bajaj,et al.  Tracing surface intersections , 1988, Comput. Aided Geom. Des..

[48]  Andrew S. Glassner,et al.  Graphics Gems , 1990 .

[49]  A. Requicha,et al.  Piecewise-circular curves for geometric modeling , 1987 .

[50]  Andrew S. Glassner,et al.  An introduction to ray tracing , 1989 .

[51]  Ron Goldman,et al.  Elimination and resultants.2. Multivariate resultants , 1995, IEEE Computer Graphics and Applications.

[52]  Tomas Akenine-Möller,et al.  Fast, Minimum Storage Ray-Triangle Intersection , 1997, J. Graphics, GPU, & Game Tools.

[53]  Peter R. Atherton,et al.  Hidden surface removal using polygon area sorting , 1977, SIGGRAPH.

[54]  Jeanne L. Agnew Linear algebra with applications , 1983 .

[55]  Gino van den Bergen Proximity Queries and Penetration Depth Computation on 3D Game Objects , 2001 .

[56]  David Salomon,et al.  Computer Graphics and Geometric Modeling , 1999, Springer New York.

[57]  Bala R. Vatti A generic solution to polygon clipping , 1992, CACM.

[58]  R. Bellman Dynamic programming. , 1957, Science.

[59]  James Arvo,et al.  Graphics Gems II , 1994 .

[60]  Ming C. Lin,et al.  A fast algorithm for incremental distance calculation , 1991, Proceedings. 1991 IEEE International Conference on Robotics and Automation.

[61]  Ron Goldman MORE MATRICES AND TRANSFORMATIONS: SHEAR AND PSEUDO-PERSPECTIVE , 1991 .

[62]  David G. Kirkpatrick,et al.  Optimal Search in Planar Subdivisions , 1983, SIAM J. Comput..

[63]  Ron Goldman,et al.  Illicit expressions in vector algebra , 1985, TOGS.

[64]  Bernd Gärtner,et al.  Exact Primitives for Smallest Enclosing Ellipses , 1998, Inf. Process. Lett..

[65]  Scott D. Roth,et al.  Ray casting for modeling solids , 1982, Comput. Graph. Image Process..

[66]  Bruce F. Naylor SCULPT: an interactive solid modeling tool , 1990 .

[67]  Ron Goldman,et al.  Using tangent balls to find plane sections of natural quadrics , 1992, IEEE Computer Graphics and Applications.

[68]  D A Pierre,et al.  Optimization Theory with Applications , 1986 .

[69]  Tomas Akenine-Möller,et al.  Real-time rendering , 1997 .

[70]  S. Petitjean,et al.  Towards the Robust Intersection of Implicit Quadrics , 2002 .

[71]  L. Råde,et al.  Mathematics handbook for science and engineering , 1995 .

[72]  Barry Joe,et al.  Delaunay versus max‐min solid angle triangulations for three‐dimensional mesh generation , 1991 .

[73]  John Hershberger,et al.  Erased arrangements of lines and convex decompositions of polyhedra , 1998, Computational geometry.

[74]  William H. Press,et al.  Numerical Recipes in FORTRAN - The Art of Scientific Computing, 2nd Edition , 1987 .

[75]  Alain Fournier,et al.  Triangulating Simple Polygons and Equivalent Problems , 1984, TOGS.

[76]  Adrian Bowyer,et al.  A Programmer's Geometry , 1983 .

[77]  A. Bykat,et al.  Convex Hull of a Finite Set of Points in Two Dimensions , 1978, Inf. Process. Lett..

[78]  Elaine Cohen,et al.  Practical Ray Tracing of Trimmed NURBS Surfaces , 2000, J. Graphics, GPU, & Game Tools.

[79]  D. C. Kay Schaum's outline of theory and problems of tensor calculus , 1988 .

[80]  Adrian Bowyer,et al.  Computing Dirichlet Tessellations , 1981, Comput. J..

[81]  Ron Goldman,et al.  Geometric Algorithms for Detecting and Calculating All Conic Sections in the Intersection of Any 2 Natural Quadric Surfaces , 1995, CVGIP Graph. Model. Image Process..

[82]  Gerald Farin,et al.  Curves and surfaces for computer aided geometric design , 1990 .

[83]  Tom Lyche,et al.  Discrete B-splines and subdivision techniques in computer-aided geometric design and computer graphics , 1980 .

[84]  D. F. Watson Computing the n-Dimensional Delaunay Tesselation with Application to Voronoi Polytopes , 1981, Comput. J..

[85]  Gino van den Bergen Efficient Collision Detection of Complex Deformable Models using AABB Trees , 1997, J. Graphics, GPU, & Game Tools.

[86]  Les A. Piegl,et al.  The NURBS Book , 1995, Monographs in Visual Communication.

[87]  T. DeRose,et al.  A coordinate-free approach to geometric programming , 1989 .

[88]  R. Williams,et al.  We Abnormal Normals , 1967 .

[89]  James R. Miller Vector Geometry for Computer Graphics , 1999, IEEE Computer Graphics and Applications.

[90]  Tsit Yuen Lam,et al.  The algebraic theory of quadratic forms , 1973 .

[91]  Tomoyuki Nishita,et al.  Geometric hermite approximation of surface patch intersection curves , 1991, Comput. Aided Geom. Des..

[92]  James T. Kajiya,et al.  Ray tracing parametric patches , 1982, SIGGRAPH.

[93]  Gershon Elber,et al.  Geometric modeling with splines - an introduction , 2001 .

[94]  Dinesh Manocha,et al.  An efficient surface intersection algorithm based on lower-dimensional formulation , 1997, TOGS.

[95]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[96]  Kenneth L. Clarkson,et al.  A fast las vegas algorithm for triangulating a simple polygon , 1989, Discret. Comput. Geom..

[97]  Gino van den Bergen A Fast and Robust GJK Implementation for Collision Detection of Convex Objects , 1999, J. Graphics, GPU, & Game Tools.

[98]  Ramon F. Sarraga,et al.  Algebraic methods for intersections of quadric surfaces in GMSOLID , 1983, Comput. Vis. Graph. Image Process..

[99]  Bernard Chazelle Triangulating a simple polygon in linear time , 1991, Discret. Comput. Geom..

[100]  Dinesh Manocha,et al.  OBBTree: a hierarchical structure for rapid interference detection , 1996, SIGGRAPH.

[101]  Tomas Möller,et al.  A fast triangle-triangle intersection test , 1997 .

[102]  David A. Fredricks,et al.  Intersection of Parametric Surfaces and a Plane , 1984, IEEE Computer Graphics and Applications.

[103]  Paul S. Heckbert,et al.  Graphics gems IV , 1994 .

[104]  Joshua Z. Levin Mathematical models for determining the intersections of quadric surfaces , 1979 .

[105]  Stephen Cameron,et al.  Enhancing GJK: computing minimum and penetration distances between convex polyhedra , 1997, Proceedings of International Conference on Robotics and Automation.

[106]  Eric Haines FAST RAY – CONVEX POLYHEDRON INTERSECTION , 1991 .

[107]  Dieter Lasser,et al.  Intersection of parametric surfaces in the Bernstein—Be´zier representation , 1986 .

[108]  Bruce F. Naylor,et al.  Set operations on polyhedra using binary space partitioning trees , 1987, SIGGRAPH.

[109]  David F. Rogers,et al.  Mathematical elements for computer graphics , 1976 .

[110]  Bruce F. Naylor,et al.  Interactive solid geometry via partitioning trees , 1992 .

[111]  Alain Fournier,et al.  Chebyshev Polynomials for Boxing and Intersections of Parametric Curves and Surfaces , 1994, Comput. Graph. Forum.

[112]  H. Anton Calculus with analytic geometry , 1992 .

[113]  James T. Kajiya,et al.  Ray tracing complex scenes , 1986, SIGGRAPH.

[114]  Alkiviadis G. Akritas,et al.  Polynomial real root isolation using Descarte's rule of signs , 1976, SYMSAC '76.

[115]  David B. Kirk,et al.  Graphics Gems III , 1992 .

[116]  Daniel L. Toth,et al.  On ray tracing parametric surfaces , 1985, SIGGRAPH.

[117]  Raimund Seidel,et al.  Voronoi diagrams and arrangements , 1986, Discret. Comput. Geom..

[118]  James Arvo A simple method for box-sphere intersection testing , 1990 .

[119]  Kurt Mehlhorn,et al.  Fast Triangulation of Simple Polygons , 1983, FCT.

[120]  Joshua Zev Levin Quisp: a computer processor for the design and display of quadric-surface bodies , 1980 .

[121]  Les A. Piegl,et al.  Geometric method of intersecting natural quadrics represented in trimmed surface form , 1989 .

[122]  Robert J. Schalkoff,et al.  Active stereo vision and direct surface parameter estimation: curve-to-curve image plane mappings , 1996 .

[123]  Tomoyuki Nishita,et al.  Ray tracing trimmed rational surface patches , 1990, SIGGRAPH.

[124]  Richard H. Bartels,et al.  Ray Tracing Free-Form B-Spline Surfaces , 1986, IEEE Computer Graphics and Applications.

[125]  Donald P. Greenberg,et al.  A visible polygon reconstruction algorithm , 1981, SIGGRAPH '81.

[126]  Henry Fuchs,et al.  On visible surface generation by a priori tree structures , 1980, SIGGRAPH '80.