现在的位置: 首页 > 综合 > 正文

在opengl中使用纹理

2012年04月02日 ⁄ 综合 ⁄ 共 724字 ⁄ 字号 评论关闭
AUX_RGBImageRec *TextureImage[3];                       
TextureImage[0]= auxDIBImageLoadA("floor.bmp");//------------返回头指针
TextureImage[1]= auxDIBImageLoadA("wall.bmp");
TextureImage[2]= auxDIBImageLoadA("wall3.bmp");
glGenTextures(3, &texture[0]); // 创建纹理名
for(int i=0;i<3;i++)
{
glBindTexture(GL_TEXTURE_2D, texture[i]); // 使用来自位图数据生成 的典型纹理
// 生成纹理
glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[i]->sizeX, TextureImage[i]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[i]->data);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); // 线形滤波,主要是放大或者缩小纹理的算法,包括线形,近邻,双线性插值等
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
}

glEnable(GL_TEXTURE_2D);

创建三个纹理,如果要使用,则需要事先调用
glBindTexture(GL_TEXTURE_2D, texture[i]);

抱歉!评论已关闭.