I was doing some flame tests with Houdini before I get some real footage with a mustang in the race track for the ghost rider project... so this is what I came up with, and I know the final comp doesn't look good because I just slapped the flame on top of the instanced lights render and uploaded it but all of them together takes quite long to render and all I had at the time was an old laptop.
Anyhow, the flame effect itself is very simple. First I used a small sphere to spawn the particles which are pushed up by a simple force node with some turbulence, and some noise. It also pushes the particles that get away from the central y axis of the origin by
-$TZ parameters. They were also colored in the POP level to provide colors for the instanced lights but I ended up using the second other, bigger flame sim for it.
After I was happy with POP I copied it to metaballs and then connected them to an isooffset node. Once calibrated isooffset can convert the POP simulation which is lightning fast and the metaball copy functions into pretty much what DOP simulations would come up with, only much faster. Once done and cached to disk, I attached the basic flame shader on the simulation, add a camera, and finally render with normal micropolygonal rendering.
After the first inner flame, I increased the volume of the particle source sphere, calibrated the forces to match, copied the POP over to the metaballs, added isooffset, and cached. Once its done added the same shader again and rendered from the same camera.
Two flames comped together.
Now its time to model some woods and a wavy surface to have some sublime shadows from the approx. 350 raytrace lights i will instance (painful).
For the surface I used the softbody simulation in POPs and collided it with some other objects, froze it and exported it as a single bgeo file. Then I imported the bgeo back and put some rectangular prisms with the wood shaders on top of it.
Now, the killer function here is the
instancepoint(), it calculates per particle per frame so when I add it to the point light (which is the ONLY light node in the scene by the way) which was to be instanced, every instance of the point light got the color attribute of the exact particle it was instancing per frame. Per frame meaning that the color of the particles change over time and that is transfered to the instanced lights as well.
Before I started the render I had to decrease the number of particles, so re-spawned the second set of particles, only this time with less birth attributes. This one takes a lot to render 10 hours+ for 240 frames on a core2duo 2.4ghz machine.