纹理对象用于存储纹理数据,以便随时使用它们。我们可以控制多个纹理,并可以返回到以前加载到纹理资源的纹理。使用纹理对象通常是应用纹理的最快方法。
一个三维纹理对象呢在s,t,r纹理坐标轴方向上分别拥有w(width),h(height),d(depth)个体素,相应的纹理数据在内存中以线性方式存储,也就是说先存储一个slice的第一行的像素值,然后依次是同一个slice的其他行的像素值,然后是同一个volume的其他slice的像素值。
如果我们想要将一个体数据(volume)以三维纹理的方式加载入纹理内存,我们首先呢得创建一个所谓的纹理对象,纹理之间的切换通过activating相应的纹理对象实现,被activated的纹理对象我们称其为与图形硬件实现了绑定。下面介绍一下纹理对象的创建过程。
(1)一个新的纹理对象通过OpenGL命令glGenTextures()来实现,每一个纹理对象都会分配一个单独的纹理ID.
任何非零的无符号整数都可以用来表示纹理对象的名称,为了避免意外的重名,应该坚持使用此函数来提供未使用的纹理对象名称。
GLuint texid;
glGenTextures(1,&texid);