Implementation of division-free perspective-correct rendering optimized for FPGA devices

Well-known algorithms for perspective-correct rendering of planar polygons in 3D graphic accelerators require per-pixel division. On the other hand, division is an expensive operation in the field programmable gate arrays (FPGAs) in the terms of silicon gates and clock cycles. Fortunately, efficient midpoint algorithms can be used to avoid division. This paper presents the implementation of such an algorithm in the renderer that is optimized for FPGA platform. The renderer implements the midpoint algorithm, which is based on separated computation of the integer parts and the fractional parts of the texture coordinates. The integer parts are used for texture fetching, whereas the fractional parts are used for texture filtering. The midpoint algorithm is embedded in a scanline algorithm. The pipeline architecture is used, resulting in a high clock frequency and high texturing fill-rate. The RTL model of the renderer is developed in VHDL, without the use of family-dependent macros. Therefore, the model is suitable for the reuse in various FPGA families.

[1]  Frans J. Peters,et al.  Algorithms for division free perspective correct rendering , 2000, Workshop on Graphics Hardware.

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

[3]  Lee-Sup Kim,et al.  Division-free rasterizer for perspective-correct texture filtering , 2004, 2004 IEEE International Symposium on Circuits and Systems (IEEE Cat. No.04CH37512).

[4]  H. Gouraud Continuous Shading of Curved Surfaces , 1971, IEEE Transactions on Computers.

[5]  Tomas Akenine-Möller,et al.  Real-time rendering, 2nd Edition , 2002 .

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