【问题标题】:Texturing Not Working纹理不起作用
【发布时间】:2010-02-09 06:05:34
【问题描述】:

我正在使用此站点的代码: http://www.spacesimulator.net/tut4_3dsloader.html

它在他们的示例项目中有效,但是当我将代码放入一个类中以便更容易和更模块化地使用时,纹理无法出现在对象上。

我已经通过并排调试来仔细检查纹理 ID 是否正确。 在我的项目中,我得到一个空白的白色对象,而示例工作正常。

是否有任何方法可以判断引擎盖下发生了什么?我可以调用的任何错误函数都可以给我一些提示吗?现在我只是猜测。 (是的,我启用了 2D 纹理。

谢谢!

【问题讨论】:

  • 你在哪个平台上?您是否尝试过使用开箱即用的代码?
  • 我很乐意提供源代码,但我不知道上传 16 兆左右压缩文件的好地方在哪里。 :)

标签: c++ opengl textures


【解决方案1】:

glGetLastError()

或 glGetError()

这是什么...

确保 glEnable(GL_TEXTURE_2D);

并确保使用 glBindTexture 绑定纹理

确保正在渲染纹理坐标并且它们是正确的(如果它们都相同,或者所有相同的未初始化值,您将在整个事物中获得一种颜色)

嗯…… 确保你的纹理矩阵没有搞砸...... glMatrixMode(GL_TEXTURE); glLoadIdentity(); 如果你不使用它...

然后嗯....

确保加载纹理时加载的数据是正确的。

确保您在 mip 贴图中加载了 mipmap,否则,如果您的对象处于不同的缩放比例,您可能无法获得任何纹理...

嗯... 这就是我能想到的全部。

编辑:

哦,我只记得有一次抓住了我:

通过改变结构,你可能改变了应用的初始化顺序。

确保在初始化 opengl 之前没有尝试加载纹理(使用设备上下文或其他任何东西,我在 windows 下)

【讨论】:

  • 这里的最后一句话是我做的。 xD
【解决方案2】:

确保您上传的是complete texture

【讨论】:

    猜你喜欢
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 2014-07-16
    • 2012-03-13
    相关资源
    最近更新 更多