1

我在学习如何在 OpenGL 中进行纹理处理时遇到了一个问题(来自 OpenGL 第 5 版圣经)。问题是我无法显示我的纹理。我使用我自己编写的函数从 BMP 文件加载它。

由于代码很长,我上传了所有必需的文件。你可以从这里下载。

编辑:我尝试从提到的书中复制代码(那里描述了 TGA 加载),但效果不佳。加载似乎卡在从文件加载图像数据(奇怪)。我想就我的问题而言,这无关紧要。

4

1 回答 1

4

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

  • 文件是否存在?文件是否根据格式正确读取?你是否让它与 OpenGL 很好地融合在一起?我的建议:不要自己弄这些东西。使用图书馆。有一个非常轻的SOIL(简单的 OpenGL 图像库)
  • 您是否在初始化 OpenGL 之前加载纹理?这一直是我的问题,因为我曾经“加载”并glBindTexture(..)在(某些类的)构造函数中执行。这些对象是在 OpenGL 初始化之前创建的。
  • 你启用了GL_TEXTURE_2D吗?检查初始化代码,使用:glEnable(GL_TEXTURE_2D)
  • 您是否使用四边形或您想要的形状正确映射纹理?在这里扩展这个(有点)超出了范围。那里有很棒的教程
  • (看起来很愚蠢,但有时会发生)你把物体涂黑了glColor3f(0,0,0)吗?

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

于 2012-07-09T16:19:38.603 回答