Different approach to aniso filtering?

Reverend

Banned
Here's an email from Dean of Croteam. We talked about aniso and I commented that 128-degree aniso really shouldn't be an option now :

As for 128-degree ... you think it's too much? Well, think about it again, but take different approach:
I don't think either that any present (and future!) boards will ever have a power to do real "brute force" 128-degree anisotropic filtering.
But ... Instead of using GPU to do the anisotropic filtering, let's use memory instead. Be fair, nowadays boards all have 128MB of RAM which is a bit of overkill, and will be overkill for a year or so. (Well, just when we start thinking that 128MB is "just enough", 256MB boards will come out, right?:)

Back to the topic...
So, instead of texture having isotropic mipmaps (which consumes 33% more memory), texture could have anisotropic mipmaps (75% extra memory instead of 33% - not much for an 128mb board!). So, when you have texture that is 256x256, you don't store just 128x128, 64x64, 32x32 ... mipmaps, but also 256x128, 256x64, 256x32 ... and 128x256, 64x256, 32x256 ... and so on (and 128x64, x32, x16 and 64x32 ... ok, you got the picture:).
And there you have it - instead of GPU fetching extra texels to do an anisotropy, these are all already nicely interpolated in anisotropic mipmaps and you do just simple bilinear filtering on them. Voila!

He also said this may not for 45-degree slopes (like the 8500 now).

Comments?
 
Isn't what Dean described almost exactly what rip-mapping is? With the possible exception that he is suggesteing that the application developers / artists supply the rip-maps, instead of the hardware / drivers auto generating them?
 
Rip mapping shouldn't have a problem with 45 degree slopes. It will only work optimally for veiws along the u or v axes of a texture though.
 
Anisotropy is a ratio, since in relation to it you also often want to talk about the angle of a surface which is expressed in degrees it is not a good idea to mix the terms up.

Ripmap's combined with standard bi/tri linear filtering is simply not an option IMO ... it has too many artifacts. You could use em so you could lower the average number of texels you would need by just using them when possible, but that would make the filtering much more complex.
 
Reverend said:
Here's an email from Dean of Croteam. We talked about aniso and I commented that 128-degree aniso really shouldn't be an option now

I guess you mean 16X anisotropy with mipmap interpolation, or 32X without, or 128tap, not "128-degree". 128X anisotropy would be up to 1024 texels per pixel using trilinear (!).
 
Hey, and 8500 works at 45 degree texture angles, it just doesn't work with 45 degree polygon angles. take the surface normal of a surface, and project that onto the screen. measure the angle of this with respect to the screen axes. If this projection is close to 45 degrees from the screen x axis, then the 8500 aniso is weakened or absent. If it is close to the x or y axis, the aniso is full.

You can stand still in a fps and spin your character in circles moving the texture axes around and the aniso works. This is where ripmapping would have a problem, and the 8500 isn't having a problem with this.
 
Back
Top