This Article 
 Bibliographic References 
 Add to: 
High-Throughput CORDIC-Based Geometry Operations for 3D Computer Graphics
March 2005 (vol. 54 no. 3)
pp. 347-361
Tom? Lang, IEEE Computer Society
Graphics processors require strong arithmetic support to perform computational kernels over data streams. Because of the current implementation using the basic arithmetic operations, the algorithms are given in algebraic terms. However, since the operations are really of a geometric nature, it seems to us that more flexibility in the implementation is obtained if the description is given in a high-level geometrical form. As a consequence of this line of thought, this paper is an attempt to reconsider some kernels in a graphics processor to obtain implementations that are potentially more scalable than just replicating the modules used in conventional implementations. In this work, we present the formulation of representative 3D computer graphics operations in terms of CORDIC-type primitives. Then, we briefly outline a stream processor based on CORDIC-type modules to efficiently implement these graphic operations. We perform a rough comparison with current implementations and conclude that the CORDIC-based alternative might be attractive.

[1] W.J. Dally, P. Hanrahan, M. Erez, and T.J. Knight, “Merrimac: Supercomputing with Streams,” Proc. Supercomputing Conf., Nov. 2003.
[2] M.D. Ercegovac and T. Lang, Digital Arithmetic. Morgan Kaufmann, 2003.
[3] D.E. Eberly, 3D Game Engine Design. Morgan Kaufmann, 2000.
[4] J. Euh, J. Chittamuru, and W. Burleson, “CORDIC Vector Interpolator for Power-Aware 3D Computer Graphics,” Proc. IEEE Workshop Signal Processing Systems (SIPS '02), 2002.
[5] H. Hahn, D. Timmermann, B.J. Hosticka, and B. Rix, “A Unified and Division-Free CORDIC Argument Reduction Method with Unlimited Convergence Domain Including Inverse Hyperbolic Functions,” IEEE Trans. Computers, vol. 43, no. 11, pp. 1339-1344, Nov. 1994.
[6] W. Heidrich and H.P. Seidel, “Efficient Rendering of Anisotropic Surfaces Using Computer Graphics Hardware,” Proc. Image and Multi-Dimensional Digital Signal Processing Workshop, 1998.
[7] G.J. Hekstra and E.F. Deprettere, “Floating Point CORDIC,” Proc. 11th IEEE Symp. Computer Arithmetic, pp. 130-137, 1993.
[8] S.-F. Hsiao and J.-M. Delosme, “Householder CORDIC Algorithm,” IEEE Trans. Computers, vol. 44, no. 8, pp. 990-1001, Aug. 1995.
[9] N. Ide et al., “2.44-GFLOPS 300-MHz Floating-Point Vector-Processing Unit for High-Performance 3-D Computer Graphics Computing,” IEEE J. Solid-State Circuits, vol. 35, no. 7, pp. 1025-1033, July 2000.
[10] U.J. Kapasi et al., “Programmable Stream Processors,” Computer, vol. 36, no. 8, pp. 54-62, Aug. 2003.
[11] T. Lang and E. Antelo, “High-Throughput 3D Rotations and Normalizations,” Proc. 35th Asilomar Conf. Signals, Systems, and Computers, Nov. 2001.
[12] E. Lindholm et al., “A User-Programmable Vertex Engine,” Proc. ACM SIGGRAPH 2001, pp. 149-158, 2001.
[13] O. Mencer, L. Semeria, M. Morf, and J.-M. Delosme, “Application of Reconfigurable CORDIC Architectures,” J. VLSI Signal Processing, vol. 24, nos. 2-3, pp. 211-221, 2000.
[14] T. Moller and E. Haines, Real-Time Rendering, second ed. A.K. Peters Ltd., 2002.
[15] J.M. Muller, Elementary Functions: Algorithms and Implementations. Birkhauser, 1997.
[16] T. Nakayama et al., “A 6.7-MFLOPS Floating-Point Coprocessor with Vector/Matrix Instructions,” IEEE J. Solid-State Circuits, vol. 24, no. 5, pp. 1324-1330, 1989.
[17] J.A. Piñeiro et al., “Faithful Powering Computation Using Table Look-Up and a Fused Accumulation Tree,” Proc. 15th IEEE Symp. Computer Arithmetic, pp. 40-47, 2001.
[18] P.J. Schneider and D.H. Eberly, Geometric Tools for Computer Graphics. Morgan Kaufmann, 2003.
[19] K. Shoemake, “Animating Rotation with Quaternion Calculus,” ACM SIGGRAPH Course Notes 10: Computer Animation: 3-D Motion, Specification, and Control, 1987.
[20] D. Timmermann, B. Rix, H. Hahn, and B.J. Hosticka, “A CMOS Floating-Point Vector-Arithmetic Unit,” IEEE J. Solid-State Circuits, vol. 29, no. 5, 1994.
[21] H. Yoshimura, T. Nakanishi, and H. Ymauchi, “A 50-MHz CMOS Geometrical Mapping Processor,” IEEE Trans. Circuits and Systems, vol. 36, no. 10, pp. 1360-1363, 1989.

Index Terms:
CORDIC, 3D rotations, vector normalization, geometry transforms, graphics processor.
Tom? Lang, Elisardo Antelo, "High-Throughput CORDIC-Based Geometry Operations for 3D Computer Graphics," IEEE Transactions on Computers, vol. 54, no. 3, pp. 347-361, March 2005, doi:10.1109/TC.2005.53
Usage of this product signifies your acceptance of the Terms of Use.