Nonsingular Point Light Attenuation

The Amazon Lumberyard Bistro scene rendered using () virtual point lights with no clamping and () the simplified virtual spherical lights, approximated using point lights with radius and the nonsingular point light attenuation function. Notice that the illumination peaks of virtual point lights are eliminated using the nonsingular attenuation function.

Abstract

Point lights with an inverse-square attenuation function are commonly used in computer graphics. We present an alternative formulation of point light attenuation that treats point lights as simplified forms of spherical lights. This eliminates the singularity of the inverse-square light attenuation function and makes it easier to work with point lights in practice. We also present how the typical ad hoc modifications of the inverse-square formula can be improved based on our formulation.

Notes

Here is a simplified notation of the attenuation function f(d)), where d is the distance from the light source and r is the radius parameter of the light:

This formula is mathematically identical to the one in my talk, but it looks simpler and it has better numerical properties, so I would recommend using this version. See the talk for the derivation of the original attenuation function. Going from the equation in the talk to the version above just involves some algebraic modifications.

As a somewhat interesting observation, note that simply omitting the r2 term inside the squareroot leads to (my version of) the common ad hoc solution.

Many thanks to Yuki Ozawa and Yuki Ito for discovering that the attenuation function in my talk can be written in this simpler form that leads to better numerical accuracy with increasing d.

Presentation Video

SIGGRAPH 2020 Talk.

Publications