In a first approximation, they are the same thing: bounce is a user-visible term and iteration is an internal one.
In more details:
What we call bounces in appleseed are what you intuitively think of bounces: light reflecting off surfaces. So a light path with one bounce is a light path connecting a light source and the camera via a single reflection off the surface of an object.
appleseed is limited to 100 bounces per path. This limits apply in all cases: when tracing paths from the camera (unidirectional path tracing) and when tracing paths from the light sources (photon tracing).
The term iterations is internal to appleseed. Basically, there is a protection inside the path tracing loop in appleseed that prevents it from iterating more than 100 times. When this limit is reached, the loop is terminated and a warning is displayed.
What I think we should do is this:
- Raise the limit of 100 iterations in the path tracing loop to a much higher value, maybe 1000 or 10000.
- Lift the restriction of 100 bounces when tracing photons, if possible. It would still be limited by the maximum number of iterations (i.e. 1000 or 10000).
- Allow disabling the
reached max number of iterations warning when we don’t care about it.
Hope that clarifies things.