OpenGL纹理坐标必须在0-1范围内吗?

3
例如,如果我正在使用glTexCoord3f(GLfloat s,GLfloat t,GLfloat r),则参数str应在0.0f1.0f范围内。但是我想知道我们是否可以设置超出此范围的某些值?
这样做的原因是,如果我试图可视化立方体的横截面,如下图所示。红色矩形'abcd'是我试图可视化的横截面。但我注意到,绿色矩形'ABCD'的坐标要容易得多(特别是当平面不垂直于任何轴时)。 Visualization of the cross section of a cube 我刚刚尝试了一下。似乎没有任何问题。但是我仍然有点担心。我不知道这样做是否是良好的实践。所有类型的图形卡是否都支持此操作?
1个回答

6

OpenGL纹理坐标可以是任意值。但是它们将根据纹理坐标的包裹或夹紧设置被夹紧,重复/包裹到范围0…1内。

此外,一些纹理目标对待纹理坐标有所不同。GL_TEXTURE_xD的行为与预期相同。GL_TEXTURE_CUBE_MAP将纹理坐标视为方向向量。 GL_TEXTURE_2D_ARRAY将S和T分量视为通常处理,但将R分量视为层索引。GL_TEXTURE_RECTANGLE将纹理坐标视为纹理图像中的像素索引。


我很惊讶你没有提到GL_TEXTURE_RECTANGLE...当我想到不遵循纹理坐标常规规则的纹理时,这是我首先想到的东西。 - Andon M. Coleman
@AndonM.Coleman:哎呀,完全忘记了这件事。不过我已经很久没用它了。 - datenwolf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接