Why set windows as illum / mkillum instead of glass?

In chapter 1 of Rendering with Radiance, it walks through a scene with a window. Initially the window is defined only using a glass material. The book explains that the window does not seem to illuminate the room, and recommends changing the window into an illum affected by winxmit.cal and skyfunc.

Why is it necessary to change it from a glass material to an illum? Why can’t we just leave it as a glass material, and let the light rays pass through the glass and go into the room?

To test this, I re-rendered it with QUALITY=HIGH and left the window as glass, instead of an illum. You can see the results below. Image on the left uses an illum (srcwindow.rad), and image on the right is plain glass (window.rad). Although the images are clearly different, on the right I do see a faint, blurry shadow that is potentially caused by light passing through the glass window. But if light is already passing through the window naturally, why do we need to change the window to an illum material?

The tutorial then modifies the exterior to have a ground plane and a mirrored building instead of an infinite ground and sky. It suggests that treating the window as glass, and using mkillum on the glass should be visually equivalent, except that mkillum is more efficient (it additionally suggests that if QUALITY=HIGH, then interreflection calculation will be enabled and the solar patch will also be considered). So I rendered both cases with QUALITY=HIGH, but as you can see below, the results are not the same. Left is with mkillum, and right is with regular glass.

Why is there a difference, and which is more accurate?

As a bonus question, the book suggests passing -av 18 18 18 to mkillum. Why is 18 chosen? The results of gensky say that the ground ambient level is 14.6.

Apologies for the beginner questions, and if I have missed something obvious :slight_smile:

While these comparisons are interesting, you are expecting far too much of the introductory tutorial. Its purpose is to illustrate some of the methods in Radiance without going into too much detail. There is plenty of detail in the rest of the book!

Nevertheless, I can offer a few insights to what’s going on, since you asked.

Generally speaking, you can get more accurate results via brute force at the expense of calculation time. The illum surface on the window avoids the need for an interreflection (“ambient”) calculation, for example. Similarly, using mkillum can speed up the rendering time overall compared with straight ray tracing, although the latter is probably more accurate. (To improve the accuracy of mkillum in this case, you could add “@mkillum c=d” to your input file to get a color distribution to override the default neutral window output.)

At the time the book was written (1998 or so), I would not have suggested running this first model with interreflections, so as not to discourage new users with respect to runtime. Nowadays, it hardly makes a difference since computers are about 1000 times faster.

Thanks very much for your reply, Greg! The impression I get from your reply is that the images on the right (brute force) are more accurate, however the mkillum provides an approximation without needing to do interreflection calculations.

I will keep on reading and hopefully concepts get clearer for me to understand :slight_smile: