The basic idea, using a glass shader for outter shell and an inner sphere with textured volume to fake depth. this way, you will save a lots of work with actually modeling the inner part of a marble. Spectral renderer don’t use this kind of trickery they can actully the inner part as real glass medium (using textures).
I’ve use Cycles (Blender), Renderman, Arnold, Octane and Indigo Renderer. I’ve tried to create a Marvel in Redshift, but i could make it work with single texture and 2 spheres. For Redshift you need actually model a marvel to get realistic rendering.
the spectral rendere engines was the fastest by far. that’s because with spectral render I used a medium instead of volume for interia, that’s saves a lot of render time.
here is quick test with single glass object with Indigo and Cycles :
this here are glass spheres with regular solid texture spheres inside:
I’ve made a simple scene to test the physics of light. for proper light calculation, I used spectral render Indigo and Octane.
Indigo has multiple Engines, standard Spectral Path tracer on CPU or GPU and Bidirectional path tracing with MTL sampling (metropolis Light Transport). Octane has only default Spectral Path tracer on GPU but includes an MTL sampling method. I’v also added Renderman 23 to the test with its unified rendering integrator. It supports bidirectional path, manifold caustics and path guiding on the CPU.
Another render engine like Arnold or Cycles with regular Path tracing would impractical fro complex light calculation tasks.
The base scene is Sphere and squashed Sphere underneath inside a volume box (uniform VDB).
The following image is the result of Indigo Renderer with BiDirectional path tracing and MTL. It was by far the fastest rendering.