我在使用OpenGL映射纹理时遇到了一些问题。这是我正在尝试使用these textures正确加载的模型的链接。
现在这里是指向所有相关文件所在目录的链接:http://karvis.kapsi.fi/
问题可以从img1.jpg
我用红色标记的区域不应该用纹理映射,你可以从3d仓库模型中看到。问题是由于某种原因,整个模型被映射,但应该还有没有纹理的区域。还有没有纹理的相同模型:img2.jpg
还有我正在编译的代码:main.cpp
。我正在使用Asset Import Library导入Collada模型,使用FreeImage将图像转换为RGB格式。
有谁知道为什么会这样?也许我将错误的参数传递给OpenGL,还是我加载这些纹理的方式呢?
答案 0 :(得分:2)
在渲染纹理之前,您需要执行以下操作:
glEnable(GL_TEXTURE_2D);
glBindTexture(...);
//render the texture
渲染完纹理后,需要禁用纹理:
glDisable( GL_TEXTURE_2D );
我在你的代码中看到你在程序开始时启用了2d纹理。
进一步查看代码,检查是否:
if(mesh->HasTextureCoords(0))
对于不希望渲染纹理的区域返回true或false。