Painting with Polygons: A Procedural Watercolor Engine

Existing natural media painting simulations have produced high-quality results, but have required powerful compute hardware and have been limited to screen resolutions. Digital artists would like to be able to use watercolor-like painting tools, but at print resolutions and on lower end hardware such as laptops or even slates. We present a procedural algorithm for generating watercolor-like dynamic paint behaviors in a lightweight manner. Our goal is not to exactly duplicate watercolor painting, but to create a range of dynamic behaviors that allow users to achieve a similar style of process and result, while at the same time having a unique character of its own. Our stroke representation is vector based, allowing for rendering at arbitrary resolutions, and our procedural pigment advection algorithm is fast enough to support painting on slate devices. We demonstrate our technique in a commercially available slate application used by professional artists. Finally, we present a detailed analysis of the different vector-rendering technologies available.

[1]  Kai Hormann,et al.  Mean value coordinates for arbitrary planar polygons , 2006, TOGS.

[2]  Reiji Tsuruno,et al.  Vector fluid: a vector graphics depiction of surface flow , 2010, NPAR.

[3]  Ken Perlin,et al.  Painterly rendering for video and interaction , 2000, NPAR '00.

[4]  Frank Van Reeth,et al.  Real-time simulation of watery paint , 2005, Comput. Animat. Virtual Worlds.

[5]  Aaron Hertzmann,et al.  A survey of stroke-based rendering , 2003, IEEE Computer Graphics and Applications.

[6]  William V. Baxter,et al.  Detail-preserving paint modeling for 3D brushes , 2010, NPAR.

[7]  Adam Finkelstein,et al.  Interactive painterly stylization of images, videos and 3D animations , 2010, I3D '10.

[8]  Chiew-Lan Tai,et al.  MoXi: real-time ink dispersion in absorbent paper , 2005, SIGGRAPH '05.

[9]  Jonathan Richard Shewchuk,et al.  Triangle: Engineering a 2D Quality Mesh Generator and Delaunay Triangulator , 1996, WACG.

[10]  Tom Davis,et al.  Opengl programming guide: the official guide to learning opengl , 1993 .

[11]  J. Warren,et al.  Mean value coordinates for closed triangular meshes , 2005, SIGGRAPH 2005.

[12]  Adrien Bousseau,et al.  Interactive watercolor rendering with temporal coherence and abstraction , 2006, NPAR.

[13]  Raimund Seidel,et al.  A Simple and Fast Incremental Randomized Algorithm for Computing Trapezoidal Decompositions and for Triangulating Polygons , 1991, Comput. Geom..

[14]  Stephen DiVerdi,et al.  A lightweight, procedural, vector watercolor painting engine , 2012, I3D '12.

[15]  David Salesin,et al.  Computer-generated watercolor , 1997, SIGGRAPH.

[16]  Bruno Lévy,et al.  Ardeco: automatic region detection and conversion , 2006, EGSR '06.

[17]  William V. Baxter,et al.  IMPaSTo: a realistic, interactive model for paint , 2004, NPAR '04.

[18]  Pascal Barla,et al.  Diffusion curves: a vector representation for smooth-shaded images , 2008, SIGGRAPH 2008.

[19]  Raimund Seidel Reprint of: A simple and fast incremental randomized algorithm for computing trapezoidal decompositions and for triangulating polygons , 2010, Comput. Geom..