Trail-Based Raytracing

When a ray is cast from an emitter, it bounces multiple times around the environment. Data about each bounce is stored in a Trail class.

The number of trails is equal to the largest ray count among:

The amount of bounces in a trail is equal to the largest bounce count among:

For example with ReverbBounceCount=8 and OcclusionBounceCount=4, the trail will consist of 8 bounces. Reverb rays will fire back towards the emitter on every bounce, but occlusion rays will only be cast on the first 4 bounces.

Trails are cached and only updated when primitives or emitters move. This cache is an important optimisation that enables raytracing to run in real time in complex scenes.

There are a few scenarios to be aware of that will clear this cache: