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,