纹理坐标范围是否在边缘纹理像素的外边缘结束?

时间:2016-07-05 06:36:58

标签: opengl textures

从我的调试开始,我发现对于长度为128像素的1D纹理,我必须将传递给GLSL片段着色器中的s的{​​{1}}坐标钳位到范围{{1但是texture1D之类的东西(增加[0,1]会返回工件;通过二分获得的数字[0,1-1./257])。否则,我会重复257->258获得的值。

当我将纹理参数0.99610897设置为s==0而不是默认GL_TEXTURE_WRAP_T时,这不会发生。

我得出结论,纹理坐标范围的末端不在边缘纹理像素的中心,而是在它们的外边缘。

如果我将GL_CLAMP_TO_EDGE设置为GL_REPEAT(在GL_TEXTURE_*_FILTER模式下),那么就有意义了,就好像采样会查看指定的{{右侧的纹素。 1}},而对于GL_NEAREST过滤器,它需要GL_REPEAT的左右纹素平均值。

我的结论是否正确?纹理的末端坐标是纹素的外边缘,而不是它们的中心?

1 个答案:

答案 0 :(得分:0)

  

我得出结论,纹理坐标范围的末端不是在边缘纹理像素的中心,而是在它们的外边缘。

正确。