Exibit A: download/file.php?id=15831&mode=view
Upon close inspection, one will notice that my glass cube meshes are simply overlapping that of the water. You may notice that you can see the waves in the water inside the cube, which is theoretically correct, however, undesired. It would be a lot of work to use booleans to cut out a whole in the water, and set up the cube material so that the top part had an exterior medium of air, and the bottom of water. It would be nice if I could tell luxrender the 'glass' material had priority over the 'water' material. In this situation, The ray-intersection with the water while already inside the cube would be ignored. If I were to go the other way, and say 'water' had priority over 'glass', the ray would enter the glass above the water, but not below it, as the ray-glass intersection would be superseded by the fact that the ray was in the water. Now, I really have no idea how feasible this is, or whether or not it would be useful enough for the work to be put into it, but in short it would eliminate the need for complex boolean operations which retains your nice clean meshes.
A little example:
If the volume hierarchy was
Any ray coming from the air (lowest priority) would be allowed to enter any medium of higher priority. A ray coming from Glass would be able to enter Water, but not Dust or Air. Even though the ray would not become part of the Dust or Air mediums though, each medium entered would have to be sent to a list, so that if it did leave Glass, it would know it was still in Dust or air.
I picture it similar to html, where you have start and end tags. A given ray might look something like this:
(proper formatting here: http://codepad.org/ObOX2pdF
<Air> //ray enters Air medium
<Dust> //ray is still in Air, but also goes through patch of Dust
<Glass> //within Dust, enters Glass object
<Glass> //enters an intersecting Glass object (now 2 Glass layers deep)
</Glass> //exits second Glass object
<Water> //enters Water
<Air> //nothing happens, as Air is below Water on volume hierarchy
</Air> // leaves Air, still acts as if in Water
</Water> //leaves Water
</Glass> //leaves first Glass object, still in Dust though
</Dust> //leaves Dust
</Air> //finally leaves and is back in *world* medium
As far as I know, no production render engine has any feature like this. It always seemed to me though that a user defined volume hierarchy would save a lot of time setting up meshes so that everything just works. Anyways, what I would like to know is if anything like this would be useful/interesting/appealing to anyone else, and specifically from the devs, if it would be incredibly hard to implement/useless, or if there is an easy workaround already.
EDIT: because everyone likes pictures