A Lightweight, Procedural, Vector Watercolor Painting Engine
Absract
Existing watercolor-like painting software produces high quality, but required powerful compute hardware and limited to screen resolutions. The paper introduces a new algorithm that enables artists to generate water color like paining in a lightweight manner.
Contibutions
- Uses a particle-based model of pigment flow, rather than grid-based.
- the particle representation is vector instead of raster, allowing for rendering at arbitrary resolutions
- the particle update step is a physically-inspired procedural algorithm that is very fast to calculate
- achieve common water-color effects such as edge darkening, non-uniform pigment density, granulation, and backruns.
Strength and Weakness
- Ineractiveness, which is something that previous attempts to create water-color like effects lack or failed to do in a lightweight manner.
- vector represetaion makes rendering at any resoluion possible with high quality anti-aliasing for final output
- However, heavy branching, intricate flow, and complex textures are difficult to represent with pure vector formats
Algorithm
- Adopt a sparse representation for the input paint pigment, and use a random walk algorithm to update its position each time step. (By carefully selecting he model and update equation, we can recreate a variety of interesting behaviors.)
- The representation of paint pigment as a collection of dynamic splat particles made it possible to express dynamic watercolor paint behavior
Ideas for extension
- canvas angle change so that we can generate droplets / rivulets of water-color stroke.
Open Questions
- I would like to see actual implementations of these algorithms