Ray tracing is a recursive process. Each ray bounces off of reflective objects. This parameter allows the user to limit the number of bounces a ray may take on a global basis. The global limit is pro-vided so that users may produce a quick and dirty image to check the layout and/or texturing of the scene without having to do a major edit of the SDL file. The global limit will only take effect if it is LESS than the limit for the relevant shader, otherwise the shader’s limit will be respected. The parameter is only use-ful, therefore, for reducing image quality, not increasing it.
A user wants to RayTrace an SDL file that has highly reflective surfaces with a re-flec-tion limit of 6. He is not sure, however, of the placement of the objects and wishes to do a quick test. So, the user sets the max_reflections = 1. When a ray hits a surface with a reflection limit of 6, a reflection ray will be traced only if the ray is a primary ray (that is, its level is less than the value of max_reflections).
If, on the other hand, a primary ray hits an object with a reflection limit of 0, no re-flected ray will be traced. This is because although the parameter max_reflections specifies that a ray of level 0 may bounce off of a surface, the surface itself does not allow ANY rays to bounce off of it.