With this post I want to summarize and share my experiences I had using the particle system in current blender 2.61.
The current production phase calls for a lot of vfx, mostly to be done using dynamic particles. I will not go into detail as to what exactly the shots are, but I think just describing the overall concepts and approaches will give you an enough complete picture.
It soon was clear, that using the particle system from 2.49 was out of the question, as I needed some effects rendered using the volume shading with point density input from various particle systems.
So the first task was to export all the camera animation as well as all the objects and animations for the other needed parts. It turned out, that blender 2.61 does a decent job in importing old 2.49 files. At first look, everything looked ok. On deeper inspection though, I noticed broken rig setups regarding constraints and drivers across multiple armatures.
The effect was, that the resulting animation wasn’t exactly the same as in the original 2.49 version. Fortunately, the vfx work needed here did not call for pixel accuracy, so after a few manual tweaks I accepted the setup.
The next task was to come up with a solution and workflow to tackle the needed vfx work. The shots in question require several layers of moving particles, partly rendered as instanced objects and partly as volumes.My intention and need was to be totally in control on how those particles moved. I had a very precise picture in mind how the whole system should behave and move over time. With one word, I wanted to animate the overall behaviour of the particles in a very controlled and predictable manner. But the individual particles should expose a random and chaotic appearance.
An example would be e.g. a tornado, where I control the overall shape and movement but let the system fill in the chaos. Or another example are the vfx used for the death eaters in the harry potter movies. ( That does not hint at any tornado being used in the shots … 🙂 )
My first idea was to use keyed particles, as those seemed very controllable in various aspects. What I did not realize then, was that they are too deterministic. The interpolation of the particles between the used keys is linear and gives a decisively unchaotic appearance. I was under he impression that random fluctuations and external force fields could be overlayed, but alas, that is not the case. Any physical properties are turned off as soon as keyed particles are used.
Well, that made it clear then to use the physics type particles and use force fields of all sorts to get the desired results. Well, there went the controllable and predictable attributes …
The headaches using this approach are manifold. Let me just list some of the shortcomings using this approach:
- The animatable properties of particle systems are rather limited.
- Controlling particle properties through textures work, but any animation of the textures themselves is completely ignored and noneffective.
- Force fields have to be animated by hand. The animated properties act indirectly on the movement of the particles and thus you have to guess the outcome.
- Multiple force fields with overlapping effects are even harder to control
- Trying to animate a moving particle stream along a path could be done using a curve force field, but you loose ( to a big degree) the interaction with other force fields and are left with something similar to the keyed approach.
- To see the effects, you have to rerun the simulation every time you change anything.
The last point on the list wouldn’t be such a problem, if the cache system worked reliable. It happened very often, that I didn’t see any changes allthough I tweaked the force field animation a lot. Even freeing the cache didn’t work. Only changing some basic parameters (like changing the numbers of particles) I was able to reset the cache.
And I had to do this for a lot of particle systems all at once, thus multiplying the amount of time needed to get a result which at least had some resemblance to my original concept.
The next surprises came when actually rendering out those particles. Each particle system was rendered out to a different render layer all with various lights and masking applied. It turned out that 2 of my 8 particle systems didn’t render at all. They showed up very nicely when rendering the single layer alone, but would vanish as soon as all the layers were activated. Setting up those particle systems from scratch solved this problem. Another glitch was that the masking I set up in one layer was also active in another one, and thus ruining the render of that layer. Unfortunately I have not found any workaround for this one.
Another glitch is if you want to have a vector blur pass done. Allthough a lot of warning messages are produced in the console about missing objects in the speed table I got my vector passes. They look nice for 90% of the frames. But for some frames you get huge spikes in velocity for individual particles, which results in sudden long streaks in the compositor.
All in all, I have to do 3 shots with this type of heavy vfx, and I am halfway through. This should give you an idea how time consuming this whole process is.
The verdict on the current state of particles in blender is quite clear: a nice toy if used in demonstrations or simple setups. As soon as you ramp up the complexity and requirements you will have to face serious limitations. I would not use the term ‘production ready’ for the current implementation. And sadly the same has to be said about hair and cloth as well …
Well, sorry for the long rant-like text. I just had to make room in my head to be able to go on :)My hope now is, that the 3rd shot requiring this sort of vfx will benefit from the experience gained so far, but one thing is for sure: compromises will have to be made …