怎么做GL_TEXTURE_MIN_LOD
,怎么GL_TEXTURE_MAX_LOD
工作LOD_BIAS
?
为了直观地检查它,我创建了带有 mipmapping 的 6*6 纹理,对于 > 0.5 的值,MIN_LOD
我得到一个 3*3 纹理,而与MAX_LOD
. 如果我改变LOD_BIAS
它不会影响我的o/p。我无法弄清楚它是如何工作的。
任何人都可以通过举个例子来解释它吗?
编辑:我正在手动创建 mipmap 级别,以便我可以观察它正在拾取哪个级别。这是我的代码:
glTexImage2D(target, 0, GL_RGBA,9 ,9, 0, GL_RGBA, GL_BYTE,subpix);
glTexImage2D(target, 1, GL_RGBA,4 ,4, 0, GL_RGBA, GL_BYTE,&subpix[4]);
glTexImage2D(target, 2, GL_RGBA,2 ,2, 0, GL_RGBA, GL_BYTE,&subpix[10]);
glTexImage2D(target, 3, GL_RGBA,1 ,1, 0, GL_RGBA, GL_BYTE,&subpix[18]);
glSamplerParameterf(sampler,GL_TEXTURE_MIN_LOD,0.862);
glSamplerParameterf(sampler,GL_TEXTURE_MAX_LOD,0.99);
glSamplerParameterf(sampler,GL_TEXTURE_LOD_BIAS,0.0);
在这种情况下,我预计它将采用 2*2 的第二个 mipmap 级别,但它选择 4*4 的第一个 mipmap 级别。当我设置 min lod < 0.5 时,它需要 9*9 的第 0 级。无论设置为 max lod 的值如何,都会发生这种情况。