A baseline question that I’m not so sure about.
What is the optimal camera setting to result in the nicest looking textures? For instance, I want my texture to be the smallest as possible. Yet, if I move my camera in too close I get a chunky looking mip map texture – especially if I make the texture smaller. But if I make the texture say 1024x1024 on my nvidia geforce card then I see a noticeable performance hit but things look nice.
So, there appears to be some kind of optimal setting for the performance, camera and texture.
Mipmapping is only applied when zooming out, not when moving in. When moving in closely it does either a nearest neighbor or linear interpolation filtering of the base mipmap (default 0), so it makes sense that you get nicer results when increasing the resolution.
The problem is, the minification (with mipmaps) is of much better quality then magnification. Therefor, you get nicest results when no magnification will occur. If you want maximal possible quality, you should use textures sizes that are comparable with the maximal region size (in pixels) the textures will be still visible at in your program. Say, you have a textured wall section and you know that the camera will be able to move so close, that the wall (texture) fills the whole screen. In this case, texture size comparable to that of screen size will be best choise for quality.
Of course, you can’t just use very high quality textures all the time due to memory limitations. The “optimal settings” you speak of depend on teh actual redering system. On a new card with 512 or 102b Mb of VRAM, very large textures are usable, whiel you can forget it with a 128Mb card. This is the reason why games provide a quality slider
That makes sense.
For example, if my view port is 1024x768 and my camera is right in front of that wall then the texture needs to be 1024x768 at least. Probably a square of size 1024x1024 if I’m not using texture rect.
Or if there is an object in a scene but it never really gets bigger then a quarter the size of the screen then a 256x256 size texture would suffice.
And if I move far away then the mipmap takes care of it. Be careful of the magnification on level 0.
Thanks again for the tips.