Splotches - indirect lighting scene

Dear all,

This might be one of the more common questions on this list, but I feel I have exhausted most of my options and hope some of the more experienced users can point me in the right direction and/or can explain why I’m seeing what I’m seeing.

So the case is a simple ‘box’ of 5x5x5m, with a single, highly directional (2° FWHM) ‘spot’ in the center of the space, aimed UP at a high reflective (100%) ceiling (plastic material) - walls and floors both 20% reflective. On the images you see the small floating black circle which is the luminaire, and the bright white spot on the ceiling where it hits the ceiling. So this is a purely indirect setting where the light on the walls and floor only comes from reflections. For reference, it is a test case for reflections, and I am looking at the numerical values/calculated values in the end, so would prefer to not post-process the image to get rid of the noise.

With that, my assumption is that if I get splotches of light in the render, this would also result in ‘splotchy’ numerical values. So the render serves as a first indication w.r.t. the accuracy of the numerical output and my thinking is to transfer the render settings to the rtrace commands later on for the numerical calculations.

Now what I am noticing:
1. Splotches of light on the walls and floor
2. No splotches of light on the ceiling

So the question is two-fold: 1)how do I get rid of the splotches on the walls and floor and 2) why does the ceiling not have any splotches as with exception of the direct beam, the majority is only lit via reflection.

W.r.t. the second question, I assume the ceiling is better defined as it’s the primary surface hit by the luminaire. So Radiance probably does ‘something’ to make that surface better defined.

W.r.t. the first question, I have of course already tried quite some render settings. After fiddling with some parameters by hand (tweaking -ad, -as, -aa etc.) I decided to give rad a go to determine the settings for me. This resulted in even more severe splotches initially. As I noticed in my earlier tweaking sessions that -ad and -as impacted the splotchiness significantly (as also found in this link), I increased that significantly (-ad to 16k and -as to 8k, following a report by pabt-opto), leading to the below images. As you can see, the walls and floor are still significantly more splotchy than the ceiling.

So, I can of course continue tweaking all the values and increase ad/as even further (went up to 32k so far, which helped, but marginally), but maybe its simply a scene issue…so any insights are more than welcome!

For reference, the rad-generated render options (in alphabetical order) with modified -ad and -as:

-aa 0.075 -ab 2 -ad 16000 -as 8000 -ar 64 -av 0.01 0.01 0.01 -dc 0.75 -dp 2048 -dr 3 -ds 0.02 -dt 0.05 -dj 0.6 -lr 12 -lw 1e-5 -ms 0.062 -ps 5 -pt 0.04 -ss 16 -st 0.01

The reason the walls and floor are splotchy is because they are mostly illuminated by the spot of light on the ceiling, which they must find by sampling a hemisphere of directions at each point. Since the chances of hitting this spot at random are very small, the variance is quite high. You have basically violated one of the main assumptions of the indirect calculation, which is that indirect light comes from everywhere in the room. This rule is NOT violated for ceiling points, however, since the rest of the room’s second-bounce illumination is evenly distributed, and for everywhere but the spot, light arrives on the ceiling after two bounces.

The sensible way to represent this scene in Radiance (or any backwards ray-tracer) is to create a diffuse light source at the spot circle in the ceiling, since this is the only effect of the spotlight in the first place. This source will then be looked to for the direct calculation, and indirect light will once more be evenly distributed. The calculation will be many times faster and the results much cleaner.

If you have some real need to pursue this unusual arrangement for testing purposes or whatever, you could try photon-mapping, which is supported by rad as well, or just continue increasing the -ad parameter until you are happy with the output, at a proportional expense.

You might like to check out the ambient calculation crash course by @John_Mardaljevic


1 Like

Dear Greg,

Thanks for your thorough and clear response (as always)! I knew I must be missing something!

The reason for testing this ‘extreme’ case was actually understanding the material characteristics, so replacing it by a diffuse light source would not help with that.

Just to provide some further background: We had some trouble understanding the simulation results in our earlier simulations with a luminaire mounted on the walls, grazing the ceiling - so actually spreading out the light on the ceiling more, but still not the full room. When changing the specularity of the ceiling, we found quite a big difference with comparable simulations with the software LightTools (forward raytracer). Hence we setup a more extreme test case to first try to understand it ourselves, before reaching out to you guys.

To quantify it a bit, we are measuring ‘horizontal illuminance’ on a grid of points at a certain height beneath the ceiling. The maximum value in the case of a diffuse ceiling reflection is almost below the spot where the beam peak hits the ceiling. Which makes sense considering the diffuse reflection. When changing the specularity to (for example) 50% (which I believe means 50% of the reflected light is still diffusely reflected, and 50% is specular), you would expect the value at that same point to be roughly cut in half (as the diffuse component is half) and that the rest is sent into the space. This is roughly what we found in LightTools, but in Radiance this value became roughly 4-5x lower.

As said, thats a bit of the background on why we were creating this odd setup, to see what would happen in this more controlled case. However, in my enthusiasm to use radiance for all kinds of light-based evaluations apparently I am breaking a few of the assumptions.

Anyway, any additional thoughts on the above struggles are more than welcome, in the mean time I will study photon mapping a bit more. I actually did already look at it, but initially thought that it would support creating images, not the calculation points. But upon further investigation I see there the user guide also mentions rtrace, so will look into that a bit more.

Yes, you should probably be using rtrace in this scenario, and setting -aa 0 to turn off the indirect caching. Photon-mapping might also work better for your tests, though I know less about that module.

Regarding your unexpected specular results, Radiance does apply a Fresnel approximation that affects specularity quite a bit near grazing angles, and I wonder if that is coming into play for your test. This puts more energy into the specular component for zero-roughness (smooth) specular surfaces in adherence to the properties of physical dielectric materials.

Hi Adrie, hi Greg,

as Greg points out, this may indeed be a candidate scenario for using photon mapping, given that you’re indirectly illuminating the entire room via a specular ceiling (at least as I understand it). This would also provide a fairer comparison to LightTools’ forward raytracer, which probably also uses some variant of photon mapping under the hood. And yes, rtrace supports photon mapping too.

I recommend using a global and caustic photon map here; typically you’ll want more caustic than global photons. Since you don’t have any localised caustics, you might actually get away with a relatively low number of photons; try 100k global and 1m caustic for starters and work your way up.

Like most of RADIANCE’s parameters, there’s no “one size fits all”, so you might have to experiment. You may still get splotches in the caustic component, in which case you can either increase the bandwidth you specify with -ap to rpict/rtrace, but at some point you’ll notice bias as darkening towards the edges and corners; in that case you should increase the photon count overall.

Like everything in The RADIANCE Universe, photon mapping comes with a learning curve, and doesn’t always behave as expected. Infact, it can be quite unruly at times. ;^)

Good luck and Best regards,


Thanks Greg and Roland for your support!

Will try to see if I can get some first photon mapping results out, but will have to wait a bit as my machine is currently batch processing quite some simulations…will report back later!