First off, I think the question is a bit vague. I'm not exactly sure what you really want so this answer is just based on my understanding of your question.
Raytracing handles reflections and shadows in the presence of multiple translucent objects naturally, by simulating multiple bounces of the ray. If there are multiple translucent objects in the scene, each object is handled independently. For example:
Object 1 and object 2 are two translucent spheres. We trace a path from the left which intersects the sphere at point A
. Then at point A
, an scattering event is sampled, to decide whether the path refracts into or reflect away from point A
.The sampling probability and how much energy can be scattered are determined by Fresnel term. If:
- The scattering event is
reflection
: well the ray is reflected back to the scene, as depicted by the yellow line segments.
- The scattering event is
refraction
: Use Snell's law to determine the refracted ray direction, as shown in the blue line segments.
After that, you will get a new ray, starting from point A
. The subsequent steps are just recursive: follow the same logic and bounce the ray over and over again until some termination conditions are met. For shadowing, the same logic applies: test whether the ray is blocked by surfaces, if so then nullify the radiance contribution along the ray. We normally do not account for the opacity of the surfaces
. That is, if the ray segment intersects a certain surface, no matter whether the surface is translucent or not, we will normally regard the case as "occluded". We do this for an obvious reason: translucent objects usually entail different refraction indices, so the ray direction won't be continuous across the medium interfaces, and the direct connection between two given points is therefore impossible.
In all, the basic ray (path) tracing method does not treat translucent objects differently from opaque objects: it is just the matter of different BSDF and we only need to do the ray-bouncing recursively.
For more advanced methods, like MCMC based method, you can refer to Wenzel Jakob: manifold exploration for advanced reading. This method, in a nutshell, tries to find the ray bouncing points on the surfaces for a given query point, and is very efficient at solving the caustics rendering problem (this problem is very difficult to solve for path tracers). Yet note that this method is very different from ray-tracers, since it is not so recursive and requires the information of multiple objects, while basic ray-tracer can only consider the current object. Since you asked about multiple translucent objects, I think this will help.