State of the Graphics Industry Rant

I don't care if it is exactly like the nvidia implementation, I only care that it does or does not do anisotropic filtering in cases when the math dictates it should. If, as has been stated, it reduces its max level of anisotropy as the texture rotates, eventully not doing anisotropic but isotropic filtering, there's no semantics in the world that can convince me that it is doing whatever you want to call it correctly.

Simply because nvidia and ATI call their anisotropic filtering by different names does not negate the fact that the 8500 does not enlongate the sample pattern when the texture is rotated in a particular direction. Whether you call it 8x meaning it will sample 8x more in one direction, or 64x meaning it takes 64 texels total, or whether you call it "jack sits on his hat and makes a spectacular crap" it makes no difference. A rose by any other name is still a rose.

In plain english, if it does not perform the task (sampling the texture in an elongated fashion, i.e. anisotropically) under the circumstances it should, it is not correct.

my disagreement is that there is any objective justification that your expectation is exclusively the "completely correct" way.
What if I told you they were not my expectation, but somebody elses entirely, and dictated by lengthy theorems and derivations?

http://home.swipnet.se/~w-12597/3dxtc/articles/anisotropic.htm
http://www.beyond3d.com/articles/Anisotropic/index1.php
http://www.etestinglabs.com/bi/cont2000/200002/qual2k07.asp
 
I don't care if it is exactly like the nvidia implementation, I only care that it does or does not do anisotropic filtering in cases when the math dictates it should.

Does "the math" dictate that a texture with alpha transparency requires antialiasing? Does this mean that multisampling and fragment AA is not "correct" full scene AA?
 
Joe DeFuria said:
Because the "multisampling" and "fragment" implementations of AA GeForce and Parhelia respectively do not antialias every pixel in every case for a given scene, it would seem that they do not live up to your criteria of being "correct" antialiasing solutions.

I consider them all "correct". Just different, each with its own set of performance / quailty trade-offs. Same as the anisotropic solutions with GeForce and Radeon 8500.

Heh, finally something you guys have said that I'd like to comment on...

Anyway, here's my idea of this issue:

Multisampling is great, for the simple reason that its drawbacks are both predictable and avoidable.

The Parhelia's FAA is flawed. I do have doubts that it is possible to properly detect all edges with an FAA-like algorithm. If Matrox solves the problems, more power to them, but it is still flawed in its current implementation.
 
Multisampling is great...The Parhelia's FAA is flawed.

I disagree. From a pure quality / "correctness" standpoint:

Supersampling is great, because it has no drawbacks so nothing has to be avoided. Everything gets AA.

Multisampling is OK...it takes care of most (all?) edges, but not textures. I don't care how much "filtering" you do on textures, AA applied on top of them gives better quality result especially with motion.

Matrox's fragment is OK...the edges it does take care of it does better than other current mutisampling implementations (except perhaps 9700 6X multisampling), but it does have some drawbacks in terms of broad applicability.

I don't see any of them as "flawed". Just different tradeoffs when you throw performance into the equation.
 
Joe DeFuria said:
Heh....nothing gets me in "heat" more than someone repeatedly failing to have demonstrated to "see my point", after having repeated it several times. (Why I go on repeating it is another question altogether.)

I must find an emoticon for "bangs head against the wall..."

:LOL:

banghead.gif


:LOL:
 
Joe DeFuria said:
Supersampling is great, because it has no drawbacks so nothing has to be avoided. Everything gets AA.

Supersampling is also essentially dead, as a consumer-level FSAA algorithm enabled in the drivers (Yes, there are still cards coming out with it enabled, but the 9700 should be a hint: It won't be long before supersampling won't be an option anymore...it's already not an option on any high-end consumer video cards).
 
Does "the math" dictate that a texture with alpha transparency requires antialiasing? Does this mean that multisampling and fragment AA is not "correct" full scene AA

By definition, multisampling is not full scene antialiasing, so its like asking if an orange makes good apple juice.
 
Multisampling is great, for the simple reason that its drawbacks are both predictable and avoidable.

Oh, and one other thing...

Radeon 8500's aniso is certainly predictable. And if you claim that multisamplings "drawbacks" are avoidable (doesn't antialias textures, that is it's true drawback compared to supersampling), then I'll say Radeon's "drawbacks" are also avoidable. ;)
 
Joe DeFuria said:
then I'll say Radeon's "drawbacks" are also avoidable. ;)

