我正在使用DevIL库加载纹理以应用于模型。这是我编写的用于将纹理加载到纹理缓冲区的代码:
ILboolean success;
ILuint imageID;
glGenTextures(1,&_textureID);
glBindTexture(GL_TEXTURE_2D,_textureID);
ilGenImages(1,&imageID);
ilBindImage(imageID);
success = ilLoadImage((const ILstring)_fileName.c_str());
if(success){
success = ilConvertImage(IL_RGBA,IL_UNSIGNED_BYTE);
if(!success)
{
std::cout << "Could not convert image :: " << _fileName << std::endl;
ilDeleteImages(1,&imageID);
return false;
}
}
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D,0,ilGetInteger(IL_IMAGE_BPP),ilGetInteger(IL_IMAGE_WIDTH),
ilGetInteger(IL_IMAGE_HEIGHT),0,ilGetInteger(IL_IMAGE_FORMAT),GL_UNSIGNED_BYTE,
ilGetData());
glBindTexture(GL_TEXTURE_2D,0);
当我渲染场景时,我得到以下结果:
我还应该提一下,assimp用于加载模型。使用assimp viewer,我得到如下所示的结果。
我想知道我的代码是否有问题会导致纹理变暗。