Forum: Poser - OFFICIAL


Subject: How do I make a surface a light?

Pagrin opened this issue on Jun 19, 2007 · 107 posts


BagginsFrodo posted Thu, 21 June 2007 at 10:07 AM

Hello people - This is BagginsBill. I created another account so I can talk without bumping my post count as BagginsBill. :rolleyes:

I sent this as a site mail to jonthecelt, and suggested he could post this here, but either Jon didn't read it, or didn't feel he should post it. So now I'm posting it.


It is absolutely correct that when using an infinite light you are probably doing so because you're simulating a very distant light source such as the sun or moon. Such sources do obey the inverse square law but they are so very distant that over the small volume typically encompassed by a Poser scene, the amount of light is effectively a constant.

Nevertheless, for an infinite light it is possible you'd want to do this, with a slight twist that I did not address in the shader. Suppose you have a ceiling with dozens of small lights, like recessed lighting, or perhaps many flourescent lights spread over a large area. A proper and accurate simulation would require that you place a spot or point light up there to model each and every one of them.

Or - you can cheat. Use an infinite light pointing straight down and put some fall off on it. For the falloff origin (Light XYZ position) you LIE and put in a value that is in directly over the center of the ceiling, maybe 10 to 40 feet above the actual ceiling. This will modulate the light intensity so that things that are near the ceiling will be brighter than things near the floor.

We're cheating anyway so it is perfectly reasonable to accept that this is not physically accurate, but it is certainly MORE accurate than not doing any falloff at all.

One thing to note on this subject. A light source that is an infinite plane does not obey the inverse square law. Rather the falloff is inverse linear, 1 / R, where R is the distance to the nearest point on the plane.

Now a ceiling with hundreds of individual lights is not a point source (K / Power(R, 2)) nor is it an infinite plane (K / R), but something in between (K / Power(R, x)) where x is more than 1 and less than 2. It would be very reasonable to change the shader to have an exponent parameter and compute the linear ratio (instead of the square ratio) and then raise that ratio to the specified power. This would provide a very easy means to approximate a bounded planar light source such as a ceiling full of lights. More expensive renderers or some free renderers (such as POVRAY) typically have such light sources built in and they are called "area" lights.

Again, this would only be an approximation, but the level of inaccuracy may be sufficiently small, and it is certainly better than nothing. The few times I've tried to use 16 point lights to do this right, Poser slowed to a crawl.