Apr 2008

A tapa of geometry Smoke

Creating quality CG cigarette smoke is not easy task, there are very different approaches ,some have their strength in the look, other in the dynamics,others in the control, other speed...but i still dont think there is a perfect one that fills them all.

Particles ,Fluids,Geometry..

I will write a bit about a setup i did not long ago,its a bit different, and more focused in the shapes of the smoke,.
I had to build some numbers with e very ethereal smokey look to them, they had to evolve, but they should not look ghosty!. I knew that the look of them was going to be an issue so I started playing with different setups that would let me "sculpt" shapes while keeping the look .
Not long before i had watch a video of how to fake occlusion in realtime within the viewport in maya,it was quite interesting and became the base for what i had in mind: a density shader.


It uses sampler info(UV plugged) to a point on surface info node a cross product between the tangents a distance node for the value and a range that drives the transparency to a ramp.

This density shader has great advantages,it changes its transparency depending how far neighbors CVs are from each others , and best of all: its pretty much realtime, that is, if i pull away CVs in the geometry in the viewport i could see how it dissolves at the same time if i pull them closer the area becomes denser, so this meant i could sculpt the shape straight in the viewport.Here is a quick image from the viewport of a test:

Unfortunately it has a its disadvantages also, No mentalray (surprise???) and at the moment,only works with Nurbs geometry....

After having fun with soft bodies and my density smoke geometry, i decided to make a little rig with some stripes , several curves and some skeletons, the curves would drive the rig and this the striped geometry, to make things easier while sculpting i assigned colors for each curves and also locked the length of them using maya hair.I started building shapes,by pulling the curves CVs and by converting them to soft bodies I add the motion.