In <sampler*>, we have <minfilter>, <magfilter>, and <mipfilter> as sub-elements. I’m familiar with the first two, but I’m not sure what the third is. Can anyone help me out?
That’s the texture filter to use between mipmap levels (Linear, Anisotropic…)
But that can be entirely specified with <minfilter>, i.e. LINEAR_MIPMAP_NEAREST, LINEAR_MIPMAP_LINEAR, etc. This can lead to conflicts, e.g.:
Which one has precedence? It seems that <mipfilter> is redundant.
MipFilter is used durring autogeneration of mipmaps.
It describes the minification filter used to generate lower levels.
So this should be
Ok, but then shouldn’t that be in the <surface> and not in the <sampler>? It’s in the <surface> that you specify if you want mipmaps automatically generated, so I would think that’s where you’d specify how you want them generated also.
Unlike <minfilter> and <magfilter>, which control how a texture is to be sampled, <mipfilter> actually controls how the texture is created and initialized. So I would think it definitely belongs in <surface> instead, which is where all the other parameters related to texture creation live. If this sounds reasonable to you I’ll submit a bug on it in the Khronos bugzilla.
Yes this sounds like a design oversite. At one point in time “mipmap generate” lived on the sampler instead of the surface. But typically MipFilter is not very helpful since the filtering options are so limited.
On a side note…
Personally I would expect any mipmap generation to be linear and for anything other than that I wouldn’t use auto mipmap generation.
I’ll submit a bug on this in Khronos. I understand nothing can get done about this for a while because it’ll break backward compatibility… maybe whenever the next backward-compatibility-breaking set of changes to the schema are introduced (2.0?) this can get addressed then. It doesn’t really matter much anyway since apps will just do linear filtering to generate mipmaps and that’ll be fine.
Actually I’m having problems accessing Khronos’ bugzilla. Can anyone else get in?
The Khronos bugzilla has been fixed and bug 22 submitted.