This experiment was developed while I was creating the hotel crime scene, to test an idea sparkled by some comments on news.povray.org. Someone complained that my ceiling spots lighting was too perfect, and someone else said that what I needed was volumetric lighting, but that POV-Ray doesn’t supports this type of lights (a la IES)…
Then I figured out that it would be easier to model a real spot reflector, and let POV-Ray photons to do their job. Until now, I always used “faked spots”, without a real hole on the ceiling, just with a spotlight placed below the ceiling plane. So, I quickly fired up Wings3D, and in some minutes I had modelled a reflector from a half sphere:
I also did some more alternative designs, with different facet patterns, which obtained different results (see on the tests below an example with another reflector). Then with Chief Architect I modelled a simple room with simple furniture, a door and a lamp, to test better the photons against the scale of the hotel scene. The result can be seen on the main image illustrating this page: the photons paint a nice pattern of reflected light on the walls and furniture, very similar to the real one.
The big problem with this technique is, specially for the hotel scene, that it is too slow to render. For sharp caustics you have to shoot many photons, and with the number of lights on the hotel scene, it was really critical… but again someone at the newsgroups had an idea: map a light pattern on a sphere around the light source, to simulate the photons. To put in practice this idea, I copied the original test scene and modified it to generate the following map:
To use this map, I copied again the original test scene, and deleted all the photons code, then placed a sphere with the map around the spot light. The result was very promising:
…but it has an obvious and unsolvable problem that I didn’t anticipate: it cannot be used with area lights to get soft shadows, because the “faked photons” get softened too… and, being so close to the light source, the problem is really bad because they almost disappear. But well, you know what happens with these experiments… sometimes they fail.