Extending the graphic pipeline with new GPU-accelerated primitives

Graphics hardware is optimized for rasterizing and solving the visibility of points, lines and polygons. In this paper, we propose a GPU implementation of new graphics primitives (e.g. spheres, cylinders, ellipsoids), which are compatible with the standard pipeline. Our technique consists of two steps, both executed on the GPU: (1) candidate pixels are pre-selected by rasterizing a standard primitive whose projection encloses the projection of our primitive; (2) for each candidate pixel, a fragment program computes the intersection and lighting, in a ray-tracing way, based on an analytic representation of our primitives. In addition, it replaces the Z-buffer value of the fragment according to the equation of our primitives. Our primitives are highly efficient. They are perfectly smooth under any arbitrary zoom. They consume much lower bandwidth than tesselated primitives (e.g. drawing a sphere only requires to send a GL POINT), and they have correct visibility/intersections with other primitives (including the standard ones).

[1]  Greg Humphreys,et al.  A multigrid solver for boundary value problems using programmable graphics hardware , 2003, HWWS '03.

[2]  Robert L. Cook,et al.  An Introduction to Ray Tracing , 1989 .

[3]  Eitan Grinspun,et al.  Sparse matrix solvers on the GPU: conjugate gradients and multigrid , 2003, SIGGRAPH Courses.

[4]  Philipp Slusallek,et al.  Realtime Ray Tracing and its use for Interactive Global Illumination , 2003, Eurographics.

[5]  Pat Hanrahan,et al.  Photon mapping on programmable graphics hardware , 2003, HWWS '03.

[6]  John C. Hart,et al.  The ray engine , 2002, HWWS '02.

[7]  Martin Kraus,et al.  Hardware-based ray casting for tetrahedral meshes , 2003, IEEE Visualization, 2003. VIS 2003..

[8]  Anselmo Lastra,et al.  Radiosity on graphics hardware , 2004, Graphics Interface.

[9]  Rüdiger Westermann,et al.  Linear algebra operators for GPU implementation of numerical algorithms , 2003, SIGGRAPH Courses.

[10]  Suresh Venkatasubramanian The Graphics Card as a Streaming Computer , 2003, ArXiv.

[11]  Suresh Venkatasubramanian The Graphics Card as a Stream Computer , 2003 .

[12]  Kenneth Moreland,et al.  The FFT on a GPU , 2003, HWWS '03.

[13]  Pat Hanrahan A survey of ray-surface intersection algorithms , 1989 .

[14]  John C. Hart,et al.  GPU algorithms for radiosity and subsurface scattering , 2003, HWWS '03.

[15]  Pat Hanrahan,et al.  Ray tracing on programmable graphics hardware , 2002, SIGGRAPH Courses.

[16]  William R. Mark,et al.  Cg: a system for programming graphics hardware in a C-like language , 2003, ACM Trans. Graph..

[17]  Rüdiger Westermann,et al.  Acceleration techniques for GPU-based volume rendering , 2003, IEEE Visualization, 2003. VIS 2003..