|
|
我的3ds.cpp中的CreateTexture(UINT textureArray[], LPSTR strFileName, int textureID)函数,只能加入bmp格式的贴图 谁能给我改一下或者有个新的函数可以实现导入其他格式的贴图 ,具体函数是这样的:
void CLoad3DS::CreateTexture(UINT textureArray[], LPSTR strFileName, int textureID)
{ AUX_RGBImageRec *pBitmap = NULL;
if(!strFileName) return; // 如果无此文件,则直接返回
pBitmap = auxDIBImageLoad(strFileName); // 装入位图,并保存数据
if(pBitmap == NULL) exit(0); // 如果装入位图失败,则退出
// 生成纹理
glGenTextures(1, &textureArray[textureID]);
// 设置像素对齐格式
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
glBindTexture(GL_TEXTURE_2D, textureArray[textureID]);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, pBitmap->sizeX, pBitmap->sizeY, GL_RGB, GL_UNSIGNED_BYTE, pBitmap->data);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR_MIPMAP_LINEAR);
if (pBitmap) // 释放位图占用的资源
{ if (pBitmap->data) free(pBitmap->data);
free(pBitmap);
}
}
|
|