用Devil加载模型纹理

时间:2013-12-10 11:49:00

标签: opengl opengl-3 devil

我正在使用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);

当我渲染场景时,我得到以下结果:

enter image description here

我还应该提一下,assimp用于加载模型。使用assimp viewer,我得到如下所示的结果。
enter image description here

我想知道我的代码是否有问题会导致纹理变暗。

0 个答案:

没有答案