"Waves" seen in far away objects

You are using nearest mimap, so you are going to get a bow wave effect. You should use tri-linear filtering instead, which is linear_mipmap_linear. This will always sample from 2 mipmap textures and then blend the result, where as mipmap_nearest just samples from 1 texture level, and you get a hard line between the 2 textures. As for your texture atlas, mipmaps go down to 1 pixel, which will blend your entire atlas down to 1 pixel, which is not what you want. You should be able to set something like GL_TEXTURE_MAX_LEVEL to clamp the mipmap level to prevent this blend. But if your textures are tightly packed in the atlas bilinear filtering itself will cause a texture bleed. You could roll your own custom texturing to do bilinear filter/mipmapping in your shaders and then you can set your own clamping modes. But the easiest option is to simply abandon using a texture atlas, then all your problems go away.

/r/opengl Thread