Geforce FX Bilinear Anisotropic Filtering Question ??

Bigus Dickus said:
A pretty sad picture, but I can't think of a better explanation.
I can.
I just ran my aniso tunnel application and found that I'm guilty of doing the same 'trick' - unintentionally ;)
There's an aniso level slider and a LOD bias slider. Moving the first to the right increases texture sharpness, the second decreases texture sharpness. Simple reason for doing so: it reflects the numbers used.
It may be the same in the driver panel.

I'm not defending NVidia for their poor labelling - the German translation is rather funny. "Schwelle für Kernverlangsamung" sounds more like you're running a nuclear plant :D
 
That mystery could be solved somehow if someone would make a side by side comparison with your utility using:

FX/Performance Balanced/LOD@ 0
FX/Performance Aggresive/LOD@ -1.0

If those turn out identical, then I'd say that Aggressive is nothing else but Balanced/LOD +1.0.
 
They won't be identical. A LOD shift would also change the inner rings, but they're identical in all three modes.
 
Yes, nam_ng definitely drew some incredibly inaccurate conclusions from that screenshot.

As for the "square," note that this is projected onto a curved surface. When looking at a flat surface, the same artifact looks hyperbolic in nature. I haven't checked the math, but it seems somewhat logical that a hyperbola mapped onto a sphere would generate a square shape, which I find rather interesting.

Since the aniso level calcualtions require a calculation of sqrt(x^2 + y^2), or an approximation of this calculation, it looks like the hyperbolic shape could be generated by instead just taking sqrt(|x^2 - y^2|), if I am remembering my conic sections correctly. It's not terribly enlightening, I suppose, but I really do wonder what the full motivation behind implementing such a thing is.
 
Chalnoth, if indeed the Geforce 3/4/FX's (FX according to some people who claimed to have seen it) AF IQ looks better than the R300's on paper then why does it look like crap compared to the R300's in games? I have yet seen shimmering on my R300, then again I don't run with an aggressively low LOD. :)
My mipmap quality is set to quality and AF to 128 tap.

It just looks sharper on my R300.

I realise that paper quality != real life but that still doesn't answer my question does it? ;)
 
Chalnoth said:
As for the "square," note that this is projected onto a curved surface. When looking at a flat surface, the same artifact looks hyperbolic in nature.
I don't think this can be a function without a discontinuity because the instantaneous derivative of the function at 45 degrees is clearly extremely large with respect to the surrounding area.
 
K.I.L.E.R said:
Chalnoth, if indeed the Geforce 3/4/FX's (FX according to some people who claimed to have seen it) AF IQ looks better than the R300's on paper then why does it look like crap compared to the R300's in games? I have yet seen shimmering on my R300, then again I don't run with an aggressively low LOD. :)
My mipmap quality is set to quality and AF to 128 tap.

It just looks sharper on my R300.

I realise that paper quality != real life but that still doesn't answer my question does it? ;)

Though I cannot account for the R300, I do notice shimmer and a deffinate mip map boundry on my Radeon 8500 w/ aniso turned on. I dont notice either of these on my friends GF4 4200...but obviously his is slightly slower (only slightly).
 
Both R300 and GFFX are "cheating" when it comes to AF.

I know if you asked them they'd talk about performence/quality/transistor-count trade-offs.

The transistor-count tradeoff is what describes the R300 the best.
The R200 only used texture derivatives vertically and horizontally now with the R300 they added 45° and 135° to the calculations.
This causes the R300 to calculate perfect anisotropy at 0°, 45°, 90°, 135° angles.
But between these angles the level of anisotropy drops down to as low as approximately 2x (at 22.5°, 67.5°).
It's much better than with R200 where it dropped down as low as no anisotropy.
Because of taking only fixed angles the angle of the anisotopy is not calculated precisely enough - that's what causes aliasing.

