volumetric clouds


I am working on a program that has to render volumetric clouds with impostors (like in http://www.cs.unc.edu/~harrism/SkyWorks/)..)

So far, everything works fine expect one thing: the cloud itself, the arrangement of the particles that make up the cloud. I am looking for an algorithm that creates clouds out of particles. Does anyone know about that?


“except” not “expect”


You could generate the clouds as perlin noise, sample it on some regular grid and create particles where the noise function exceeds some isovalue. You can also vary the particle size, opacity etc. according to the noise function.


sounds interesting… do you have an example and/or information page about perlin noise (never heard of that before)?


Never heard of Perlin noise? Well, this one looks ok: http://freespace.virgin.net/hugo.elias/models/m_perlin.htm


I Guess i just didn’t know the word as I am from germany. Of course i know weisses rauschen etc. But the url seems great, thanks .


Take a look at this: http://expert.ics.purdue.edu/~schpokj/research/purpl/clouds/index.html

Why not looking at the real thing: http://www.kenperlin.com/

Originally posted by JanHH:
[b]I Guess i just didn’t know the word as I am from germany. Of course i know weisses rauschen etc. But the url seems great, thanks .

Perlin noise is not the same as white noise. It’s a type of noise generated in a very special way. This is done to ensure that it has certain properties, most importantly the ‘bumps’ in the noise all have roughly the same size. This is very important for compositing.

Though perlin noise is more or less random, it has a specific frequency. You can then compose multiple ‘octaves’ of perlin noise to achieve a desired spectrum. This is actually very similar to audio processing.

Originally posted by Relic:
Why not looking at the real thing:

Nothing to do with the real thing. If the real thing is what you want, look out of your window

Sorry, your link was very good, I just had to…


im working in a modelling technique that uses fluid dynamics to create the cloud.
my problem is solving the navier-stokes equations. this is a phisically based approch, but the results are good, and there is no need for artistic input. look in harris’s new paper, he has some information about the process. there are also a few siggraph papers about it.

PS. if anyone here has done that, i would really appriciate some help

at the moment i have a 3d perlin noise function that rendes weird looking artifacts, but definitely not clouds .

Of course you have to modify the pure noise function to make it look like clouds. Try multiplying it with some function like
f(x, y, z)=clamp(1-y^2)
to limit the clouds to a certain height. Then set any value below 0.3 (for example) to 0. And so on, I think you get the idea.


in fact I found out that my noise function seems to be wrong and that that’s what the problem is (at the moment). So I’m still optimistic… I think the idea of perlin noise is still the right one for this case.

… and still it looks like crap and I am getting frustrated. okapota, what is “harris’ new paper”?

at the moment, it is as follows:

I have a regular 3D grid (for example, 20x10x20).

Then I fill each grid cell with a random value (which is in fact three random values, one one-dimensional perlin noise function for each dimension, multiplied with each other).

This random number in each grid cell, multiplied by a constant factor (for example, 10) gives the number of particles that later are randomly distributed in the space this grid cell makes up (given a space width for each grid cell).

So I do, and it looks like crap, although I think the idea is OK. Any Ideas?


Have you taken a look at the links available from the Virtual Terrain Project? http://www.vterrain.org/Atmosphere/Clouds/index.html

yes i did. but could not really find a solution, altough I guess I have to look a little further there.

The task itself is pretty simple: you have a space with an x-, y- and z-width, and you have n particles. place the particles inside of the space so if you render the whole thing, it looks like a cloud.

arghh… is it possible that this is so difficult, or am I just so stupid?


You should look further, i seem to remember a paper on vterrain’s page, based on a voxel of cloud particles, which i implemented successfully and gave very nice results. After that i rendered the cloud with billboards, and if the cloud is too far away, impostors. That’s pretty much the standard technique in flight simulators (like FS2002) nowadays.


yes and that’s exactly what I am doing. I would be extremely happy if I could read that paper, but haven’t found this one yet there. could you tell me the url?