Hello again! These are exciting times…and things are getting crazy!! First off, I will say that I will probably not be able to make too many posts over the next five months. Starting this month (12/2009), I have entered Final Project at Full Sail University. This encompasses the last 5 months of the degree and involves creating a full-scale game, with the final product in mind being a sweet demo to show-off to any who may be interested. With that said, I bring you the fruit of last month’s labor, a continuation of research into volumetric cloud rendering from the prior month, culminating in what I consider a fairly decent volumetric cloud…
Having stumbled upon a decent render to 3d texture demo from nVidia, I began familiarizing myself with the concepts of frame buffer objects and using a pixel shader to create “geometry” and perform a ray marching algorithm for blending. These techniques are becoming more and more widely used from what I understand, especially as graphics cards continue to become more and more powerful…to the point where 3d textures are well-supported and efficient. There were definitely a fair share of mistakes and challenges along the way, a few of which I have screen shots of:
One of the techniques I learned during the journey is called “splatting”, which is a way to draw things to the screen via a 3d texture and a fragment shader. The process is to fill out each slice of a 3d texture by rendering a quad and specifying appropriate 3d texture coordinates. Different 3d textures may be rendered to any number of frame buffer objects to create an animation, such as a wave.
The most difficult part, which I have yet to master, is to find a way to do the entire process in an efficient manner so that it is viable in real-time. Currently, no calculations are done on the CPU at all. There is no actual geometry and blending must be performed by marching a ray through the volume and accumulating the color values from back to front towards the camera. The following picture is before threshold values were tweaked properly to make the dark values blend in completely with the background and to make the rest to lean more towards white and then blending that with whatever is behind it (from the camera’s perspective).
A very interesting effect that happened along the way was what the following picture portrays: a very cartoonish cloud look. This may be useful someday
…
And to finish up, the final product was a matter of introducing a much higher influence from the background sky color. This had the effect of making thinner parts of the cloud actually look thin. The thicker parts leaning more towards white — along with a slight blurriness to the noise applied — helped to make the clouds fluffy instead of blocky.






Love your site man keep up the good work
Thanks! Glad you enjoyed it! Trying to post more on here, but work has got me wiped at the end of the day…