要使用纹理对象储存纹理数据需要以下四步
1 生成位图文件名称
glGenTextures(1, &ID);
2 创建纹理对象,即将纹理对象绑定到纹理数据
glBindTexture(GL_TEXTURE_2D, m_Texture.ID);
3 再次绑定纹理对象,即将其中的纹理映射到物体上
glBindTexture(GL_TEXTURE_2D, m_Texture.ID);
4 删除纹理对象
(1)纹理资源载入
Bmp位图文件主要分为四部分
位图文件头 :文件类型、存放位置信息,文件大小,
位图信息头
颜色表
定义位图的字节阵列
.h文件
#define BITMAP_ID 0x4D42 /**< 位图文件的标志 */
class CBMPLoader
{
public:
CBMPLoader();
~CBMPLoader();
bool LoadBitmap(char *file); /**< 装载一个bmp文件 */
void FreeImage(); /**< 释放图像数据 */
unsigned int ID; /**< 生成纹理的ID号 */
int imageWidth; /**< 图像宽度 */
int imageHeight; /**< 图像高度 */
unsigned char *image; /**< 指向图像数据的指针 */
};
.cpp文件
/** 构造函数 */
CBMPLoader::CBMPLoader()
{
/** 初始化成员值为0 */
image = 0;
imageWidth = 0;
imageHeight = 0;
}
/** 析构函数 */
CBMPLoader::~CBMPLoader()
{
FreeImage(); /**< 释放图像数据占据的内存 */
}
/** 装载一个位图文件 */
bool CBMPLoader::LoadBitmap(char *file)
{
FILE *pF