Is there a more efficient way to achieve this painterly effect?

I saw this the other day, and pretty much fell in love with the style. I’ve been able to replicate most of it in Blender, and in doing so, I’ve come to realize that it’d be rather complicated, and overly expensive to use for more complex scenes. Having to deform multiple meshes, animating rotating empties to get the jiggle effect, and all that other good stuff would be rather time consuming.

Can I pull off a similar effect more simply?

Painting with Polygons on Vimeo

1 Like

Perhaps with a displacement map that animates from -1 to 1 with a high frequency and motion blur?

Or with several differnet displacements within a geometry nodes modifer. That would make it vasely easier to handle.

2 Likes

I set up a mapping node for the procedural, and keyframed location of the texture. It now jiggles, but I can’t seem to get motion blur to work on it, so I’m still struggling on through this.

Though I’d like to hear more about the geometry node setup. I’ve never used them before, and I couldn’t find any tutorials on it.

Okay, I’m bumping this because I can NOT get motion blur to cooperate with me. I’m uploading my Blend file. Tell me what I’m doing wrong.

Teapot.blend (2.0 MB)

After looking at your file and playing around a bit, it seems like the shader is only evaluated once per rendered frame level and is therefore not considered for the motion blur.

Creating the displacement with a displacement modifier or the geometry nodes does create motion blur though, so you might need to go that route.

But I couldn’t really achieve a good result with either methods.
The textures for the displacement modifier lack good transformation options (or at least I cant find them) to allow for some kind of repeating offset and the geometry nodes are still missing things like noise or at least attribute vector math to allow for more controlled deformation than random offset. :confused:

1 Like

I swapped the texture coordinate node with a Geometry node, and it ended up producing better results as far as deformation goes, but it still isn’t picking up any motion for me.

Out of curiosity, does 2.92’s geometry nodes support deformations, or is it just confined to coordinates and scattering at the moment?

On another note, I would use the displace modifier, but I’m not sure how to tie it to a scrolling texture.

I didn’t imagine things would be this complicated when I started this. But hey, on the bright side, I am learning a bunch.

Geometry nodes do support deformation. Here is a setup I tried with your scene:

Render:

Teapot_geometry-nodes.blend (2.1 MB)

It’s just taking every vertex and gives it a random offset. The seed to create the random values is driven by the frame number so each frame there is a different deformation.

There aren’t noise functions or anything similar implemented into geometry nodes yet, so purely random values for each vertex is the closest I can think of.
I used a lower res teapot than you did. Because every vertex of the mesh is offset, the density of the mesh dictates the frequency of the bumps.

2 Likes

Hi.
Interesting technique what the video shows. Thanks for sharing and thanks for the geometry nodes example. It occurs to me that with Shader to RGB node for Eevee you could also get an interesting cartoon style result:

Eevee and Grease Pencil should incorporate some way to easily achieve all these non-photo realistic effects.

2 Likes

Thanks for the example!

I played around with it for a bit, but couldn’t make the deformations smooth and broad enough. Since it’s working per-vertex, the end result is just too noisy to look good.

But on a lark, I decided to render out 4 frames, and combine them together in Photo to see if I could fake the motion blur there.

…turns out, I can! :smiley:

4 samples, a few transparency adjustments, and a levels layer later, and I got this:

That’s about what I wanted. It’s not perfect, but it’s pretty damn close to it. If only I could figure out how to do all inside of Blender.

@YAFU I’ve played with the Shader to RGB before. It can do some cool stuff, though I don’t think it’ll work for replicating this, because it’s the indistinct edges this effect produces that makes it so nice.

1 Like

Looks really nice already :slight_smile:

Another thing that came to mind was a technique the blender studio used for one of the settlers videos. They used stylized shaders and then re-rendered the video in blender with an additional node setup to add a painterly depth of field effect to it.
The breakdowns and files are freely available on the blender cloud. It’s not necessarily the effect of the video you posted, but maybe insightful, nonetheless:

1 Like

Okay, that’s pretty cool looking. I’ll play around with it tomorrow, see if I can fake a paintbrush stroke style effect with it.

I remember this effect from my Lightwave days and several others using a similar motionblur trick. Remember that the renderer in LW(Lightwave) is a raytracer and not a pathtracer( don’t know if that matters).
The trick was to use fractional frames(subframes) so you use like ten frames in between actual frames. Then you setup the displacement to animate between frame 1 & 2 and then setup a cycle(repeat) in the graph editor so it repeats every frame. By doing so the displacement looks the same on every frame and the motionblur smear out the effect so the geometry looks smooth. Then the rest is just shading(material) tweaks.
This should be possible with a dispacement modifier With a noise texture and a empty object animated over 1 frame and then cycle it and copy to all meshes.

1 Like