No more Trilinear in the future... just anisotropic

Reverend

Banned
So, while answering emails and browsing this forum, a thought just struck me... it may be a stupid thought but I have a big history of posting such :)

When, if ever, will we see the demise of the options of bilinear and trilinear filtering but just anisotropic filtering? What will this involve on the API side? How possible is this?
 
It's already gone from the Catalyst control panel. "Quality" is an arbitrary term.

Where I see that heading is for applications to intelligently select filtering methods for themselves, and for this option to appropriately control the interaction of default behavior transparently (i.e., not use trilinear when it is not appropriate, but automatically use it or allow the application to specify it when it will offer benefit).
 
even more than that, i really want to see adaptive settings that will work for both aa and af. it would still be important to have force fixed settings options, but for more practical daily use a minimum desired fps setting that controlled filtering an anti-alising is the way to go. maybe sliders for how much you want to favor one over the other. so never actually get rid of bilinear and trilinear, just move them to an "advanced users panel" and let the general population deal with simpler settings.
 
IMO Trilinear should be a given today. It should be full on full trilinear all the time. There should only be an option to maybe switch between Bilinear or Trilinear in teh control panel and that is it. You are either force Bilinear or you force Trilinear. Cards should be powerfull enough that Trilinear should not be a thought in our minds, Trilinear On in every game should be a given.

Anisotropic should be the only filtering method we should have to worry about right now.

With cards as powefull as they are today this could be done, to where trilinear is on at all times and its full trilinear, none of this aggressive, balanced and application crap.
 
I think the aggressive, balanced, application "crap" illustrates that the issue of trilinear is not a given yet. Don't forget, the 9700 and 5800 and higher are not the only cards of their generation in the marketplace, and not likely to be the most numerous. In that vein, they serve the user and should be offered, in theory.

In actuality, I tend to think the "aggressive" setting is "crap", but that evaluation should be based on comparisons to "no aniso" or equivalent performing alternate aniso method settings offering the same general quality, and such an evaluation might change my mind. For the settings collectively, I think the issue is that "application" is called "application", and that name is misleading to the user about the other names. Here is YAL illustrating why I tend to think this is intentional.
 
defiantly demalion, aside from the aggressive stuff, bilinear with anisotropy is a very acceptable option; this holds especially true for the lower end cards. however, i do agree with Brent in the general sense that, if there is no anisotropy being used, trilinear is the only valid option; and i think this should hold true regardless price range.
 
The best image quality I got in my app was using bilinear mipmapping with aniso minfilter and bilinear magfilter. The mipmapping helped with the texture shimmering as you step away from the geometry. Then the mipmaps were filtered to prevent between miplevel pops. The aniso helped with walls that were nearly parallel to the view once you step back from geometry. The bilinear magfilter then helped to blur the texture when you were close to the geometry, so you wouldn't see pixelated textures. This setup caused constant image quality throughout the player's movements in the scene. No pops, shimmering, etc. I suppose thru driver ctrl panel you could set bilinear mode, aniso and mipmapping iq to reproduce this. Out of all these filtering modes the mipmapping was the greatest contributor to better iq with bilinear following closely then aniso last. For clustered environments you could get rid of mipmaps and instead use bilinear with aniso since texture shimmering doesn't come into effect until far away from geometry, though larger sized textures will shimmer sooner as they're mapped onto smaller geometry.
 
I have never honestly seen much of a quality difference between bilinear and trilinear. It used to be something I'd just disable when having performance problems on my old R8500 (albeit it was rarely necessary). Maybe I just don't know what to look for, but the difference between AF and no AF is huge. Meanwhile the difference between bi and trilinear seems pretty small. Anyway, now I just use performance AF on my R9700, which as I recall sets bilinear anyway?
 
Hmm, maybe I didn't make it clear from the start... what I didn't mean was drivers tweaking... I meant what is the possibility of a total removal of bilin/trilin and go straight to ani when a programmer codes the filtering algorithm.
 
Tahir said:
Aniso without bilinear or trilinear?
Can you do that? (Is that what you meant even??)..
There are three different filters to worry about when texture mapping: Min, mag and mip. The mag filter tells the hardware what to do when it needs to magnify a texture (i.e. the texture is too small for the polygon). The min filter tells the hardware what to do during minification (i.e. mipmapping). The mip filter tells the hardware how to combine different mipmap levels.

