High Quality Elliptical Texture Filtering on GPU

SlmDnk

Regular
Saw this the other day and thought you guys might find this interesting.

http://www.pmavridis.com/ewa.html

ewateaser3.png


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.

Video: http://graphics.cs.aueb.gr/graphics/media/I3D11_EllipticalFiltering.mp4
Paper: http://www.pmavridis.com/data/I3D11_EllipticalFiltering.pdf
 
From a quick read it seems that method can be applied on current GPU's through a driver update, nice! Now here's hopping they'll add support for all capable hardware and not just the next new shiny product.
 
Wow, very cool! I kinda hopped through the doc, but I'll read it thoroughly this weekend...
 
It looks like a driver can do this through an automatic shader replacement (by replacing all texld with this technique). Of course, there will be performance cost. A game engine which does this manually only on difficult-to-filter surfaces may be a better way to do this.
 
I wish they had generated their reference images using texture filtering in linear colour space.
 
That doesn't fix the brighter lines going out from the centre.
I'm not sure how you would imagine a gamma transform would "fix" that. A black/white checkerboard texture is a completely valid "linear space" texture for filtering. The effect would be minimized with a higher resolution source checkerboard texture since the "bilinear" edge would be relatively smaller in that case.
 
I'm not sure how you would imagine a gamma transform would "fix" that. A black/white checkerboard texture is a completely valid "linear space" texture for filtering.
It's not about whether the texture represents linear values (which isn't an issue with just 0 and 1) but whether the filtering is a linear operation. And the brighter lines show that something, somewhere is not quite linear.

The effect would be minimized with a higher resolution source checkerboard texture since the "bilinear" edge would be relatively smaller in that case.
I don't really know why the effect is there at all. There are equal amounts of black and white along those "edges". The edges should blend into a mid-gray like the rest of the texture.
 
It's not about whether the texture represents linear values (which isn't an issue with just 0 and 1) but whether the filtering is a linear operation.
Right but how could it possibly not be linear here? GPUs don't do any other type of filtering. I just don't see how it could be anything gamma-related here.

I don't really know why the effect is there at all. There are equal amounts of black and white along those "edges". The edges should blend into a mid-gray like the rest of the texture.
Yeah I'm not sure offhand why the effect is there either. Only at one point where the texture sample coordinates are exactly between a while and black part of the checkboard will it be exactly grey here, but I'm not sure where it appears to have a sort of uniform bias towards brighter, unless that's just a visual anomaly of how we perceive it (when in reality there is indeed a fade from a lighter to darker color in there).
 
The bright lines are there because the texture I used is not a perfect checkerboard:
http://graphics.stanford.edu/course...ativistic/demo_files/checkerboard.0.0.0.0.jpg

I found it using google search when doing some early quick tests, but then I kept using it because I found it less boring than a regular checkerboard. Also the bright lines help demonstrate the improvement when adjusting the maximum anisotropy. (but i did not had space to discuss this in the full paper)

Both hardware filtering and the elliptical filtering are in the same color space, so I think the comparison between the two is valid.
 
Back
Top