Okay, sure.

Just make a game that has only horizontal/vertical surfaces, then don't allow the player to both turn the view left/right at the same time as rotating up/down (only allow rotation up/down when player is parallel to the x or y game axes, assuming z is "up").

It is certainly possible to make multisampling look every bit as good as supersampling though better texture filtering (And I'm calling all processing done before pixel out texture filtering here, btw...which could include customized texture filtering in a pixel shader).
 
Well, when you are throwing around words like "where it should" at every critical juncture, and stop without saying where it says that it should, you're just stating the same thing over again. I'll address your examples provided below since they might allow us to move forward.

RussSchultz said:
my disagreement is that there is any objective justification that your expectation is exclusively the "completely correct" way.
What if I told you they were not my expectation, but somebody elses entirely, and dictated by lengthy theorems and derivations?

http://home.swipnet.se/~w-12597/3dxtc/articles/anisotropic.htm

Texture mapping is a simple graphical modeling technique that creates complex appearing three-dimensional objects. The technique’s anisotropic filtering form seeks to achieve the best possible texture mapping in situations where the model’s geometry places stringent requirements on the texturing process. The Talisman media architecture features a sophisticated anisotropic texture filtering technique that efficiently produces accurate results.

Do you see how they say what anisotropic filtering is, and how the rest of their text is their technique? Please clarify to me how this says ATi's technique is not valid?


Yep, it talks about about an aid to understanding that is similar to your oval/highlight example earlier. I think you should read the section on anisotropic filtering again to see what it does say and what it does not. My understanding of it is that it consists of text relating it to the initial concept presented, and then summarized by

Anisotropic rendering will give a big visual improvement by giving you better depth detail and an accurate representation of texture maps on polygons that are not parallel with the screen.

Where are all the other expectations you listed? Namely something that excludes the 8500's implementation as being valid?


Did you read these? Perhaps you need to highlight what you feel supports what you are saying. Anyway, on to my take on it...

The two anisotropic quality tests determine the size of the maximum anisotropic filtering kernel the accelerator supports. Anisotropic filtering reduces the too-fuzzy or too-sharp filtering that occurs with isotropic mipmapping when a pixel maps to a rectangular region in the texture space. That is, when the partial derivatives of u and v with respect to x and y (i.e., the scale factors described above) are not similar in size, anisotropic filtering can improve the resulting image.

Seems what they are discussing, after giving a definition of anisotropic filtering that seems to fit the 8500's method, is testing the quality of said filtering. You can hold whatever view you have of the quality, what I, atleast, am disputing is the statement that there is a definition of anisotropic filtering that excludes the 8500's method as a valid implementation. I'll throw in the words "subjective" and "objective" to remind you they are pertinent to the point.

This is circular to the extreme!!!

...I think I'll take a break for tonight.
 
By definition, multisampling is not full scene antialiasing...

Ahem:

http://www.sgi.com/software/opengl/advanced98/notes/node93.html

Multisampling is an antialiasing method that provides high quality results. It is available as an OpenGL extension from at least one vendor. In this technique additional subpixel storage is maintained as part of the color, depth and stencil buffers. Instead of using alpha for coverage, coverage masks are computed to help maintain sub-pixel coverage information for all pixels. Current implementations support four, eight, and sixteen samples per pixel. The method allows for full scene antialiasing at a modest performance penalty but a more substantial storage penalty (since sub-pixel samples of color, depth, and stencil need to be maintained for every pixel). This technique does not entirely replace the methods described above, but is complementary. Antialiased lines and points using alpha coverage can be mixed with multisampling as well as the accumulation buffer antialiasing method.
 
Just make a game that has only horizontal/vertical surfaces, then don't allow the player to both turn the view left/right ...

Exactly....and to avoid the drawbacks of multisampling, just don't use any textures either. :) That's my point.

No, texture filtering does NOT remove all the artifacts that sumpersampling would.
 
On why the Radeon 8500 does not meet the spec (From the EXT_texture_filter_anisotropic extension):

It is also acceptable for an implementation to approximate the ideal
functions Px and Py with functions Fx and Fy subject to the following
conditions:

1. Fx is continuous and monotonically increasing in |du/dx| and |dv/dx|.
Fy is continuous and monotonically increasing in |du/dy| and |dv/dy|.

2. max(|du/dx|,|dv/dx|} <= Fx <= |du/dx| + |dv/dx|.
max(|du/dy|,|dv/dy|} <= Fy <= |du/dy| + |dv/dy|.

Quite simply, if you rotate a primitive about the z-axis, Fx and Fy may well decrease (lower anisotropy used), while those derivatives should not be decreasing. The second condition is also probably not being met on off-angle surfaces.
 
Joe DeFuria said:
No, texture filtering does NOT remove all the artifacts that sumpersampling would.

Normal texture filtering we have today doesn't, but it's more than possible to program texture filtering that does (specifically, on the NV30, and possibly R300).
 
Another interesting one:

http://www.hardwareanalysis.com/action/printarticle/1477

"We were amazed at the new full screen antialiasing of GeForce4," said Paul Olshen from Novalogic, the creators of Comanche 4.

"Today, by delivering high-resolution, high frame-rate, full scene antialiasing in a complete family of GPUs, NVIDIA has provided us with the tools to deliver breakthrough performance and image quality for the gaming industry.

Hmmm...seems like the expectaion is that nVidia's multisample AA is "full scene".

Look, Russ, if it would make you happy, perhaps we can lable GeForce aniso as "Full Scene Anisotropic Filtering", and Radeon's Aniso as just plain ol' "Anisotropic filtering."

Would that please you? :)
 
