例如,如果我使用glTexCoord3f(GLfloat s,GLfloat t,GLfloat r)
,参数s
,t
,r
应该在0.0f
和{{范围内1}}。但我很想知道我们是否可以设置一些超出此范围的值?
这样做的动机是,如果我试图可视化立方体的横截面,如下图所示。红色矩形'abcd'是我试图想象的横截面。但我注意到绿色矩形'ABCD'的坐标更容易获得(特别是当平面不垂直于任何轴时)。
我试试看。似乎没有任何问题。但我仍然有点担心。我不知道这样做是否是好的做法。各种图形卡是否支持此功能?
答案 0 :(得分:5)
OpenGL纹理坐标可以是任意值。然而,它们将被夹紧,或重复/包裹在0 ... 1的范围内,具体取决于纹理坐标包裹或夹具设置。
一些纹理目标也会以不同方式处理纹理坐标。 GL_TEXTURE_xD的行为与人们预期的一样。 GL_TEXTURE_CUBE_MAP将纹理坐标作为方向向量。 GL_TEXTURE_2D_ARRAY照常处理S和T分量,但R分量作为图层索引。 GL_TEXTURE_RECTANGLE将纹理坐标视为纹理图像中的像素索引。