So, here is the deal:
You can use the Corona Volume Material to create an object filled with heterogeneous medium.
Homogeneous = e.g. milk, where the volumetric effects are the same across the whole volume
Heterogeneous = e.g. clouds, where there is some "pattern" of things which have different density inside.
To do it, create a Corona Volume Mtl, enable the "inside volume" mode in it, and use a texture to control absorption (what is the density of the medium) and/or scattering (what color the medium has). Procedural textures will work great here as they will create 3D patterns. You can use 2D textures too, but they will not work that well as they are just... well 2D.
What I have never thought about was that you can plug the Volume Mtl as the base layer of a Corona Layered Mtl, and then you can add other layers, such as glass or metal on top. So you can create, for example, an object which is made of clear glass (or rough glass!) with a heterogeneous inside.
Here are some quick, simple examples.
The first one is "just" a Corona Volume Mtl + clear glass on top.
The second one is the same but with some roughness added to the glass, and then clearcoat on top.
I hope this can help and gives you some nice results.
The definite drawback is that this can render very slowly... to improve render times, consider the following options:
- in the Corona Volume Material - increase "step size" to get faster rendering and lower quality
- in the Corona Volume Material - enable "single bounce only" to get faster rendering and darker result with no internal light bounces
P.S. Please note that I used Corona 8 HF1 to create this scene, but I would highly suggest installing Corona 8 HF2 - which was literally released while I was typing this post. :)
https://corona-renderer.com/download