Filtering color mapped textures and surfaces

Eric Heitz, Derek Nowrouzezahrai, Pierre Poulin, Fabrice Neyret
2013 Proceedings of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games - I3D '13  
Figure 1 : An anti-aliased procedural texture produced by applying a color map to noise (left), introducing structure that cannot be generated using only the noise function. Meshes with tessellated color mapped procedural microsurface details. The color map is applied to the microsurface heights (middle) and orientations (right) and filtered appropriately according to view-dependent masking and shading effects. Abstract Color map textures applied directly to surfaces, to geometric microsurface
more » ... etails, or to procedural functions (such as noise), are commonly used to enhance visual detail. Their simplicity and ability to mimic a wide range of realistic appearances have led to their adoption in many rendering problems. As with any textured or geometric detail, proper filtering is needed to reduce aliasing when viewed across a range of distances, but accurate and efficient color map filtering remains an open problem for several reasons: color maps are complex non-linear functions, especially when mapped through procedural noise and/or geometry-dependent functions, and the effects of perspective and masking further complicate the filtering over a pixel's footprint. We accurately solve this problem by computing and sampling from specialized filtering distributions on-thefly, yielding very fast performance. We filter color map textures applied to (macro-scale) surfaces, as well as color maps applied according to (micro-scale) geometric details. We introduce a novel representation of a (potentially modulated) color map's distribution over pixel footprints using Gaussian statistics and, in the more complex case of high-resolution color mapped microsurface details, our filtering is view-and light-dependent, and capable of correctly handling masking and occlusion effects. Our results match ground truth and our solution is well suited to real-time applications, requires only a few lines of shader code (provided in supplemental material), is high performance, and has a negligible memory footprint.
doi:10.1145/2448196.2448217 dblp:conf/si3d/HeitzNPN13 fatcat:rd62i5utcjbqdgaq5xp4hraqfq