Scientific Visualization and Computer Graphics

Scientific Visualization and Computer Graphics > BI > FSE > RUG * Print * Search

Vector Graphics

headed by Dr. Jiří Kosinka

In contrast to raster graphics where digital images are represented as arrays of coloured pixels, vector graphics represent digital images in a scalable and resolution independent manner, and are based on so-called primitives. These primitives range from very basic ones such as lines, circles, and rectangles, to more complicated ones like diffusion curves capable of achieving photo-realistic results. We focus on the gradient mesh primitive, available e.g. in Adobe Illustrator and Inkscape, and its extensions, including (gradient) meshes of arbitrary manifold topology, sharp transitions, and local refinement.

Gradient meshes

The gradient mesh primitive is based on a regular rectangular array of bi-cubic patches connected in a smooth way. The user can specify the positions and colours of the vertices of the mesh, as well as so-called colour gradient handles that guide the propagation of colour away from the vertices. While this primitive can be used to produce realistic (and scalable) images, it suffers from several limitations. One such limitation is the rigid topological structure and another is the lack of support for local refinement.

Topological freedom

In order to allow the user to use meshes of arbitrary (manifold) topology, we use subdivision surfaces to create the resulting image. Subdivision surfaces natively support generic mesh structures and still produce smooth results. However, to ensure colour interpolation, the standard subdivision scheme used to model 3D geometry, Catmull-Clak subdivision, had to be adapted to ensure vertex position and colour interpolation.

Local refinement

To address the issue of local refinement, which is not possible in the available implementations of gradient meshes in Adobe Illustrator, CorelDRAW and Inkscape, we investigated an exact patch splitting scheme. In this scheme, any patch can be split horizontally or vertically into smaller patches while keeping the overall image unmodified. Care has to be taken as to avoid introducing gaps when dealing with the emerging T-junctions in the (locally refined) mesh.


Yet another approach to local refinement is to exploit the native multi-resolution nature of subdivision surfaces. This offers the user the ability to edit the mesh at higher levels of subdivision and thus the opportunity to add detail where desired. To ensure that the added detail follows the overall structure of the mesh, we employ the concept of control vectors, which we encode in local frames. This way, any higher-level edits naturally follow those of the coarse(r) levels.