Below are some examples of complex volumetric materials.
Multiple materials can be interpolated based on a distance to another object, which may be another object visible in the scene, or one purely used by the material. In addition to the diffuse colour, blended materials may have different values for other properties like roughness, shininess and emission.
The lava/rock material here is defined by the signed distance from a plane with the outer/positive area having the rock, the inner the lava. The outer material on the torus is defined by the distance from the pre-eroded torus.
The size of the blend region is easily adjusted. Effects like dithering to the blended region can be achieved simply by adding noise (e.g. 3D perlin noise) to object defining the blend region.
Fractals composed of multiple materials can be created by copying the transformed position during the fractals construction and using distances from it for the material interpolation.
I’ve recently also added support for textures. Textures can be used as the source of diffuse for a material or used for as input into other functions (e.g. using them to do displacements).