Filtering After Shading With Stochastic Texture Filtering
Matt Pharr, Bartlomiej Wronski, Marco Salvi, Marcos Fajardo
TL;DR
This work argues that filtering after shading yields more accurate imagery than traditional texture filtering before shading, especially for nonlinear shading contributions. It introduces stochastic texture filtering (STF) as an efficient framework to perform after-shading filtering, with two complementary methods: Filter Reservoir Sampling (FRS) and Filter Importance Sampling (FIS), enabling high-quality filtering for textures stored in compressed or neural representations. The authors demonstrate substantial real-time and offline benefits, including significant rendering-time speedups, improved minification and anisotropic filtering, and viable integration with complex material graphs and novel texture representations. They also discuss practical considerations, noise management via spatiotemporal reconstruction, and avenues for future work such as appearance-driven MIP strategies and broader nonlinear reconstruction filters.
Abstract
2D texture maps and 3D voxel arrays are widely used to add rich detail to the surfaces and volumes of rendered scenes, and filtered texture lookups are integral to producing high-quality imagery. We show that applying the texture filter after evaluating shading generally gives more accurate imagery than filtering textures before BSDF evaluation, as is current practice. These benefits are not merely theoretical, but are apparent in common cases. We demonstrate that practical and efficient filtering after shading is possible through the use of stochastic sampling of texture filters. Stochastic texture filtering offers additional benefits, including efficient implementation of high-quality texture filters and efficient filtering of textures stored in compressed and sparse data structures, including neural representations. We demonstrate applications in both real-time and offline rendering and show that the additional error from stochastic filtering is minimal. We find that this error is handled well by either spatiotemporal denoising or moderate pixel sampling rates.
