纹理不起作用

时间:2010-02-09 06:05:34

标签: c++ opengl textures

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

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

我已经仔细检查以确保纹理ID是正确的并排调试它们。 在我的项目中,我得到一个空白的白色物体,而示例工作正常。

有没有办法告诉幕后发生了什么?我可以调用的任何错误函数可以给我一些暗示正在发生的事情?现在我只是在猜测。 (是的,我启用了2D纹理。

非常感谢!

2 个答案:

答案 0 :(得分:1)

glGetLastError()

或glGetError()

它是什么......

确保glEnable(GL_TEXTURE_2D);

并确保使用glBindTexture

绑定纹理

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

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

然后嗯......

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

确保你在mip贴图中加载mipmapping,否则如果你有一个不同的缩放对象,你可能得不到任何纹理......

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

编辑:

哎哟,我记得有一次让我抓到了一次:

通过更改结构,您可能已经更改了应用程序的初始化顺序。

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

答案 1 :(得分:0)

确保您上传complete texture