There is one other solution that will always work, although it requires more time and code on your part (and no shader), if you want the optimal quality of your game and FPS at the same time, make multiple quality textures for almost everything that can be viewed at a distance and up close, with low, medium and high rez. What will be done is you code each object so that when the player is closer, the highest rez texture is shown, while when the player is farther away it is swapped out to a medium and then low quality texture. When done at a distance this is close to impossible to see the transition in action. And overall because of a lower rez texture being used at a distance and only higher rez textures being used on things directly around you, this makes the most FPS friendly solution out there.


A clever person solves a problem.
A wise person avoids it.
--Einstein

Currently Codeing: Free Lite-C