Abstract
Graphics processing units (GPUs) provide a great deal of processing capability for rendering 3D scenes that can also be applied to rendering 2D scenes. Loop and Blinn introduced a method for utilizing GPUs to render 2D vector art by representing cubic curves implicitly. I present an alternative method that starts with Floater's implicitization of a cubic curve, rather than Loop and Blinn's. With modest additional GPU support, my method has a more compact representation than that of Loop and Blinn. This support would enable a more compact representation of exclusively quadratic curves.
Acknowledgments
Thanks to my colleagues Ramgopal Rajagopalan, Filip Spacek, Jeremy Nicholl, Jordan Saunders, and Mark Michael, and to the anonymous reviewers for providing invaluable feedback and suggestions for this article.
Notes
1In spite of the use of font glyphs, composing them this way is more representative of vector graphics figures than font rendering.
2In my C++ implementation, the klm attributes at the triangle peak are calculated by extrapolating the values calculated at each of the control vertices. This adds overhead to the totals for the cubic case in and penalizes Loop and Blinn slightly in the total execution time. The shader attribute line of explicitly excludes any of this overhead in order to be more fair.
3© Research In Motion Limited (used with permission)
4© Research In Motion Limited (used with permission)
5These real-valued points can be found by evaluating f(t) at particular complex-valued parameters.