Why does MIPMAPPEDIMAGE only work with ,,,

BlitzMax Forums/BlitzMax Programming/Why does MIPMAPPEDIMAGE only work with ,,,

Grey Alien(Posted 2006) [#1]
... FILTEREDIMAGE.

Basically I have an image that I am drawing at 0.5 scale. If I don't pass any flags in (i.e. default of -1 is used) it's pixelley when drawn. The default LoadImage flags are MASKEDIMAGE | FILTEREDIMAGE (according to the docs for AutoImage flag).

OK fine, so I tried passing in just MIPMAPPEDIMAGE and it's still pixelley.

Hmm, OK, pass in MASKEDIMAGE | MIPMAPPEDIMAGE and it's still pixelly.

Pass in all three MASKEDIMAGE | FILTEREDIMAGE | MIPMAPPEDIMAGE and it's fine. Also works without MASKEDIMAGE.

Why does MIPMAPPEDIMAGE need FILTEREDIMAGE to work properly when scaling down?


PantsOn(Posted 2006) [#2]
Are you working on a MAC?

Might be because of this....
http://www.blitzbasic.co.nz/Community/posts.php?topic=54534

don't know if it was fixed.


Dreamora(Posted 2006) [#3]
Pixelley is because it is not filtered.

This hasn't anything to do with mipmap at all ... mipmap will only replace the large texture by a smaller version to save bandwidth / render time, when the surface is too small / far away to have any use for the large version.
But it does not change anything on the quality of what you see.


ImaginaryHuman(Posted 2006) [#4]
Is it anisotropic filtering that uses mipmaps to produce a better quality at low size, then? I Thought mipmaps helped reduce `shimmering` which would be caused by large textures scaled down too much. That is a quality difference.


PantsOn(Posted 2006) [#5]
The problem seems to lie in the my previous post.
Filtered image is not applied as defualt on macs even though the docs specify otherwise.


Grey Alien(Posted 2006) [#6]
I was just going by wqhat the docs say:

MIPMAPPED: The image is smoothed when scaled down to less than its original size


But it seems to do nothing without Filtered being on. Filtered on it's own does nothing either.


FlameDuck(Posted 2006) [#7]
I Thought mipmaps helped reduce `shimmering` which would be caused by large textures scaled down too much. That is a quality difference.
Yes. But its effect without perspective is somewhat different. Usually mipmap levels will change whenever the next texel skip is > 1. So if your next texel lookup is not the neighboring texel, it will switch to a lower resolution texture.

But it seems to do nothing without Filtered being on. Filtered on it's own does nothing either.
Filtering on it's own does nothing, because it's still getting too many texel "misses" to do effective filtering. Mipmapping on its own appears to do nothing, because the lack of filtering, means that even though it's using a lower resolution texture, they are not being filtered on texel borders.


Grey Alien(Posted 2006) [#8]
great detail thanks.