How does smoke rendering (like DD's Storm) work?

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

Thread Tools Search this Thread Display Modes
Old 08 August 2006   #1
How does smoke rendering (like DD's Storm) work?

OK, this isn't really a PF question, but I figured people in here might know a bunch about the subject.

I'm interested in discussing the theory of how a volumetric smoke/cloud/gas renderer like Digital Domain's STORM works. What exactly are the particles, at render time. Planes, spheres? What is their shape, texture and lighting?

I've read lots of articles on volumetric rendering, ray-casting and what-not, but few deal with in-depth theory about how to light smoke puffs for rendering, like you can see in Digital Domain's three-colored particle lighting passes.

Check these Digital Domain making-of's to see what I mean:
xXx avalanche ("Computer Generated Avalanche" pass)
Motorola Pebl (rising smoke and blowing dust)

Now, I'm not a programmer, but I do like to have basic understand of the tech stuff anyway. So, here's what I'm thinking:
  • They can't be lighting a cloud of billboards, because billboards don't react too well to directional lighting..
  • Unless of course the billboards are normal mapped to simulate more round shapes?
  • They can also be "spheric billboards", meaning a cluster of spheres, all camera-mapped with a billboard type smoke texture? That would give them the visual benefit of billboards, but make them lightable like spheres.
  • They could also just be totally normal sphere (with falloff), and the whole volumetric thing is in the lighting?
Any theories?
Any inside knowledge?

- Jonas

Last edited by jussing : 08 August 2006 at 12:55 PM. Reason: (typed "camera-camera, meant "camera-mapped")
Old 08 August 2006   #2
I would go for that cluster of spheres approach. Pete Draper faked volumetrics with instanced blobmeshs in DTE, using a light dependant material(mix or blend maps with shadow/light falloff for the mask)adds a lot too.
Old 08 August 2006   #3
I know for a fact the Avalanche thing was done in Houdini using its volumetric particles. They showed it at the Houdini User Group meeting at Siggraph a while back. Look at Afterburn for a similar approach, ie its volumetric rendering driven by particle animation if I remember correctly. Probably something similar in the Peble Ad. One thing they are doing, I think, is using the colored volumetrics to do the lighting/shading/color correction in post using probably Nuke.

"The Evil Monkey hiding in your closet."
Old 08 August 2006   #4
I think I can answer this as I've worked at Digital Domain for some time and have used VoxelB and it's latest evolution Storm. I can't really get into specifics, but the volumetric particle concepts you see with Afterburn are similar - placing volumetric primitives at particle locations and tweaking with noise. Now sending particle channel data to a volume renderer from Houdini is quite a bit more flexible than MAX, so there's some added capabilities there. As for VoxelB/Storm, it goes quite a bit farther beyond just dealing with volumetric primitives. There's some capabilities in there that I've used for generating wispy snow blowing off of surfaces (The Day After Tomorrow) and creating splashing water (Flags of Our Fathers).

The three color passes you see in those renderings aren't as special as they would seem. If you render your Key, Fill and Backlight(Rim) with different RGB values, you can tweak the lighting contributions proportionally in a compositing app. In this case we have a Nuke gizmo that essentially does this for us.

Now, if you really want to know if it's possible to make something akin to the avalanche from XXX with MAX and Afterburn: yes.
-Brandon Davis
Old 08 August 2006   #5
There's some interesting gubbins on the intricacies of Storm here -

...and a few words on the pebl spot here -

Old 08 August 2006   #6
Originally Posted by jussing: ...I'm interested in discussing the theory of how a volumetric smoke/cloud/gas renderer like Digital Domain's STORM works. What exactly are the particles, at render time. Planes, spheres? What is their shape, texture and lighting?...

I am no expert in this, but I believe that there is really no particle there. By ray marching through the volumetric primitive (with all its size, noise, color, density...information) the renderer spits out actual pixel colors accurate to some degree of sampling. In that specific information is passed out to the renderer saying 'make this pixel this color'. All in all it is not that 'smart', so we attach them to particles, other objects, or deamons in the case of AB to make them behave more as we need. I believe this is why things like gaseous fire and smoke sims need to use a bounding area grid to define a 3d resolution of information that can move the volumetric information in 'smarter' ways, relative to each other or other objects.

But again, I am no expert in this, so I may be totally off track here.
Proverbs 17:28 - Even a fool is counted wise when he holds his peace; When he shuts his lips, he is considered perceptive.
Old 08 August 2006   #7 posted twice.
Proverbs 17:28 - Even a fool is counted wise when he holds his peace; When he shuts his lips, he is considered perceptive.
Old 08 August 2006   #8
Where volumetrics can get really interesting is when you're able to manipulate buffers in strange and exotic ways. There are things I can do with Storm that I just can't see doing with anything currently commercially available. One of the best things about working with voxels is that they don't have the kind of overhead that geometry does. Imagine filling a buffer with millions of volumetric specks distributed along a surface....
-Brandon Davis
Old 08 August 2006   #9
anybody have a website for voxelb i googled it and not a web page for it just people talking about it in fourms?
Jeremy Kendall current reel
Old 08 August 2006   #10
voxelb is Digital Domain's proprietary voxel engine for houdini. Since D2 Software is not selling it as one of its products, there is no website. You may be able to find some more info on the links Mr Moose posted or on houdini related sites. As Brandon mentioned it has advantages over other commercial products so they probably aren't going to sell it anytime soon as that gives them a competitive advantage over other production houses.

"The Evil Monkey hiding in your closet."
Old 08 August 2006   #11
Thanks for all the responses! So, "volumetric primitives" is the hot word.

So how do these render? Raymarching through a 3D defined field of voxels (where a voxel is a 3 dimensionally defined area placed at the center of a particle?), and then rendering the noise/smoke/billboards, inheriting the calculated raymarching information?

Or is that totally off?

Thanks again,
- Jonas
Old 08 August 2006   #12
Sort of, in a nutshell. The main advantage with volume rendering is you don't have to deal with geometry which is only a surface.
-Brandon Davis
Old 08 August 2006   #13
Thanks again, Brandon.

One final question, if you (or anyone) has the time...

In the mentioned three-colored-lighting renders, are all lights 100% ray-marching (or, volume ray casting) calculations, or is there in the final result any traditional lighting based on surface normals (like spheres), at all?

I seem to recall a years-old Siggraph article about cloud rendering, which described pretty much the same sort of ray casting as in the Wikipedia article, except in step (1) they would march the rays from the sun, not from the POV. And step (3) in the Wikipedia article mentions shading based on surface models... so I'm a bit puzzled here.

- Jonas
Old 08 August 2006   #14
There are quite a variety of methods that can be used for volume/illumination integration. Generally, the more lights you use in a volume renderer, the more calculations (time) is needed. But this isn't always the case, especially with certain methods that use Spherical Harmonics to assist illumination.
-Brandon Davis
Old 08 August 2006   #15
Thank you, it's been a great help!

- Jonas
Thread Closed share thread

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Society of Digital Artists

Powered by vBulletin
Copyright 2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump

All times are GMT. The time now is 04:44 PM.

Powered by vBulletin
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.