Appleseed started to implement volumes last summer and the work is still in progress. Let me clarify what was done in appleseed regarding to volumes and what features are still missing!
So, at first, what was done. During GSoC our goal was to introduce homogeneous volumes to appleseed and make them work robustly with different lighting setup. Basically, you now can fill any object with volume of certain constant properties (just like you can assign any material to the object). Homogeneous means that all media inside the object has the uniform density. A lot of effort was taken to carefully provide importance sampling for lights, so now it is possible to place lights not just outside the volumes, but also inside without having much of noise. At the end, we have a good support for rendering foggy scenes with complex illumination.
Also, we provide two phase functions: Isotropic (for sky and other media with small particles) and Henyey-Greenstein (for clouds and fog).
Finally, for the next release we are preparing new random-walk SSS, which combines volume rendering approach with subsurface scattering.
Now, what is yet to be done:
Firstly, we haven’t yet exposed our volumes in Maya and 3ds max. Neither have we OSL Volume Shaders support.
Secondly, it is important to implement rendering of volumes with various density, because this obviously covers a lot more use cases (like smoke and clouds). It is a big task and we are not sure if it is possible for us to finish this in the next couple of releases.
In you case, it seems that lacking of non-homogeneous volume is an issue, since this is necessary for clouds (otherwise you can make only cloud-like objects like the bunny above), and it is also necessary for smooth atmosphere gradient. Here I performed a quick test with two interleaving spheres, where the larger one is volumetric:
Unfortunately, you can easily see the border of the atmosphere.
Thirdly, we don’t really support intersecting/interleaving volumes in a sense that our volumes have priorities and the one with higher priority always replaces the one with lower priority. (if you have a cloud in airy atmosphere, air properties are ignored in favor of cloud properties).
No Rayleigh or Mie support is a shame, though.
Thank you for pointing it out! Well, Rayleigh/Mie scattering model is mostly implemented in our renderer, and if you set up the values properly, you can get very realistic atmosphere material. Currently, we approximate “Rayleigh” case of the Mie equations (i.e. media with small particles) with Isotropic phase function, while “Mie” case (large particles) is very well approximated by Henyey-Greenstein phase function with large anisotropic factor.
However, your post initiated a discussion in our team and it seems that it is worth to implement also Rayleigh phase function which describes Rayleigh scattering more accurately. Also, we need to support mixing of these two functions to get physically correct atmospheres. (now you can only choose between Isotropic and Henyey-Greenstein).
We are striving to bring volumes to the same high level of quality as the rest of our renderer, but this is a vast amount of work! We are really thankful for the discussion (it helps us to clearly understand what to do) and hope you will not lose your interest in appleseed!