OpenGL的纹理映射问题

时间:2011-05-22 14:10:37

标签: c++ opengl collada texturing

我在使用OpenGL映射纹理时遇到了一些问题。这是我正在尝试使用these textures正确加载的模型的链接。

现在这里是指向所有相关文件所在目录的链接:http://karvis.kapsi.fi/

问题可以从img1.jpg

看出

我用红色标记的区域不应该用纹理映射,你可以从3d仓库模型中看到。问题是由于某种原因,整个模型被映射,但应该还有没有纹理的区域。还有没有纹理的相同模型:img2.jpg

还有我正在编译的代码:main.cpp。我正在使用Asset Import Library导入Collada模型,使用FreeImage将图像转换为RGB格式。

有谁知道为什么会这样?也许我将错误的参数传递给OpenGL,还是我加载这些纹理的方式呢?

1 个答案:

答案 0 :(得分:2)

在渲染纹理之前,您需要执行以下操作:

glEnable(GL_TEXTURE_2D);
glBindTexture(...);
//render the texture

渲染完纹理后,需要禁用纹理:

glDisable( GL_TEXTURE_2D );

我在你的代码中看到你在程序开始时启用了2d纹理。

进一步查看代码,检查是否:

if(mesh->HasTextureCoords(0))

对于不希望渲染纹理的区域返回true或false。