High quality elliptical texture filtering on GPU

The quality of the available hardware texture filtering, even on state of the art graphics hardware, suffers from several aliasing artifacts, in both spatial and temporal domain. Those artifacts are mostly evident in extreme conditions, such as grazing viewing angles, highly warped texture coordinates, or extreme perspective and become especially annoying when animation is involved. In this paper we introduce a method to perform high quality texture filtering on GPU, based on the theory behind the Elliptical Weighted Average (EWA) filter. Our method uses the underlying anisotropic filtering hardware of the GPU to construct a filter that closely matches the shape and the properties of the EWA filter, offering vast improvements in the quality of texture mapping while maintaining high performance. Targeting real-time applications, we also introduce a novel spatial and temporal sample distribution scheme that distributes samples in space and time, permitting the human eye to perceive a higher image quality, while using less samples on each frame. Those characteristics make our method practical for use in games and other interactive applications. For cases where quality is more important than speed, like GPU renderers and image manipulation programs, we also present an exact implementation of the EWA filter that smartly uses the underlying bilinear filtering hardware to gain a significant speedup.

[1]  Alvy Ray Smith,et al.  A Pixel Is Not A Little Square , A Pixel Is Not A Little Square , A Pixel Is Not A Little Square ! ( And a Voxel is Not a Little Cube ) 1 Technical Memo 6 , 1995 .

[2]  D. Perny,et al.  Perspective mapping of planar textures , 1982, COMG.

[3]  Paul S. Heckbert,et al.  Fundamentals of Texture Mapping and Image Warping , 1989 .

[4]  Hans-Peter Seidel,et al.  Spatio-temporal upsampling on the GPU , 2010, I3D '10.

[5]  Matt Pharr,et al.  Gpu gems 2: programming techniques for high-performance graphics and general-purpose computation , 2005 .

[6]  Mark Segal,et al.  The OpenGL Graphics System: A Specification , 2004 .

[7]  Lee-Sup Kim,et al.  SPAF: sub-texel precision anisotropic filtering , 2001, HWWS '01.

[8]  Joel McCormack,et al.  Feline: fast elliptical lines for anisotropic texture mapping , 1999, SIGGRAPH.

[9]  Marc Levoy,et al.  Synthetic texturing using digital filters , 1980, SIGGRAPH '80.

[10]  Paul S. Heckbert,et al.  Survey of Texture Mapping , 1986, IEEE Computer Graphics and Applications.

[11]  Randima Fernando,et al.  GPU Gems: Programming Techniques, Tips and Tricks for Real-Time Graphics , 2004 .

[12]  Wolfgang Straßer,et al.  Texram: a smart memory for texturing , 1996, IEEE Computer Graphics and Applications.

[13]  Bob Francis,et al.  Silicon Graphics Inc. , 1993 .

[14]  Andrew Lauritzen,et al.  Variance shadow maps , 2006, I3D '06.

[15]  Paul S. Heckbert,et al.  Creating Raster Omnimax Images from Multiple Perspective Views Using the Elliptical Weighted Average Filter , 1986, IEEE Computer Graphics and Applications.

[16]  Franklin C. Crow,et al.  Summed-area tables for texture mapping , 1984, SIGGRAPH.

[17]  Lance Williams,et al.  Pyramidal parametrics , 1983, SIGGRAPH.

[18]  Marc Olano,et al.  LEAN mapping , 2010, I3D '10.

[19]  Brent Burley,et al.  Ptex: Per‐Face Texture Mapping for Production Rendering , 2008, Comput. Graph. Forum.

[20]  Markus Hadwiger,et al.  Fast Third-Order Texture Filtering , 2005 .

[21]  Robert L. Cook,et al.  The Reyes image rendering architecture , 1987, SIGGRAPH.

[22]  Yangli Hector Yee,et al.  A perceptual metric for production testing , 2004, SIGGRAPH '04.

[23]  Zhouchen Lin,et al.  First Order Approximation for Texture Filtering , 2006 .

[24]  Tomas Akenine-Möller,et al.  Real-time rendering, 3rd Edition , 2008 .