Burn Propagation


I’ve been playing with the new emission maps and found that I can’t convince any of my object emitters to emit properly from a 2dFluid texture into a 3d container. The connection looks like fluidTexture.outColorR to fluidEmitter.densityEmissionMap. The 2d fluid is something akin to the “burning paper” example shipped with maya and the texture is just applied to a polySphere. I also cached the 2d fluid.

                                        Am I missing something? 

To bugtest I also applied a “checker” to the temperature grid and it works just fine. I did notice that it uses outAlpha instead of any of the color channels but should this matter?


The connections to the density emission will use outAlpha regardless the actual attribute you connect. Just have your burn 2d fluid texture work on the opacity, not color. In a similar fashion mapping the emitter fluid color will always use outColor from the map.



Here is a simple scene showing a 2d fluid texture burn simulation used as a 3d fluid emitter on a mesh. On the 2d fluid texture I made opacity a function of temperature, thus it emits where it is hot and burning.

Also to keep the files small I didn’t set initial state on the 2d fluid textures, instead using animated emitters. (one to fill the fluid with fuel the other emitting a little heat a point to get things going) I used the same texture for the shader color basing color on the fuel grid, so as it burns the sphere becomes grey.



awesome, thanks for the example file!


Thanks for the response and example! It completely works as expected now that I use outAlpha. I thought I was losing it for a while as I expected it to use any single channel.

I’ll go drop a ticket for this tidbit to be stuck in the docs somewhere, it’s terribly useful.


thanks to everyone ,i have doubt …

keep in mind im burning cloth in random place …
if im burning cloth with using ncloth method i.e. animated ramp attaching to transparency of shader and then applying shader to ncloth surface material , then emit particle from animated ramp texture which is also applied to transparency so we will get burning effect with particles or we can emit fluid from those particle.

then how to achieve some pieces of cloth falling down while burning ? is that possible with help of procedural texture map(animated ramp which is also applied to transparency ) which can be apply to glue strength or something so some cloth pieces will fall down ???


If you’re emitting particles from the cloth then you just need to tweak the particles until it looks like the desired effect of fire.

Emitting it back into a fluid is a bit tricky. I’ve had limited success using the auto-resize feature in 2011 to have the fluid box follow around moving smoke (should work the same for fire…). The main problems were if the fluid emitter moved too fast from frame to frame and exited the fluid volume it would completely miss it and not resize outward unless you gave the resizable fluid VERY generous resize boundaries.


If you use the textured emission into the fluid then auto resize should always follow the mesh no matter how fast it moves as long as resize to emitter is on. It also helps to enable motion streak on the fluid emitter. If you want the fluid to only resize to the burning region on the cloth, then you could emit short lived particles that emit into the fluid and die. With resize to emitter the fluid auto resize will always track the particle positions, nomatter how fast they move.

To get the burned fragments to fall apart you could connect the same texture used for opacity( a 2dFluid burn simulation) to the stretch and collide strength maps on the nCloth. If the bend is non-zero then you would also need to map that. It is simplest to make other effects like drag and damp zero to eliminate the effect of transparent triangles on the simulation.

I’ve not tried this, however. One might get unacceptable stretching along triangles that have one vertex transparent but the others visible (along the burn boundary). Perhaps instead creating a tearable surface constraint then mapping the glueStrength would work better… although you might still want to map collide strength so that the transparent triangles no longer collide.



look duncan this is what i come up with


I still don’t have control over shape of teared surfaces, looks too edgy and not shrunk.

while pieces falling down i need some of them carry fire along with them but as i followed 2dfluidtexture to emit density on cloth using 3dfluid container ,falling pieces not taking fire along with them while going down,they just following path as I given to 2dfluidtexture .

however there are many other shading network problm while doing this…

i.e. ncloth tearable strength texture attr. not taking 2dfluidtexture …

guys please help or do add comment …

thank you so muchhhhhhhh.


Texturing the glue strength with a 2d fluid texture works OK for me( see attached scene ). (note this did not work prior to Maya2011) One textures the glueStrengthMap attribute on the nComponent for the tearable constraint. You can connect the outAlpha from your fluid, if doing it manually. Note that the outAlpha of the fluid texture is based on the opacity value. You can reverse this if need be by editing the opacity ramp on the fluid. Also one can’t do any abitrary shading network connections for non-render uses of textures… it will always evaluate outAlpha for a single channel value and outColor for a color value.

Note that for the auto resize to follow the fragments down they must be emitting some density(other emitted attributes like heat and fuel do not trigger the autoresize). As well the density should be over the autoResizeThreshold value (or just set the threshold to a very low value). Perhaps by the time the fragments fall they have fully burned and thus are no longer emitting?



Awesome example Duncan, cheers!

Had a quick play with your scene, fun fun fun :wink:

and hehe, very nice diplomatic final sentence there about the fragments :wink:


hehehe , fragments are not only which turned into ashes but also pieces which is unburned and separated because of tear …

Yes duncan , 2dfluidTexture is now working properly once it is set to initial state ,jus like u did.
great info. you provided on fluid resize ,thank you for your demonstration file too.

@HowardM , looks like u emitting non-fluid particle and working gr8 for you , Exactly same thing I was looking for but emitting fluid ,nice quick test .
actually I expected duncan to explain on this part but anyway thank you so much both.


another quick test -

fluid fire emission based on image sequence (from fluids)… so there ya go mate, it all works in one form or another :wink:

get cracking!


http://vimeo.com/17924766 - got the alpha working… fire direct from the 2d fluid… :slight_smile:


do u have control over fire emission ? like some fragments has to stop burning and some needs to keep burning ,whatever way? ur emission look its pretty decent …

aggggrhhhhhhhhhhhh!I’m jealous :wip: :stuck_out_tongue:

share share share…plzzz


very nice. would love to try it on more rigid simulations for dynamic destruction effects… coupled with extrude nodes.


Awesome thanks Duncan, and everyone sharing.


another - http://vimeo.com/17943206 and http://vimeo.com/17943577
this uses a pre torn object for better shapes, and the outColor to shade the burning…

Moreffect - you can control EVERYTHING with ramps/textures, etc, but as I mentioned, this is a complex effect and wont be ‘push of the button’ … it would take some wit, planning and luck to control everything with the standard tools… its easy to make pieces burn, but to shrink, control each individual piece etc will take alot of work…

the easiest way would be to render all maps to image sequences, tweak in Shake or AE, each layer and how you want it to react…

stooch, ill do some other tests, try some ncloth ‘hard bodies’… im imagining a lot of cool fx with this method… skin burning, tearing, melting… plane fuselage bending, burning, breaking… anything on fire burning :wink:


very realistic, nice work!


Hey guys I had a play myself, heres my results what do you think?


Everything is running at medium res. Im running the same 2DFluidTexure for nComponents, fluid emission and texture . I think the method could be improved if SouP’s pointCloudFluidEmitter could be plugged into 2DFluidTexture.