BMP纹理不显示

时间:2012-07-09 09:50:34

标签: c++ linux opengl textures bmp

我在学习OpenGL纹理时遇到了一个问题(来自OpenGL第5版圣经)。问题是我无法显示我的纹理。我从一个BMP文件加载它,并带有我自己编写的函数。

由于代码非常冗长,我上传了所有neccessery文件。您可以从here下载。

编辑:我已经尝试从上面提到的书中复制代码(那里描述的TGA加载)并且它也不起作用。似乎加载卡在从文件加载图像数据(奇怪)。我认为就我的问题而言,这是无关紧要的。

1 个答案:

答案 0 :(得分:4)

检查问题有一般的调试步骤。我将在下面列出它们,希望你能找到这个bug(以及未来的读者):

  • 文件是否存在?是否根据格式正确读取文件?你有没有用OpenGL搞定它?我的建议:不要自己弄乱这些东西。使用图书馆。有一个惊人的轻量级SOIL (Simple OpenGL Image library)
  • 在初始化OpenGL之前加载纹理吗?这总是我的问题,因为我曾经“加载”并在构造函数(某些类)中执行glBindTexture(..)。在初始化OpenGL之前创建了对象。
  • 您启用了GL_TEXTURE_2D吗?检查初始化代码,使用:glEnable(GL_TEXTURE_2D)
  • 您是否正确地将纹理与四边形或您想要的形状进行了对比?这里的扩展是(有点)超出范围。那里有很棒的tutorials
  • (看起来很愚蠢,但有时会发生)你是不是用glColor3f(0,0,0)将对象涂黑了?

可能会有更多的检查,但现在这些是我的头脑