“Accelerating vector graphics rendering using the graphics hardware pipeline” by Batra, Kilgard, Kumar and Lorach

  • ©Vineet Batra, Mark J. Kilgard, Harish Kumar, and Tristan Lorach




    Accelerating vector graphics rendering using the graphics hardware pipeline



    We describe our successful initiative to accelerate Adobe Illustrator with the graphics hardware pipeline of modern GPUs. Relying on OpenGL 4.4 plus recent OpenGL extensions for advanced blend modes and first-class GPU-accelerated path rendering, we accelerate the Adobe Graphics Model (AGM) layer responsible for rendering sophisticated Illustrator scenes. Illustrator documents render in either an RGB or CMYK color mode. While GPUs are designed and optimized for RGB rendering, we orchestrate OpenGL rendering of vector content in the proper CMYK color space and accommodate the 5+ color components required. We support both non-isolated and isolated transparency groups, knockout, patterns, and arbitrary path clipping. We harness GPU tessellation to shade paths smoothly with gradient meshes. We do all this and render complex Illustrator scenes 2 to 6x faster than CPU rendering at Full HD resolutions; and 5 to 16x faster at Ultra HD resolutions.


    1. 61 Solutions Inc., 2013. Mischief | Sketching & Drawing & Painting Software. http://madewithmischief.com/.Google Scholar
    2. Adobe Systems. 1985. Postscript Language Reference Manual, 1st ed. Addison-Wesley Longman Publishing Co., Inc. Google ScholarDigital Library
    3. Adobe Systems, 2000. Transparency in PDF, Technical Note #5407, May.Google Scholar
    4. Adobe Systems. 2008. Document management–Portable document format–Part 1: PDF 1.7. Also published as ISO 32000.Google Scholar
    5. Andronikos, N., 2013. What’s so cool about diffusion curves.Google Scholar
    6. Bolz, J., 2009. ARB_texture_multisample extension.Google Scholar
    7. Bolz, J., 2014. NV_framebuffer_mixed samples extension.Google Scholar
    8. Bouton, G. D. 2012. CorelDRAW X6 The Official Guide. McGraw-Hill Osborne Media.Google Scholar
    9. Brown, P., 2013. NV_blend_equation_advanced extension.Google Scholar
    10. Brown, P., 2014. KHR_blend_equation_advanced extension.Google Scholar
    11. Coons, S. A. 1967. Surfaces for Computer-aided Design of Space Forms. Tech. Rep. MIT/LCS/TR-41, MIT, May. Google Scholar
    12. Foley, J. D., van Dam, A., Feiner, S. K., and Hughes, J. F. 1990. Computer Graphics: Principles and Practice (2nd Ed.). Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA. Google ScholarDigital Library
    13. Frisken, S. F., and Perry, R. N. 2006. Designing with distance fields. In ACM SIGGRAPH 2006 Courses, ACM, New York, NY, USA, SIGGRAPH ’06, 60–66. Google ScholarDigital Library
    14. Ganacim, F., Lima, R. S., de Figueiredo, L. H., and Nehab, D. 2014. Massively-parallel vector graphics. ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH Asia 2014) 36, 6, 229. Google ScholarDigital Library
    15. Gold, M., and Sellers, G., 2012. ARB_copy_image extension.Google Scholar
    16. Ilbery, P., Kendall, L., Concolato, C., and McCosker, M. 2013. Biharmonic diffusion curve images from boundary elements. ACM Trans. Graph. 32, 6 (Nov.), 219:1–219:12. Google ScholarDigital Library
    17. Khronos Group. 2014. The OpenGL Graphics System: A Specification, Version 4.4 (Compatibility Profile) ed.Google Scholar
    18. Kilgard, M. J., and Bolz, J. 2012. GPU-accelerated path rendering. ACM Trans. Graph. 31, 6 (Nov.), 172:1–172:10. Google ScholarDigital Library
    19. Kilgard, M., 2012. NV_path_ rendering extension.Google Scholar
    20. Kirsanov, D. 2009. The Book of Inkscape: The Definitive Guide to the Free Graphics Editor. No Starch Press. Google ScholarDigital Library
    21. Leben, I. 2010. Random Access Rendering of Animated Vector Graphics Using GPU. Master’s thesis, RMIT University, Melbourne, Australia.Google Scholar
    22. Maharik, R., Bessmeltsev, M., Sheffer, A., Shamir, A., and Carr, N. 2011. Digital micrography. ACM Trans. Graph. 30, 4 (July), 100:1–100:12. Google ScholarDigital Library
    23. 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. Google ScholarDigital Library
    24. Orzan, A., Bousseau, A., Barla, P., Winnemöller, H., Thollot, J., and Salesin, D. 2013. Diffusion curves: A vector representation for smooth-shaded images. Commun. ACM 56, 7 (July), 101–108. Google ScholarDigital Library
    25. Randrianarivony, M., and Brunnett, G., 2004. Necessary and sufficient conditions for the regularity of a planar coons map.Google Scholar
    26. Schäfer, H., Niessner, M., Keinert, B., Stamminger, M., and Loop, C. 2014. State of the art report on real-time rendering with hardware tessellation.Google Scholar
    27. Smith, A. R. 1995. Image Compositing Fundamentals. Tech. Rep. Technical Memo 4, Microsoft, Aug.Google Scholar
    28. Sun, J., Liang, L., Wen, F., and Shum, H.-Y. 2007. Image vectorization using optimized gradient meshes. ACM Trans. Graph. 26, 3 (July). Google ScholarDigital Library
    29. Sun, X., Xie, G., Dong, Y., Lin, S., Xu, W., Wang, W., Tong, X., and Guo, B. 2012. Diffusion curve textures for resolution independent texture mapping. ACM Trans. Graph. 31, 4 (July), 74:1–74:9. Google ScholarDigital Library
    30. Svg Working Group, 2011. Scalable Vector Graphics (SVG) 1.1 (2nd edition).Google Scholar
    31. Svg Working Group, 2011. SVG compositing specification. W3C working draft March 15, 2011.Google Scholar
    32. Turner, D., 2007. How freetype’s rasterizer work {sic}, Feb. http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/raster.tx.Google Scholar
    33. Valentine, S. 2012. The Hidden Power of Blend Modes in Adobe Photoshop. Adobe Press. Google ScholarDigital Library
    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. Google ScholarDigital Library
    35. Wittenbrink, C., Kilgariff, E., and Prabhu, A. 2011. Fermi GF100 GPU architecture. Micro, IEEE 31, 2, 50–59. Google ScholarDigital Library

ACM Digital Library Publication:

Overview Page: