Hey there,
I’ll describe this the best I can, let me know if more information would be useful.
The setup:
I have a grid of textures composing an image, say a 10x10 grid of 64x64 textures. The textures are really just a tiled image chunked off into texture memory. The image contains single pixel width lines and looks good on its own. The tiles are positioned on the screen (using glOrtho) to positions not at even pixels. Two bordering tiles might have upper left y coords of 214.4 and 214.6 (as an exmaple, unsure of exact spacing).
The problem:
The image made out of textures draws single pixel lines that are, I presume, less than a pixel wide. (This is not a glLine call, just positioning a texture on the screen). The effect this produces is a shimmer of the lines as the color moves from one side of a pixel to another when the image is panned slowly in any direction. With many lines on the screen it is quite a nuisance.
Ideas:
I am using GL_LINEAR as the texture filter. I have tried GL_NEAREST and while this keeps the single pixel width lines in tact (no shimmer), entire tiles now appear to shift. Almost makes the image appear to “melt” (cool affect, not good to read an image with : ) I would guess putting the texture tiles at fixed pixel positions, the net affect of using the NEAREST filter on the innards of the textures, causes the tiles to not line up quite right at the half-pixel boudaries when using LINEAR filtering.
That’s the story. Any way to fix this? The textures are created with sort of a bitmap drawing system, so lines have to be drawn as full pixel colors, no 1.5 width lines. Is anti-aliasing something that would be used here? A way to get the affect of GL_NEAREST while keeping the center of the tiled texture image at the same position so the tiles still line up at half-pixel screen coords?
Let me know if you have any idea.
Thanks!
Clay