Analytical Calculation of the Solid Angle Subtended by an Arbitrarily Positioned Ellipsoid to a Point Source
Nuclear Instruments and Methods in Physics Research
We present a geometric method for computing an ellipse that subtends the same solid-angle domain as an arbitrarily positioned ellipsoid. With this method we can extend existing analytical solid-angle calculations of ellipses to ellipsoids. Our idea consists of applying a linear transformation on the ellipsoid such that it is transformed into a sphere from which a disk that covers the same solid-angle domain can be computed. We demonstrate that by applying the inverse linear transformation on this disk we obtain an ellipse that subtends the same solid-angle domain as the ellipsoid. We provide a MATLAB implementation of our algorithm and we validate it numerically.
Ellipsoids are often used in rendering applications, for instance as proxies for occluders or as area lights. In these applications, we need to compute the solid angle covered by the ellipsoid in respect to the shading point. However, no closed-form expression was available for this and approximations were used. We were able to solve this problem thanks to our recent research on linear transformations and spherical distributions.
We published this result in the physics journal Nuclear Instruments and Methods in Physics Research because we thought that this result might be interesting for the physics community as well. Indeed, solid angles are used for computing the efficiency of detectors or antennas and many previous results on solid-angle computations were actually published by the physics community. It is somehow amusing to see that video-game research can also contribute to advance other fields!