Light guide: inner reflection


I’m sorry,
I was posting this because I’m confused from the question of franz to Jonathan_Dent about unlimited bounces and the iteration limit: what I understand is that after 100 iteration (… and not bounces?) the path will end.
But what is the difference between iteration and bounce?

Thank you,


Good question :slight_smile:

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:

  1. Raise the limit of 100 iterations in the path tracing loop to a much higher value, maybe 1000 or 10000.
  2. 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).
  3. Allow disabling the reached max number of iterations warning when we don’t care about it.

Hope that clarifies things.


Yes :sunny:
What surprise me is that images like this were done with 100 iterations limits… I got interested in Appleseed because of this image!
I think 1000 should suffice (…of course any limits is a boundary any user will complain… as I’m doing here…).

This is the image I try to render:

I use this kind of images to practice with materials and render settings (normally I do standard architecture work).

In Appleseed I like the simplicity of the Blender addon experience and the light diffusion that I find soft and very accurate.

Nice day,


That looks super interesting to render!

How was this image rendered?


It was actually rendered with only 50 bounces. You can download this scene from and render it by yourself.


@rickyx Great Cornell-box type scene for complex lightpaths. Cycles (or any other path tracer) would be really struggling on this one. SPPM is the best for really difficult lighting situations where even bidirectional renderer fail (specular reflections/refractions of caustics).


In fact is quite a bit of time that I’m going on with this scene…

Of course I have test for cycles and others…

I’ll try for sure to re-render the jar :wink:


Ahah, 2006, awesome man. Maybe you’ve heard about toxic render?

Also, you haven’t answered, how was the image above rendered? Is it appleseed with path tracing, or another renderer?

Did you try SPPM?


The image above is Appleseed: I ask permission before posting images from other engines :smiley:
I rendered with the parameters posted above.


Cool, so that’s an SPPM render then. Weird that the glass tube isn’t conducting light as well as in my test.

Did you compare my scene and yours?

What’s the IOR of the glass tubes?


The Max fiber scene converted to Blender & Mitsuba
SPPM integrator, 2.5x10^9 photons emitted, 100 bounces max. path depth


Interesting! It’s always instructive to render the same scene in different engines. I’m curious as to why the red spot is more focus in Mitsuba than in appleseed. Are the IOR and material settings identical?


Sorry, the scene is not completely identical. I haven’t spent much time on it to make them identical. I was more interested which render method works well for this type of scene and Mitsuba has a large selection to choose from.
The spread of the spot depends on the marginal ray angle at the fiber entrance and therefore on the light source( I used a spot light), IORs and fiber acceptance angle, Mitsuba for instance has a a collimated light source and if you use it then the spot is more tightly concentrated.

The Mitsuba Blender file is attached if anyone is interested. (384.5 KB)


Laser light, right?


No, laser light is indeed collimated but this is just a consequence of coherent wave propagation. Artistic render engines do not normally model coherent wave effects or polarization. They use simpler ray propagation models.


@Mango3 thanks for the info!

In fact there’s a collimated area light in appleseed (cone_edf). I’ll give it a try this week-end.


The ior is 1.8. I don’t know if light transport is better with lower ior or not…

The following image comes out from cycles.


Higher IOR values are more robust against light leakage in bends if you have curved pipes for instance.
Inside the tube light is transported by total internal reflection and the critical ray angle is set by the ratio of the refractive indices of air n2 (about 1) and tube material n1 (Snell’s Law: tc=arcsin(n2/n1)). Your choice of 1.8 is already quite high for a glass, this would correspond to a LaF9 (Lanthan Fluorid) glass. Typical refractive index values for transparent polymers (PMMA) or standard window glass are 1.49 and 1.52, respectively.


I’ll post an image with ior ~1.5 as suggested by Mango3.

No… I was totally caught by Winosi :wink: cooking eggs on my laptop.

Here is the result of the same render that comes out from LuxCoreRender:

I set up light depth to 1000. (LuxCoreRender/LuxRender has a Laser option but I don’t now the math model…).

Attached you can download the appleseed source blender scene: (1.0 MB)

Unfortunately I do not have Max so I can’t open the fiber example: I opened fiber.appleseed with a text editor but I can’ really link all the relevant parameters with blender Appleseed interface.


Thanks, will give it a try!

You could open fiber.appleseed with instead and render it there; also much easier to inspect the parameters…