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! :)
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.
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.
As most of you know, I was accepted to work on improving Dynamic Paint this summer as a Google Summer of Code student. The coding period began two weeks ago and now I finally have something to demo.
The biggest goal of my GSoC project is allowing vertex and Ptex level painting. Those formats will use Blender's point cache as storage thus allowing such cool things like real-time viewport preview of canvas and no need for UV mapping or to actually care for file locations etc.
Here is a screencap demoing vertex level displacement painting + real-time viewport preview:
It's still heavily work in progress so it will take at least a week before I'll commit these changes to my GSoC branch (soc-2011-carrot). Also, the final Ptex support is pending until Nicholas Bishop (or someone else) finishes the basic Ptex implementation for Blender. :s
Recently I have been working to improve Dynamic Paint functionality and allow painless Ptex (Per-Face Texture Mapping) integration in the future.
This next step is _vertex painting_. Basically you'll be able to select canvas output type. Available options will be vertex, Ptex and image output (current dp). Vertex output allows you to paint vertex colors, vertex groups and displaces.
Operating on vertex level makes things easier in many ways. First of all you don't have to unwrap any UV data or load image sequence textures to make it work. It's just clicking bake and seeing the results. Even displace will happen directly by the Dynamic Paint modifier.
Negative things compared to image textures are limited resolution and rendering options. That's why vertex stuff isn't going to replace current Dynamic Paint but to be an alternative way. Hopefully Ptex will be the ultimate Dynamic Paint solution. :)
I made a small demo of vertex group/weight painting. A grass worm.
In that video grass particle length is defined by a Dynamic Paint generated vertex group.
Please note that this is still in very early stage of development. You shouldn't expect any kind of test versions for several weeks.
I was testing how Blender 2.5x indirect lightning system works with textured emitters. At first it seemed like it doesn't work at all, especially with images, but apparently you just have to subdivide the mesh enough times to cover those emissive pixels.
So yeah, of course I ended up making a new test/demo of Dynamic Paint. In this one I used two high resolution canvases to cover all the geometry. For rendering I had to subdivide them to total ~1 million vertices to emit light properly.
Yesterday jahka committed an update that fixes most particle collision stability issues. Previously SPH fluids were quite much unusable due to stability issues. Fluid kept "exploding" randomly no matter the settings. Now, after the fix, it seems very stable.
Here is a test of a pool being filled with particle fluid. No way you could have done this a week ago, but now I see no stability issues at all!
Too bad Farsthary hasn't finished his fluid surface generator. Now one can only render fluids as particles or as a volumetric texture. So no reflections or transparency is possible. :(
In case someone is wondering why I'm not writing the Dynamic Paint guide instead. Well, I gotta have some fun too. Particle fluids is something I've been waiting for a long time, and now as it finally works, I'm gonna play with it for a while. :p
I got inspired by my previous paint video, so I decided to try Dynamic Paint with a bit heavier scene.
Result, Realistic Rain:
It features total 500.000 rain particles. Cool thing is that the ground visual is all material+texturing, generated with Dynamic Paint. Every single wet spot and splash is real interaction with those 500.000 particles!
Making of is quite simple: paint texture affects ground darkness and specular, plus a fast drying wetmap is used as bump texture and to add those white splashes.
This scene also helped Blender become more stable. I found a quite nasty particle system bug while trying to render this. After reporting it to jahka it got fixed. :)
If you want to make your own build, download the patch here. It's quite massive for a patch. Up to +4000 lines of code. o_O
It's still missing some small features / settings and some parts may not work yet. Yet it's stable enough to be released as beta. Please notify me if you experience any bugs or crashes so I can fix them.
Soon I'll start writing a guide that covers whole "Dynamic Paint" system. I guess most of the bugs gets fixed while doing that.
I also posted a new video of a fluid-like paint test:
I was just testing some stuff before uploading the patch but the result turned out something quite cool. In that render wetmap is used as normal/bump texture. Looks like some sort of 2D-fluid simulation. xD
And thanks again for everyone who donated to support this development! :)