Path Rasterizer for Openvg
Path Rasterizer for OpenVG Eivind Lyngsnes Liland Master i datateknikk Oppgaven levert: Juni 2007 Hovedveileder: Morten Hartmann, IDI Biveileder(e): Lasse Natvig, ARM Mario Blazevic, ARM Thomas Austad, ARM Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Oppgavetekst OpenVG (Open Vector Graphics) is a new standard API for drawing 2d vector graphics with support for hardware-acceleration and handheld devices. Graphic images are drawn using paths of connected segments. Types of segments include quadratic curves, cubic curves and arcs. The interior as well as the outline (stroke) of each path can be filled using a variety of techniques and patterns. A common way to render interiors and strokes is to approximate them using polygons consisting of a large number of very short line segments. These polygons are then triangulated and finally rendered. The conversion to polygons and the triangulation is normally done on the CPU, since these operations are not easily implementable in a traditional GPU pipeline. The resulting triangles are rendered using the GPU. A large number of long, thin triangles usually result from the conversion and triangulation processes. This is not rendered efficiently on most immediate mode renderers, and is even more problematic on most tile-based renderers. Also, CPU overhead from conversion and triangulation can be a significant bottleneck. The goal of this project will be to find and implement an efficient and robust algorithm for rendering OpenVG paths that minimize or eliminate these performance problems. The algorithm may require minor additions or modifications to existing GPU hardware, or it may be a pure software solution.
[Show full text]