Texture Arrays vs. Texture Atlas
Texture Atlas SUCKS! I switched over to DX11/10 and finally got Texture Arrays working. As you can see:
no more seams. Anisotropic filtering works like a charm. Recap on why there are seams in the first place--I generate texture coordinates from the world position by using fract(). Fract over worldposition is a discontinous function, leading to problems when selecting LOD hence the seams. Computing LOD levels manually doesn't do the trick because it doesn't resolve the discontinuity which I believe either a) has some hardware limitation or b) one still need to emulate texture "wrapping". I tried (a) which didn't resolve the seam. I did not have time to try out (b).
With texture array the discontinuity is solved by using hardware texture wrap which is possible with texture arrays. This way I can use world position as the texture coordinate directly without fract().
Texture Arrays also resolves most issues with Texture Atlas without a bunch of hacks (like reducing texture dimension by half and shifting).
*Some Implementation Details*
I applied a patch, which you can find in the DX11 thread just google TextureAtlas on that post.
Also the example doesn't load mip maps. I ended up loading a uncompressed dds with mip maps and load each individual mips into the texture. Works for now. But we're going to need the ability to load compressed dds later on.












