Random-access rendering of general vector graphics

We introduce a novel representation for random-access rendering of antialiased vector graphics on the GPU, along with efficient encoding and rendering algorithms. The representation supports a broad class of vector primitives, including multiple layers of semitransparent filled and stroked shapes, with quadratic outlines and color gradients. Our approach is to create a coarse lattice in which each cell contains a variable-length encoding of the graphics primitives it overlaps. These cell-specialized encodings are interpreted at runtime within a pixel shader. Advantages include localized memory access and the ability to map vector graphics onto arbitrary surfaces, or under arbitrary deformations. Most importantly, we perform both prefiltering and supersampling within a single pixel shader invocation, achieving inter-primitive antialiasing at no added memory bandwidth cost. We present an efficient encoding algorithm, and demonstrate high-quality real-time rendering of complex, real-world examples.

[1]  Jörn Loviscach,et al.  Efficient magnification of bi-level textures , 2005, SIGGRAPH '05.

[2]  V. Leitáo,et al.  Computer Graphics: Principles and Practice , 1995 .

[3]  Paolo Cignoni,et al.  Pinchmaps: textures with customizable discontinuities , 2005, Comput. Graph. Forum.

[4]  Jack Tumblin,et al.  Bixels: Picture Samples with Sharp Embedded Boundaries , 2004, Rendering Techniques.

[5]  John D. Owens,et al.  Glift: Generic, efficient, random-access GPU data structures , 2006, TOGS.

[6]  James F. Blinn,et al.  How to Solve a Cubic Equation, Part 2: The 11 Case , 2006, IEEE Computer Graphics and Applications.

[7]  Pat Hanrahan,et al.  Shadow silhouette maps , 2003, ACM Trans. Graph..

[8]  Sylvain Lefebvre,et al.  Perfect spatial hashing , 2006, SIGGRAPH 2006.

[9]  Ron Goldman,et al.  Vector elimination: A technique for the implicitization, inversion, and intersection of planar parametric rational polynomial curves , 1984, Comput. Aided Geom. Des..

[10]  Nicolas Ray,et al.  Vector Texture Maps on the GPU , 2006 .

[11]  Arun N. Netravali,et al.  Reconstruction filters in computer-graphics , 1988, SIGGRAPH.

[12]  Michael Kelley,et al.  Hardware accelerated rendering of antialiasing using a modified a-buffer algorithm , 1997, SIGGRAPH.

[13]  Robert F. Sproull,et al.  Filtering edges for gray-scale displays , 1981, SIGGRAPH '81.

[14]  Günther Greiner,et al.  Efficient clipping of arbitrary polygons , 1998, TOGS.

[15]  Craig S. Kaplan,et al.  Precise vector textures for real-time 3D rendering , 2008, I3D '08.

[16]  James F. Blinn,et al.  A Ghost in a Snowstorm , 1998, IEEE Computer Graphics and Applications.

[17]  Ronald N. Perry,et al.  Adaptively sampled distance fields: a general representation of shape for computer graphics , 2000, SIGGRAPH.

[18]  Denis Zorin,et al.  Real-time rendering of textures with feature curves , 2008, TOGS.

[19]  Paul S. Heckbert,et al.  Fundamentals of Texture Mapping and Image Warping , 1989 .

[20]  Timo Aila,et al.  A Weighted Error Metric and Optimization Method for Antialiasing Patterns , 2006, Comput. Graph. Forum.

[21]  John Edward Warnock,et al.  A hidden surface algorithm for computer generated halftone pictures , 1969 .

[22]  Craig S. Kaplan,et al.  Real-time texture-mapped vector glyphs , 2006, I3D '06.

[23]  Diego Nehab,et al.  Texel programs for random-access antialiased vector graphics , 2007 .

[24]  Charles T. Loop,et al.  Resolution independent curve rendering using programmable graphics hardware , 2005, ACM Trans. Graph..

[25]  Loren C. Carpenter,et al.  The A -buffer, an antialiased hidden surface method , 1984, SIGGRAPH.

[26]  Bruce Walter,et al.  Feature-Based Textures , 2004, Rendering Techniques.

[27]  Ivan E. Sutherland,et al.  Reentrant polygon clipping , 1974, Commun. ACM.

[28]  Pradeep Sen,et al.  Silhouette maps for improved texture magnification , 2004, Graphics Hardware.