我正在使用此网站的代码: http://www.spacesimulator.net/tut4_3dsloader.html
它适用于他们的示例项目,但是当我将代码放入类中以便更容易和更模块化使用时,纹理无法显示在对象上。
我已经仔细检查以确保纹理ID是正确的并排调试它们。 在我的项目中,我得到一个空白的白色物体,而示例工作正常。
有没有办法告诉幕后发生了什么?我可以调用的任何错误函数可以给我一些暗示正在发生的事情?现在我只是在猜测。 (是的,我启用了2D纹理。
非常感谢!
答案 0 :(得分:1)
glGetLastError()
或glGetError()
它是什么......
确保glEnable(GL_TEXTURE_2D);
并确保使用glBindTexture
绑定纹理确保有正在渲染的纹理坐标并且它们是正确的(如果它们全部相同,或者所有相同的未初始化值,您将在整个事物中获得一种颜色)
嗯.... 确保你的纹理矩阵没有拧紧...... glMatrixMode(GL_TEXTURE); glLoadIdentity(); 如果你不使用它......
然后嗯......确保在加载纹理时加载数据是正确的。
确保你在mip贴图中加载mipmapping,否则如果你有一个不同的缩放对象,你可能得不到任何纹理......
... UMM 这就是我能想到的全部。
编辑:
哎哟,我记得有一次让我抓到了一次:通过更改结构,您可能已经更改了应用程序的初始化顺序。
确保在初始化opengl之前你没有尝试加载纹理(使用设备上下文或其他什么,我在windows下)
答案 1 :(得分:0)
确保您上传complete texture。