Texture-based Rendering of Vector-based Shapes

More Info
expand_more

Abstract

Vector-based graphics are not directly compatible with the raster-based structure of dedicated graphics hardware. They suffer from a locality problem where, in order to check if a specific display pixel lies inside or outside the shape, the entire shape needs to be taken into account. This negates the advantage that the graphics pipeline’s parallel rendering structure offers. Current solutions rasterize vector graphics into a discrete raster-based texture in an extra render pass, every time the required texture resolution changes.
This work presents an approach to store vector-based shapes into discrete raster-based textures, optimized for parallel rendering. This is done by encoding the shape as piece-wise cubic Bézier curves, structured in a quad-tree. Additional data is added to remove aliasing effects in case of minification. These textures are then rendered by a custom fragment shader.
This work discusses the implementation of both the serialization and deserialization steps, as well as rendering regular vector shapes with a comparable quality.