Do the samples taken represent the coverage of the pixel as projected onto the texture?

Yes/No (circle one)

Code:
oooooooooo
ooxxoooooo
oooxxooooo
oooxxxoooo
ooooxXXXoo
oooooXXXoo
oooooXXXoo
oooooooooo
oooooooooo

If the projection of the pixel into texture space is represented by small x's, and the 8500 only samples from the big X's, even if its max level of anisotropy should allow this, it is not a correct solution for anisotropic filtering.
 
Normal texture filtering we have today doesn't, but it's more than possible to program texture filtering that does (specifically, on the NV30, and possibly R300).

Even if true (and I'm not ready to take your word for it), that still doesn't take away from the "drawback" of multisampling techniques. With Supersampling applied on top of texture filtering, no "additional programming only available on fully programmable GPUs" required.
 
Joe DeFuria said:
Even if true (and I'm not ready to take your word for it), that still doesn't take away from the "drawback" of multisampling techniques. With Supersampling applied on top of texture filtering, no "additional programming only available on fully programmable GPUs" required.

1. Few textures have any noticeable drawbacks that cannot be fixed by anisotropic filtering, or other better texture filtering methods.

2. Those that do (Specifically, alpha tests or other per-pixel branching) can often be avoided entirely by using a smooth blend function. When that is not an option, it's not much of a challenge to do supersampling within the pixel shader. Not only that, but supersampling done within the pixel shader can definitely do a much better job than supersampling applied to the entire scene, and has much less performance hit.

For older hardware, the only truly noticeable drawback of MSAA lies in the use of an alpha test, which can usually be replaced by a simple alpha blend very easily.

Newer hardware introduces new possibilities, and therefore new problems to be overcome. The only way to antialias some fragment programs will be to use supersampling, but that is much better accomplished within the pixel shader where it need not be used over the entire scene, and will be significantly higher-performance. That, and some algorithms may not require all the processing used in supersampling to properly-correct. Others will get much better quality through custom algorithms.

Additionally, if an artist really likes to do alpha blends, it should be relatively easy to do relatively cheap AA in a fragment program for alpha tests.

And, in the end, supersampling has fled for high-end video cards. It won't be too long before it's gone for nearly every video card out there.
 
Back
Top