Okay, you asked for it!
waffle {
I start off with an array of 'cloud' structures, the numer of parent clouds is supposed to be quite a small so they can be blown around or whatever. Each parent node can have child clouds set by their childcount, childscale and firstchild. Children can also have children, so to avoid infinite recursion there's a variable for maximum depth and another for level of detail.
At render time I create a list of visible clouds (I need to add culling here), calculate the distance from the camera, sort them, fill a vertex buffer with the billboards and draw as a single texture. All pretty CPU intensive stuff.
Each cloud has its own colour, but Irrlicht doesn't have a material that supports transparrent texture alpha and vertex alpha together, so there's LOD popping instead of fading in nicely.
You can rotate and move the entire scene node, and manipulate all the nodes in the list individually (which isn't practical for children).
The source code was built on Irrlicht's particle system, and works with Irrlicht 0.10 and Dev-C++ under Windows or Linux.
};
-IV