【发布时间】:2014-01-10 12:02:04
【问题描述】:
我目前正在将采样器对象绑定到纹理单元(具体为 GL_TEXTURE12)
glBindSampler(12, sampler)
与纹理本身的设置相比,初始设置非常明显。但是当我用
更改采样器参数时glSamplerParameteri(sampler, GL_TEXTURE_***_FILTER, filter);
绑定到纹理单元的纹理过滤器与之前一样,从任何角度来看都没有明显变化。
我已经尝试在参数更改后再次将采样器重新绑定到纹理单元,但我很确定这不是必需的。
我可以进行哪些更改才能使其正常工作?
【问题讨论】:
-
您不将纹理绑定到采样器,它们始终绑定到纹理图像单元。采样器对象唯一改变的是,当非零采样器对象绑定到纹理图像单元时,它们将采样器状态与纹理对象分开。为了更清楚一点,
GL_TEXTURE12是纹理图像单元的名称...纹理对象和采样器对象的绑定点。我知道这听起来像是很多迂腐的废话,但您的部分问题可能是对术语的误解。 -
我完全理解。您刚刚告诉我一堆我已经知道的无用信息:P 谢谢,我编辑了问题以反映您指出的问题。
-
你能显示更多的代码吗?特别是,将纹理对象绑定到纹理单元 12 的代码。即使在更新问题之后,声明:“我已尝试将纹理单元再次绑定到采样器 [...]”的措辞令人困惑。
-
如果您觉得我的措辞令人困惑,那么我认为您无法帮助我;不过,我想我的意思是说我将采样器绑定到纹理。纹理通过我所有网格的循环绑定到单元,如下所示:
gl::ActiveTexture(gl::TEXTURE12);gl::BindTexture(gl::TEXTURE_2D, textures[meshes[x]->current_texture]);
标签: c opengl texture-mapping