Ray types can be divided in four categories:
- Camera: ray comes straight from the camera
- Reflection: ray is generated by a reflection off a surface
- Transmission: ray is generated by a transmission through a surface
- Shadow: ray is used for (transparent) shadows
Reflection and transmission rays can further have these properties:
- Diffuse: ray is generated by a diffuse reflection or transmission (translucency)
- Glossy: ray is generated by a glossy specular reflection or transmission
- Singular: ray is generated by a perfectly sharp reflection or transmission
The Light Path node can be used to find out the type of ray the shading is being computed for.
The maximum number of light bounces can be controlled manually. While ideally this should be infinite, in practice a smaller number of bounces may be sufficient, or some light interactions may be intentionally left out for faster convergence. The number of diffuse reflection, glossy reflection and transmission bounces can also be controlled individually.
Lights paths will be terminated probabilistically when specifying a minimum number of light bounces lower than the maximum. In that case paths longer than minimum will be randomly stopped when they are expected to contribute less light to the image. This will still converge to the same image, but renders faster while possibly being noisier.
A common source of noise are caustics, which are diffuse bounces followed by a glossy bounce (assuming we start from the camera). An option is available to disable these entirely.
The transparent BSDF shader is given special treatment. When a ray passes through it, light passes straight on, as if there was no geometry there. The ray type does not change when passing through a transparent BSDF.
Alpha pass output is also different for the transparent BSDF. Other transmission BSDF's are considered opaque, because they change the light direction. As such they can't be used for alpha over compositing, while this is possible with the transparent BSDF.
The maximum number of transparent bounces is controlled separately from other bounces. It is also possible to use probabilistic termination of transparent bounces, which might help rendering many layers of transparency.
Note that while semantically the ray passes through as if no geometry was hit, rendering performance is affected as each transparency step requires executing the shader and tracing a ray.
Objects can be set to be invisible to particular ray types:
- Diffuse reflection
- Glossy reflection
This can be used for example to make an emitting mesh invisible from camera rays. For duplicators visibility is inherited, if the parent object is hidden for some ray types, the children will be hidden for these too.
In terms of performance, using these options is more efficient that using a shader node setup that achieves the same effect. Objects invisible to a certain ray will be skipped in ray traversal already, leading to fewer rays cast and shaders executed.