[osg-users] Texture not clear in far view
jean-sebastien.guay at cm-labs.com
Sun Sep 7 10:46:37 PDT 2008
> As you can see, in the first picture, the texture of building is not
> clear. It is not quite far. The texture performance is not acceptable.
> But when you get a little closer, it becomes better (the second picture).
> Is this because of not setting mip-map?
No, you are using mip mapping since the texture changes (and I bet you
can see where the texture changes by moving slowly closer to the
building - it will switch mip levels all of a sudden). Anyways, mip
mapping is on by default.
Mipmaps are built from textures automatically by OSG when they are
needed, using GLU functions. The problem is that the resuling mipmap
levels generally have too much filtering/blurring. So what you can do is
generate mip levels yourself using an image processing tool to resize
and filter the images using a higher quality filtering algorithm, and
store the texture with its precomputed mip levels in a DDS texture. This
way you have control over the appearance of your texture at every mip
level. There may even be a class in the osgUtil::Optimizer or somewhere
else to do this, I don't remember.
You could also try to enable anisotropic filtering to see if it makes
things better. In general it will, but you'll have to try it out
yourself (for example, by using osgUtil::Optimizer::TextureVisitor to
set the anisotropy parameter to something like 16 - try out some
different values to see what works for you). This however takes a bit
more time on the GPU, but not that much on modern cards.
Obviously, generating the mip levels yourself in a DDS texture as
described above gives you more control and takes no extra GPU time at
runtime, but takes some time upfront to generate them and find the right
settings. Conversely, using anisotropic filtering takes some time on the
GPU, but does not require any changes to your art pipeline and no time
upfront apart from finding the right settings for each texture (unless
you're happy just setting them all at 16).
Hope this helps. Sorry for rambling.
Jean-Sebastien Guay jean-sebastien.guay at cm-labs.com
More information about the osg-users