Rendering cubic curves and surfaces with integer adaptive forward differencing

For most compute environments, adaptive forward differencing is much more efficient when performed using integer arithmetic than when using floating point. Previously low precision integer methods suffered from serious precision problems due to the error accumulation inherent to forward differencing techniques. This paper proposes several different techniques for implementing adaptive forward differencing using integer arithmetic, and provides an error analysis of forward differencing which is useful as a guide for integer AFD implementation. The proposed technique using 32 bit integer values is capable of rendering curves having more than 4K forward steps with an accumulated error of less than one pixel and no overflow problems. A hybrid algorithm employing integer AFD is proposed for rendering antialiased, texture-mapped bicubic surfaces.

[1]  R. Victor Klassen,et al.  Integer forward differencing of cubic polynomials: analysis and algorithms , 1991, TOGS.

[2]  Michael R. Kappel An Ellipse-Drawing Algorithm for Raster Displays , 1985 .

[3]  Richard A. Metzger Computer generated graphic segments in a raster display , 1969, AFIPS '69 (Spring).

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

[5]  Edwin Earl Catmull,et al.  A subdivision algorithm for computer display of curved surfaces. , 1974 .

[6]  Michael L. V. Pitteway Algorithm for drawing ellipses or hyperbolae with a digital plotter , 1967, Comput. J..

[7]  George Merrill Chaikin,et al.  An algorithm for high-speed curve generation , 1974, Comput. Graph. Image Process..

[8]  R. Victor Klassen,et al.  Drawing antialiased cubic spline curves , 1991, TOGS.

[9]  James D. Foley,et al.  Fundamentals of interactive computer graphics , 1982 .

[10]  Jack Bresenham,et al.  Algorithm for computer control of a digital plotter , 1965, IBM Syst. J..

[11]  Robert L. Cook,et al.  The Reyes image rendering architecture , 1987, SIGGRAPH.

[12]  Jerry Van Aken An Efficient Ellipse-Drawing Algorithm , 1984, IEEE Computer Graphics and Applications.

[13]  M. Douglas McIlroy Best approximate circles on integer grids , 1983, TOGS.

[14]  Mark Novak,et al.  Curve-drawing algorithms for Raster displays , 1985, TOGS.

[15]  Jack E. Bresenham,et al.  Run Length Slice Algorithm for Incremental Lines , 1985 .

[16]  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.

[17]  Alyn P. Rockwood,et al.  A Generalized Scanning Technique for Display of Parametrically Defined Surfaces , 1987, IEEE Computer Graphics and Applications.

[18]  Berthold K. P. Horn Circle generators for display devices , 1976 .

[19]  Vaughan R. Pratt,et al.  Adaptive forward differencing for rendering curves and surfaces , 1987, SIGGRAPH.

[20]  KlassenR. Victor Integer forward differencing of cubic polynomials , 1991 .

[21]  Vaughan R. Pratt,et al.  Techniques for conic splines , 1985, SIGGRAPH.

[22]  Michael Shantz,et al.  Rendering trimmed NURBS with adaptive forward differencing , 1988, SIGGRAPH.

[23]  Michael Shantz,et al.  Shading bicubic patches , 1987, SIGGRAPH.