teaser

Analytic Rasterization of Curves with Polynomial Filters

We describe a method for improving the quality of vector graphic images by analytically rasterizing images with high-order filters. We can rasterize shapes with any combination of polynomial curves and piecewise polynomial filters. In addition, we can rasterize rational quadratic boundaries, which allows exact evaluation of circles, ellipses, and hyperbolas.

download pdf download preprint

BibTeX

@article{Manson:2013:ARC,
  author  = {Josiah Manson and
             Scott Schaefer},
  title   = {Analytic Rasterization of Curves with Polynomial Filters},
  journal = {Computer Graphics Forum (Proceedings of Eurographics)},
  year    = {2013},
  volume  = {32},
  number  = {2},
  pages   = {499--507},
}

Abstract

We present a method of analytically rasterizing shapes that have curved boundaries and linear color gradients using piecewise polynomial prefilters. By transforming the convolution of filters with the image from an integral over area into a boundary integral, we find closed-form expressions for rasterizing shapes. We show that a polynomial expression can be used to rasterize any combination of polynomial curves and filters. Our rasterizer also handles rational quadratic boundaries, which allows us to evaluate circles and ellipses. We apply our technique to rasterizing vector graphics and show that our derivation gives an efficient implementation as a scanline rasterizer.

Supplemental

download pptx eg2013-Talk.pptx

This is the set of slides that I used in my presentation of the paper at Eurographics 2013.

download html comparison.html

Comparison of results from different filters applied to different images using our method.

download zip rasterizer1.zip

The code used to generate timings. This code is fast, but not very easy to use and generates only grayscale images. Both a serial and parallel implementation are provided.

download zip rasterizer2.zip

This is a rewrite of the code that is more general and "easier" to use by using templates rather than preprocessor macros. This program will draw color gradient images and can run either serially or in parallel depending on the function called. The code is also a bit slower than the older implementation.

Update 12/3/2013: Fixed a bug with degenerate cubics that are actually quadratics causing division by zero.

download zip svg_draw.zip

A hacked-together SVG drawing program that composits images drawn by my other rasterizers. This program will also extract vector data from SVG files and write it into other formats, including source code for my rasterizer.

License

The images, executables, and code supplied are from the web page http://josiahmanson.com. These materials are free to use for non-commercial purposes. Any works that use materials from this web page should acknowledge Josiah Manson and the paper Analytic Rasterization of Curves with Polynomial Filters. For commercial use, please contact Josiah Manson (josiahmanson@gmail.com).