Neutron engine supports shadow casting by translucent objects (clouds, smoke, fire etc) but there was no support for seamless blending of solid and translucent shadows. Since the engine renders shadows using the ‘deferred shadows’ approach it was very easy to implement this feature. Results can be seen in this video showing clouds passing over terrain and blending with the solid tree shadow on the ground. HD version is available at http://www.youtube.com/neutronengine
After implementing cloud generator, next logical step was to add real-time cloud shadows. Shadow is calculated by collecting cloud density while ray tracing through volumetric texture. As usual video can be found at http://www.youtube.com/user/NeutronEngine
We all know that having a great cloud system in 3D engine makes a big difference. So, after finishing LOD system I revisited some old articles about cloud generation and decided to implement my own version. The basic idea is very simple and it’s based on cellular automaton as proposed by Y. Dobashi et. al (http://nis-ei.eng.hokudai.ac.jp/~doba/papers/sig00_cloud.pdf) Clouds are lit using both multiple forward scattering of light and eye scattering (http://www.markmark.net/PDFs/RTClouds_HarrisEG2001.pdf) Rendering is done using 3D texture and simple ray tracing algorithm in pixel shader. Results can be seen in this video which is posted on http://www.youtube.com/user/NeutronEngine