The possible filters for min and mag are point (no interpolation), linear (linear interpolation between texels) and anisotropic. The possible filters for mip are point and linear. When people talk about bilinear, they mean mag = min = linear and mip = point. Trilinear means mag = min = linear and mip = linear.

Now, anisotropic filtering just means that the min and mag filters are set to anisotropic, the mip filter can be either point or linear. When the mip filter is point, people often call that "bilinear anisotropic" and when it's linear they say "trilinear anisotropic". Not really 100% accurate terminology, but we can make sense of it.
 
OpenGL guy said:
The mag filter tells the hardware what to do when it needs to magnify a texture (i.e. the texture is too small for the polygon).
It would be better to say that the mag filter is applied when the texture pixels are larger than screen pixels. For example, whenever you notice a texture look blurred and blocky, you're probably seeing the mag filter applied. Said one more time, the mag filter is applied when the base texture isn't detailed enough.

Usually, on today's hardware, the mag filter is the same as the min filter. But, there are other ways to do things. One way to deal with mag-filtered textures differently is to use a bicubic filtering method. This can make very low-resolution textures actually look decent in places that are meant to be low resolution (such as for sky textures, or most lightmaps).
 
Reverend said:
OpenGL guy, thanks for the summarizing my long winded article :)

Tahir's question is basically my question in lesser words - what and how is this possible, if it is possible?
On the subject of anisotropic without bilinear or trilinear, anisotropic filtering typically takes multiple bilinear samples within a single pixel. If point sampling was selected, it would just take multiple point samples within a single pixel. I can't think of any particularly good reason to do this, but I don't see why it can't be done.
 
Reverend said:
So, while answering emails and browsing this forum, a thought just struck me... it may be a stupid thought but I have a big history of posting such :)

When, if ever, will we see the demise of the options of bilinear and trilinear filtering but just anisotropic filtering? What will this involve on the API side? How possible is this?

Rev, you may want to clarify your idea - exactly what do you mean by 'anisotropic instead of bilinear/trilinear'? btw, you may want to use the terminology OGL guy just described so conveniently.

if you have in mind sampling anisotropicly from just a single texture LOD then it'd be a plain step back in quality - presently "trilinear-aniso" implementations do that but with a subsequent linear blend between LODs, and this is a gross approximation of the phenomenon, but if you remove the second step you are left with an even more gross approximation.

if you mean that isotropic sampling option should be dropped (i.e. all sampling per LOD should be always anisotropic) then that could be ok, but as HW generations from now would probably still have circuitry for bilinear isotropic sampling then what you suggest would mean that IHV would just stop exposing the bilinear sampling caps of their HW and API producers drop the linear min/mag filters from the specs - why, better leave that decision to the developers, no?
 
OpenGL guy said:
There are three different filters to worry about when texture mapping: Min, mag and mip.

What you describe is the D3D model of setting things.

OpenGL is slightly different:
1.) Min & Mip are set as a single state
2.) Anisotropic is not available as a Min or Mag filter but can be set separately. This way one can set point sampling together with anisotropic and according to the extension text there is hardware that actually supports that combination.
 
Hyp-X said:
OpenGL guy said:
There are three different filters to worry about when texture mapping: Min, mag and mip.

What you describe is the D3D model of setting things.

OpenGL is slightly different:
1.) Min & Mip are set as a single state
2.) Anisotropic is not available as a Min or Mag filter but can be set separately. This way one can set point sampling together with anisotropic and according to the extension text there is hardware that actually supports that combination.
My GF3 does.
 
And so does my GF2 IIRC.

Chalnoth said:
Usually, on today's hardware, the mag filter is the same as the min filter.
Actually, most (all?) hardware have the min and mag filters decoupled. That's a requirement for OGL. Most software set them equal though.
 
Why doesn't anyone have any support for Bicubic filtering? Based on what I can see from enlarging pictures in Photoshop using Bilinear versus Bicubic, the Bicubic setting would dramatically improve skyboxes and other very large textures.
 
Back
Top