Once again I was playing with Dynamic Paint eventually ending up with two new demo videos.
Dynamic Paint - Snow Test:
This was a simple experiment trying to make realistically gathering snow in Blender.
To do the effect I used an "incremental" displace surface with very low negative "displace factor" value. This made snow to slowly increase displace on areas where particles touched the mesh. Then I just added another white paint surface on top of it.
Snow surface is a bit too bumpy due to over amplified effect of individual snow flakes. (To not have to render 10 minutes of snowing. :)
I suppose another better approach would have been to actually use fluid particles of high viscosity. Though bake times would for sure have been longer than current 2 min for 1000 frames.
Dynamic Paint - Rain Ripples:
This time I was using Dynamic Paint waves to replicate rain ripples on a mirror calm water surface. I think it worked out quite nicely and it didn't really require any more work than slightly tweaking wave surface parameters. It's all texturing and bump maps so the water mesh is just a single quad.
To rant about something: particle system was really giving me a headache. Like usually, I had to use particle colliders of animated "permeability" to regulate the emission speed. Due to lack of reactor particles or texture/weight controlled emission it was impossible to create any kind of splash at points where rain drop hit the water. Not to mention two new bugs I encountered...
So I'm really looking forward to upcoming node based particles system by Lukas Tönne. :)
One of the best ways to test Dynamic Paint stability and workflow is to actually use it to do all kind of test demos. Yesterday I was playing with idea of laser beam digging into ground, eventually it turned out to be cool enough to post online. :D
This scene combines all my favorite Blender tools: Dynamic Paint, smoke simulator and particles. I used a Dynamic Paint canvas with multiple surfaces to get results for displace, color trail and fading glow. Laser beam is simply a cylinder with volumetric high emission material.
Now it's possible to set Dynamic Paint brushes to "smudge" existing paint as they move. By functionality it's very similar to smudge/smear tools found in typical 2D image manipulation programs. This feature is part of my "velocity brush" experiments from last week.
Here is a video of basic smudge:
And now using a particle system as a brush:
Other velocity based new features include possibility to use brush speed to define it's influence and color, and to make canvas velocity or acceleration to affect "drip effect".
Though, I really can't think of any situation where velocity painting would be essential, but hopefully someone will find it useful! :)
Today I was testing Blender's new camera tracking functionality together with Dynamic Paint wave simulator on soc-2011-salad branch.
I had some issues with tracking system, and eventually I had to use 2D markers instead of 3D ones and that required lots of tweaking. But even though tracking tools are still in early development, it worked very well after all. With this development pace I can just wonder what one can do with it by the end of summer. :)
Here is the final render:
What you see here is a Suzanne monkey head added to a real footage. Water particles and wave visibility could still use some tweaking, but overall I'm quite happy with the result.
I also noticed a nice Dynamic Paint waves test by CristobalAtria:
Last week I was checking my iWave implementation from February. As you may remember it had quite strange issues: it kept emitting waves way too long after the obstacle had moved away, and sometimes waves seemed to move in wrong direction.
Finally I decided to implement another 2D wave algorithm instead. This time it's based on "Height Field Fluids" slides by Matthias Müller-Fischer. With some modifications it now works on mesh objects and is even compatible with new vertex surfaces.
Basic implementation is now ready and committed to soc-2011-carrot branch. It may still need some tweaking but unless something critical appears this should be about finished.
Here is a video showing a couple of test scenes:
If you want to try it yourself, here is a sample .blend file for carrot branch revisions 38044 and later.
Dynamic Paint "effects" system is now back in latest version (r37848 or later) of soc-2011-carrot branch. Paint effects is a special option for paint surfaces that generates animated movement for wet paint.
Now it also works with vertex surfaces and has some improvements too. One of the largest visible update is that you can now use Blender's "force fields" to control dripping direction. So it's no longer limited to negative z-axis only. ;p Color mixing behavior is also improved.
Check out this video of an animated point force dragging paint around:
Vertex group painting that I was experimenting with in January, is now finally available for download. I committed it to soc-2011-carrot branch earlier today, so just get a Carrot branch build at revision 37622 or later. You can get Windows builds from MiikaHweb Blender Builds section.
I also uploaded two example .blend files you can use to try out Dynamic Paint's new realtime vertex painting functionality.
This demo shows how to use Dynamic Paint's vertex level color and displace:
This demo shows how to use vertex weight groups to control particle hair length. This one is very similar to the "Grass Worm" video I posted earlier.
One critical component is still missing though. Currently there is really no proper way to render vertex colors in Blender. It's only possible to render one layer at time and only use it as diffuse color. :(
That's something I'm planning to improve later this summer.