I tried to create an Opal like effect a while back - with mixed results.
I had an idea this morning on how to make it more realistic using volumetric materials.
Basically I use the wave texture plus colour ramp to create thin inclusion layers throughout the volume. I then mix this with a noise texture to give small island inclusions.
I then use the result to key the density of a volume scatter node. By setting the anisotropy of the volume scatter negative - I can make the inclusions retro-reflective (i.e. they reflect light back in the direction of the light source).
I then add a volume absorption node to make deeper inclusions less bright and a glass surface material to mimic the polished surface.
This is my result so far - still needs some work - but i’d say it looks better than my last effort already. By changing the scale of the two textures - it should be possible to create different opal effects from large area colour (like in my image) to needle like inclusions or ‘pin fire’ type effects.