The GF3/GF4 has much more precise anisotropic calculation - up to 4x.
At 8x it has a strange looking artifact that shows some similarities to the GFFX balanced/aggressive modes.
The interesing thing in balanced/aggressive modes that they do not seem to cap the aniso level (like the R300 at 22.5°), the do reach the advertised level of aniso - only much farther that they supposed to do.
For example (not exact numbers) on surfaces with 1:4 ratio it reaches only 2x aniso but it reaches 4x on surfaces with 1:16.
In other words the aniso level is scaled.
The two modes looks fundamentally the same with different scaling levels.
It's highly likely that the scaling level can be set in the driver, which raises some worries about future driver "optimizations" (the IQ should be checked on every new driver!).
Another thing the balanced/aggressive modes do is reduced trilinear overlapping - this is the one optimization with the least impact on IQ, but notice that even the overlap area is tuneable.

So R300 is cheating in rotations around Z, while the GFFX cheats the other way around.
The R300 calculates the direction of anisotropy less precisely.
The GFFX reduces the trilinear overlapping.
And the R300 supports 16x AF.
There will never ever will be an apples-to-apples comparsion between the two cards!
For example comparing R300 "quality" with GFFX "balanced" there are obvious areas where the R300 is better (horizontal/vertical/45° close/midrange), as there are areas where the GFFX is better (at 22.5°).
 
Knocking the mipmap level preferance down to quality removes much of the texture aliasing on the 8500s aniso, I'd be suprised if it was still there in the trilinear mode of the r300
 
Bambers said:
Knocking the mipmap level preferance down to quality removes much of the texture aliasing on the 8500s aniso, I'd be suprised if it was still there in the trilinear mode of the r300

I dont notice it at all, even in NWN, with R300 Quality, compared to my older 8500 where plain trilinear looked better than aniso in that title.
 
Dio said:
Chalnoth said:
As for the "square," note that this is projected onto a curved surface. When looking at a flat surface, the same artifact looks hyperbolic in nature.
I don't think this can be a function without a discontinuity because the instantaneous derivative of the function at 45 degrees is clearly extremely large with respect to the surrounding area.
Notice the need for an absolute value sign inside the square root.
 
But the function inside the abs is continuous around 0, so the abs just acts as a mirror - surely?
 
Dio said:
But the function inside the abs is continuous around 0, so the abs just acts as a mirror - surely?
Correct, when the y component exceeds the value of the x component, and vice versa. This should happen at 45 degrees on that shot.
 
Dio said:
Still looks like a discontinuity to me <shrug>
The derivative is certainly discontinuous. However, the derivative of Chalnoth's function has a discontinuity when x = y: d/dx = x/sqrt(|x^2 - y^2|). This doesn't mean that Chalnoth's formula is correct, but that it at least meets one requirement.
 
Crusher said:
You know, if someone would just take a screenshot of the program being run in "plane" mode instead of "tunnel" mode (as I requested in this thread: http://www.beyond3d.com/forum/viewtopic.php?t=4030&start=120), we'd have the answer to this already.
Well, I really don't feel like posting the shot. But, as I stated, when viewed on a flat surface (such as in the "tunnel" mode), the near MIP map boundaries look hyperbolic in nature. This is the whole reason for my feeling that this is what's going on. It isn't certain, of course, but it makes the most sense (least change in math from the "normal" calculation).

But I'm still very curious as to why the GeForces are doing this at all. Regardless of what calculation is done, it will still require quite a bit more processor power to figure out the final degree of anisotropy than when only one type of calculation is used for the entire screen. When using trilinear filtering and "application" (or just when using a GeForce4), the "artifact" cannot lead to that much of an increase in performance, as with it, the second MIP map is sampled somewhat sooner, but without it, only the first MIP map would be sampled. Of course, it does lead to a performance increase in the "balanced" and "aggressive" modes, but I wouldn't ever use those anyway, and this artifact has been visible on the GeForce4, so I really am confused as to why it's there.
 
Back
Top