3.2
纹理缠绕
前面提到,纹理坐标应位于
0-1
之间。那么当纹理坐标大于这个值会出现什么情况呢?
我们可以对
OpenGL
进行设置,以决定当纹理坐标不位于这一区间时应采取的操作。我们可以指定两种
操作:
GL_CLAMP
和
GL_REPEAT
。对于
GL_CLAMP,
超出纹理坐标的区域会使用纹理图像的边界颜色来代替,如
图
6.4-2
所示。
图
6.4-2 GL_CLAMP
的工作方式
而
GL_REPEAT
方式则是对纹理坐标进行重置而得到重复的图像。
观察图
6.4-3
,
你就能很容易地发现这
一点。
图
6.4-3 GL_REPEAT
的工作方式
可以调用
glTexParameter
设置缠绕方式:
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,
WrapMode
);
//
在
s
方向上的缠绕
方式
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,
WrapMode
);
//
在
t
方向上的缠绕
方式
其中,
WrapMode
可取
GL_CLAMP
或者
GL_REPEAT
。
4.
纹理对象
创建和使用文理对象
在
OpenGL
中,我们使用
glGenTextures
创建纹理对象:
glGenTextures(Count:Integer;TexObjs:Pointer);
其中,
Count
是我们要创建的纹理数目,当我们只想创建一个纹理时,只需调用
var
Texture:GLUint;
...
glGenTextures(1,@Texture);