dali 0.2.0

A rendering library for fast digital painting
Documentation

Dali - a rendering library for fast digital painting

Dali is a rendering library that creates high quality digital paintings.

Dali renders a painting by combining texture and color from many source images.

Getting Started

You can run the example with: cargo run --release --example example

How it works...

Canvas

The canvas is a target image, which consists of many layers.
Each layer binds a colormap, which is then rendered against with a stipple texture.

Colormaps

Colormaps are target images that each stipple uses for color sampling.

The colormap is what your painting will look like.

Stipples

Stipples produce texture. Stipples combine a greyscale texture with the colormap to render the output image.

Stipple textures can be:

  • translated,
  • scaled
  • rotated about their center
  • deformed by scaling the colormap about the stipple center

Stipples use the colormap to sample color. This sampling occurs in canvas coordinates, which is a different reference frame than the stipple texture! Critically, colormap sampling can be scaled with reference to the center of the stipple in canvas coordinates. This allows a continuous deformation of the colormap image - from 1.0 as a straight copy to 0.0 as a single color.

Intricate textures are generated from many interleaved stipples, each rendering a scaled down version of the colormap.

Intricate colors can be generated by interleaving layers.

Rendering

Dali uses luminance-rs as a graphics backend.

The vertex/fragment shaders are stipple-vs.glsl and stipple-fs.glsl

License

Dali is licensed under Apache 2.0.

Status

Dali is in active development, but is not yet not yet 1.0. In particular, the fragment shader is still in progress,