PDA

View Full Version : Simmering/"lines" test utility and comments


dmumu
11-08-04, 07:57 PM
Hi ppl,

in my spare time I tried to reproduce these two major problems we have, so here's a code (OPENGL based) for testing.
In the archive you'll find how to use it and also some comments of what I've seen.
Feedback is welcome and please bare with my english, it's not my native language.
Happy testing and please post your comments, it might help us/NV to fix the issues ;)

check below (post #8) for updated exe :(

Edit: ok, I think my test app wasn't relevant so I removed it.
I'll upload soon another one more relevant to this shimmering problem.

dmumu
11-08-04, 08:00 PM
hummm ...100k max attachment size? wait a minute ....
Edit: fixed.

rewt
11-08-04, 08:15 PM
Nice try :) But what I am seeing is not shimmering, but rather aliasing and moire

Subtestube
11-08-04, 08:15 PM
In the tex filtering one, have you just not enabled mipmapping? Because that's correct rendering of non mipped textures. Moire is not a rendering error, it's to do with insufficient samples to reconstruct the signal.

dmumu
11-08-04, 08:19 PM
no, i just used the three filtering meth. available in opengl ...the first method is not relevant. I tried to compare the second method to third based on the fact that if 3'rd (trilinear) don't "simmer" and second do, then we don't have (in games) true trilinear filtering. I'm also aware of moire and it is natural, so I'm not complaining about it.

rewt
11-08-04, 08:31 PM
If you want to see difference in mipmap transitions between BIlinear, BRIlinear, and TRIlinear, see shots below.

Subtestube
11-08-04, 08:40 PM
Dmumu> What exactly is the second? Could you provide the binding call you used in OpenGL?

dmumu
11-08-04, 08:41 PM
Subtestube:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, TGA.Width, TGA.Height, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, TGA.Data);


well i see, but that just doesn't make any sense. look here, it is 16x aniso forced thru cpl, and app. filtering with minification LINEAR_MIPMAP_LINEAR, which should give me trilinear filtering :


hummm ...now i see .... here's also the updated exe using gluBuild2DMipmaps on l2'nd filt. method too.

Edit: update removed.

rewt
11-08-04, 09:15 PM
Forceware 66.93, High Quality = Trilinear

dmumu
11-09-04, 01:28 AM
Forceware 66.93, High Quality = Trilinear
aaand??? c'mon, I'm not a idiot who doesn't know what's and how to set trilinear... I just asked here to post your findings ....btw, is there anybody who tried to run this on a ATI card or at least on an Older NV card?

rewt
11-09-04, 03:24 PM
aaand??? c'mon, I'm not a idiot who doesn't know what's and how to set trilinear... I just asked here to post your findings ....btw, is there anybody who tried to run this on a ATI card or at least on an Older NV card?

And my findings are 66.93 High Quality = Trilinear

Act like you know it all now. If its so obvious then why do your screenshots looks like bilinear? Don't go bitching at me because you don't know how to use the driver.

particleman
11-09-04, 04:41 PM
And my findings are 66.93 High Quality = Trilinear

Act like you know it all now. If its so obvious then why do your screenshots looks like bilinear? Don't go bitching at me because you don't know how to use the driver.

The effect seen in the second screenshots (the one with the checkerboard pattern), is the notorious shimmering problem on 6800s. If you have a 5900, like you do rewt, you will not see the shimmering/moire, since the 5900 does not exhibit the issue. The shimmering isn't caused by trilinear vs bilinear, it just appears certain mip map bands don't take enough samples. Anyways when I get home I will take screenshots of the checkerboard pattern on both my 5900 and 6800 at HQ.

rewt
11-09-04, 04:54 PM
I think I already have an idea of the differences, because I look at his screenshot and it looks horrible and blotchy, jagged, etc. whereas mine looks extremely smooth between mip map bands. but thanks for your input particleman. i didn't know this issue only pertained to geforce 6 series and not the fx series.

particleman
11-09-04, 08:59 PM
Hmmm... my shots on both my 5900 and 6800 look nothing like dmumu's. On both 5900 and my 6800 screenshots there are smooth mip map transitions, and both display a similar amount of moire and aliasing. So if the purpose of this utility was to show an unusual amount of texture aliasing, this utility doesn't show it. Though it does lead me to believe that the shimmering bug only effects Direct3D apps, as I had previously thought.

BTW it would have been helpful if the instructions on the controls were given. It to some expirimentation just to figure out 1-3 controlled filtering and G, T, & S controlled the texture.

dmumu
11-10-04, 01:58 PM
Ok ppl, I think I got another ideea related to shimmering so that I removed my test app (it wasn't relevant).
My newest finding is that our problem is related either to mipmap generation either to some strange texture caching . Why? Here are the steps which made me think that:
-I was playing around with different filtering methods in a test app, including app controlled aniso filtering (again I have to mention that I "play" in OpenGL)...here are the filtering methods I used (MAG/MIN = magnification/minification):
1) GL_NEAREST / GL_NEAREST with glTexImage2D
2) GL_LINEAR / GL_LINEAR with glTexImage2D (=bilinear)
3) GL_LINEAR / GL_LINEAR_MIPMAP_NEAREST with gluBuild2DMipmaps (=again, bilinear, mipmapped)
4) GL_LINEAR / GL_LINEAR_MIPMAP_LINEAR with gluBuild2DMipmaps (=trilinear)

-for testing purposes I added 3 different textures
-suddenly on some point I observed smth odd: on 2 of the 3 texture NV's did apply these 4 filterings in a expected manner, however, on a texture there was ABSOLUTELY NO DIFFERENCE between bilinear and mipmapped bilinear !!!
-thinking about some app building error I double checked my sources, recompiled, but nothing.
-I got bored so that I hit Quake3 (for relaxation purposes!)...after that, testing again my app, another surpise: the filtering worked as it supposed to.

any ideeas?