Monday, October 22, 2012

GPU-accelerated Path Rendering

Last May I wrote about a major breakthrough in path rendering on the GPU by Mark Kilgard. I am happy to report that Mark—together with Jeff Bolz—has been hard at work on the rest necessary for a complete raster image processor (RIP). They have invented a new "Stencil, then Cover" (StC) algorithm in which the stencil step is explicitly decoupled from the subsequent cover step.

In the stencil step, a path's filled or stroked coverage is determined. In the cover step, the conservative geometry intended to test and reset the coverage determinations of the stencil step is rasterized, while shading color samples within the path. They have not only achieved fantastic acceleration, but also full completeness and correctness. Usually, the performance killer is the bottleneck between CPU and GPU, like when transparency is computed in the CPU. Kilgard and Bolz solve their revalidation bottleneck by using a configurable front-end processor in the GPU to transition quickly between the stencil step and the cover step.

For more information, see their paper at SIGGRAPH Asia, a pre-print of which is available at this link: http://developer.nvidia.com/game/gpu-accelerated-path-rendering.