纹理对象概述

纹理对象(Texture Object)用来存储纹理数据,并且使它更加容易获得。我们可以控制许多纹理,并且回到先前已经装载进入纹理资源的纹理。使用纹理对象通常是支持纹理的最快的方式,会出现高性能的结果,这是因为它绑定(重新使用)一个现有纹理对象的速度,总是比使用函数glTexImage*D()来重新装载一个纹理图象的速度更快。

另外,一些应用支持一个有限的高性能纹理的工作集(working set),它们比其本身之外的纹理对象有更好的性能。这些高性能的纹理对象称为驻留(resident),并且可能有一些可用的硬件或/和软件加速器。我们可以使用纹理对象把最常使用的纹理装载进入这个有限的区域。

使用纹理对象来处理纹理数据的步骤如下:

1.生成纹理名称——glGenTextures();

2.将纹理对象绑定到纹理数据上(首先为纹理数据创建纹理对象,包括图象数组和纹理属性——glBindTexture();

3.若应用支持高性能纹理的工作集,就要了解是否有足够的空间来存储所有的纹理对象。若没有足够的空间,可以为每个纹理对象都创建优先级,这样就将最常用的纹理驻留在工作集中——glPrioritizeTextures();

4.绑定和重新绑定纹理对象,在渲染纹理化的模型时,使得纹理对象的当前数据能被获得——glBindTexture();

5.清除纹理对象。纹理资源一般是有限的,删除纹理可以释放纹理资源——glDeleteTextures()。

你可能感兴趣的:(对象)