24
Views
0
CrossRef citations to date
0
Altmetric
Original Article

Subtractive Shadows: A Flexible Framework for Shadow Level of Detail

&
Pages 45-56 | Published online: 30 Jan 2011
 

Abstract

We explore the implications of reversing the process of shadow computation for real-time applications that model complex reflectance and lighting (such as that specified by an environment map). Instead of adding illumination contributions at each pixel across various lights, we compute the complete, unshadowed local illumination at each pixel using approximations, then subtract the lighting contribution from each light for which the pixel is in shadow. This provides flexible level of detail for shadow computation in ways that standard additive shadows do not, such as permitting the use of fast methods for accurate direct illumination combined with a small number of shadow-casting lights, and allowing for downsampled shadows to reduce fill cost. This technique preserves that portion of the scene with the greatest visual importance—the direct illumination—and allows shadows to be presented with lower fidelity in exchange for improvements in speed. With subtractive shadows, we are able to interactively manipulate and render arbitrary BRDFs and environment maps applied to complex, dynamic scenes with shadows, achieving in real time effects that previously required offline computation or preprocessing.

Reprints and Corporate Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

To request a reprint or corporate permissions for this article, please click on the relevant link below:

Academic Permissions

Please note: Selecting permissions does not provide access to the full text of the article, please see our help page How do I view content?

Obtain permissions instantly via Rightslink by clicking on the button below:

If you are unable to obtain permissions via Rightslink, please complete and submit this Permissions form. For more information, please visit our Permissions help page.