Procedural 3D Paint

An example of procedurally generated painterly textures

 The painterly style has been sought for decades with 3D computer graphics, and this is my stab at the classic problem. The texture of paint in graphics, with swirls and dabbles of color, evoke the splendor found in traditional painting — it feels like art. To recreate painted textures with computer code, I knew I had to start by studying human artisans first. I wanted to focus on replicating a color transition technique painters use between regions of shadow and light, saturating the boundary. This features prominently with translucent surfaces like skin, a nd is a stylization painters can employ with solid surfaces too. While designing this system, I was able to learn from the knowledge of craftsman outside my field to attack the problem at hand.

 With a plan formulated, I just had to implement it. Starting with a scene (1), I used Blender to bake lightmaps as a reference texture (2). I used extra global illumination to help achieve the soft haziness of paint. A custom brush engine brush I wrote in Javascript applies a base layer of color with curved strokes (3). Next, the engine proceeds to mark out the shadow-light boundaries and strokes the region with a saturated midtone (4). The global illumination from before "expands" the shadow-light boundary ever so slightly—such that the color bleeds into the shadows, getting that stylized effect we wanted.

Incremental stages of painterly texture generation

 Looking back, the painterly 3D style didn't turn out quite how I wanted it to look. I initially drew inspiration from recent trends in non-photorealistic rendering (NPR) animation—like Riot Games' Arcane — where artists painted the textures by hand. My system was an imitation of their craft but I wasn't disappointed. I realized that an artists' "aesthetic sense" is irreplacable, and in the future, I want to integrate user input to guide my system. I realize how pervasive human-computer interactions appear in the work I do, and it makes me excited to be part of a field that's constantly evolving and pushing the bounds of how computers assist humans. This beautiful experiment is only just the start! I can't help wonder what else NPR can do in computer graphics as I've only scratched the surface after all...