“GPU-accelerated path rendering”
Conference:
Type(s):
Title:
- GPU-accelerated path rendering
Session/Category Title: Points and Vectors
Presenter(s)/Author(s):
Abstract:
For thirty years, resolution-independent 2D standards (e.g. PostScript, SVG) have depended on CPU-based algorithms for the filling and stroking of paths. Advances in graphics hardware have largely ignored accelerating resolution-independent 2D graphics rendered from paths.We introduce a two-step “Stencil, then Cover” (StC) programming interface. Our GPU-based approach builds upon existing techniques for curve rendering using the stencil buffer, but we explicitly decouple in our programming interface the stencil step to determine a path’s filled or stroked coverage from the subsequent cover step to rasterize conservative geometry intended to test and reset the coverage determinations of the first step while shading color samples within the path. Our goals are completeness, correctness, quality, and performance—yet we go further to unify path rendering with OpenGL’s established 3D and shading pipeline. We have built and productized our approach to accelerate path rendering as an OpenGL extension.
References:
1. Adobe Systems. 1985. PostScript Language Reference Manual, 1st ed. Addison-Wesley Longman Publishing Co., Inc.
2. Adobe Systems. 1992. Adobe Type 1 Font Format, 2nd ed. Addison-Wesley Longman Publishing Co., Inc.
3. Adobe Systems. 1993. Display PostScript System–Introduction: Perspective for Software Developers.
4. Adobe Systems. 2008. Document management–Portable document format–Part 1: PDF 1.7. Also published as ISO 3200.
5. Adobe Systems. 2008. SWF File Format Specification, version 10.
6. Akeley, K., and Foran, J., 1995. Apparatus and method for controlling storage of display information in a computer system. US Patent 5,394,170.
7. Bolz, J., 2009. NV texture barrier. http://www.opengl.org/registry/specs/NV/texture_barrier.txt.
8. Cardano, G. 1545. Artis magnae sive de regulis algebraicis, liber unus.
9. Fabris, A., Silva, L., and Forrest, A. 1997. An efficient filling algorithm for non-simple closed curves using the point containment paradigm. In Proceedings of X Brazilian Symposium on Computer Graphics and Image Processing, 2–9.
10. Farouki, R., and Neff, C. 1990. Algebraic properties of plane offset curves. Computer Aided Geometric Design 7, 101–127.
11. FreeScale, Multimedia Applications Division. 2010. i.MX35 accelerated 2D graphics: Optimizing 2D graphics with OpenVG and i.MX35, application note, doc. # an3975.
12. Gosling, J., Rosenthal, D. S. H., and Arden, M. J. 1989. The NeWS book: an introduction to the network/extensible window system. Springer-Verlag.
13. Huang, R., and Chae, S.-I. 2006. Implementation of an OpenVG rasterizer with configurable anti-aliasing and multi-window scissoring. In Proceedings of the 6th IEEE International Conference on Computer and Information Technology, IEEE Computer Society, CIT ’06, 179.
14. Kerr, K. 2009. Introducing Direct2D. MSDN Magazine (June).
15. Khronos Group, 2008. OpenVG specification version 1.1.
16. Kilgard, M., 2012. NV_path_rendering. http://www.opengl.org/registry/specs/NV/path_rendering.txt.
17. Kim, Y., and Ahn, Y. 2009. Explicit error bound for quadratic spline approximation of cubic spline. Journal of the Korean Society for Industrial and Applied Mathematics 13, 4, 257–265.
18. Kim, D., Cha, K., and Chae, S.-I. 2008. A high-performance OpenVG accelerator with dual-scanline filling rendering. Consumer Electronics, IEEE Transactions on 54, 3 (August), 1303–1311.
19. Kokojima, Y., Sugita, K., Saito, T., and Takemoto, T. 2006. Resolution independent rendering of deformable vector objects using graphics hardware. In ACM SIGGRAPH 2006 Sketches, SIGGRAPH ’06.
20. Lane, J. M., Magedson, R., and Rarick, M. 1983. An algorithm for filling regions on graphics display devices. ACM Trans. Graph. 2, 3 (July), 192–196.
21. Loop, C., and Blinn, J. 2005. Resolution independent curve rendering using programmable graphics hardware. In ACM SIGGRAPH 2005 Papers, SIGGRAPH ’05, 1000–1009.
22. Nehab, D., and Hoppe, H. 2008. Random-access rendering of general vector graphics. In ACM SIGGRAPH Asia 2008 papers, SIGGRAPH Asia’08, 135:1–135:10.
23. Neider, J., Davis, T., and Woo, M. 1993. OpenGL Programming Guide, 1st edition. See “Drawing Filled, Concave Polygons Using the Stencil Buffer”, 398–399.
24. Nilsson, P., and Reveman, D. 2004. Glitz: hardware accelerated image compositing using OpenGL. In Proceedings of the FREENIX Track: 2004 USENIX Annual Technical Conference, 29–40.
25. Packard, K., and Worth, C. 2003. A realistic 2D drawing system. A rejected SIGGRAPH 2003 paper submission.
26. Packard, K. 2001. Design and implementation of the X Rendering Extension. In Proceedings of the FREENIX Track: 2001 USENIX Annual Technical Conference, USENIX Association, 213–224.
27. Porter, T., and Duff, T. 1984. Compositing digital images. In Proceedings of the 11th annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’84, 253–259.
28. Qin, Z. 2009. Vector Graphics for Real-time Rendering. PhD thesis. University of Waterloo.
29. Rueda, A. J., Ruiz de Miras, J., and Feito, F. R. 2008. GPU-based rendering of curved polygons using simplicial coverings. Computer Graphics 32, 5 (Oct.), 581–588.
30. Ruf, E. 2011. An inexpensive bounding representation for offsets of quadratic curves. In Proceedings of the ACM SIGGRAPH Symposium on High Performance Graphics, HPG ’11, 143–150.
31. Salmon, G. 1960. A Treatise on Conic Sections. Chelsea New York (reprint).
32. SVG Working Group, 2011. Scalable Vector Graphics (SVG) 1.1 (2nd edition).
33. SVG Working Group, 2011. SVG compositing specification. W3C working draft March 15, 2011.
34. Warnock, J., and Wyatt, D. K. 1982. A device independent graphics imaging model for use with raster devices. In Proceedings of the 9th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’82, 313–319.


