纹理不起作用
Posted
技术标签:
【中文标题】纹理不起作用【英文标题】:Texturing Not Working 【发布时间】:2010-02-09 06:05:34 【问题描述】:我正在使用此站点的代码: http://www.spacesimulator.net/tut4_3dsloader.html
它在他们的示例项目中有效,但是当我将代码放入一个类中以便更容易和更模块化地使用时,纹理无法出现在对象上。
我已经通过并排调试来仔细检查纹理 ID 是否正确。 在我的项目中,我得到一个空白的白色对象,而示例工作正常。
是否有任何方法可以判断引擎盖下发生了什么?我可以调用的任何错误函数都可以给我一些提示吗?现在我只是猜测。 (是的,我启用了 2D 纹理。
谢谢!
【问题讨论】:
你在哪个平台上?您是否尝试过使用开箱即用的代码? 我很乐意提供源代码,但我不知道上传 16 兆左右压缩文件的好地方在哪里。 :) 【参考方案1】:glGetLastError()
或 glGetError()
这是什么...
确保 glEnable(GL_TEXTURE_2D);
并确保使用 glBindTexture 绑定纹理
确保正在渲染纹理坐标并且它们是正确的(如果它们都相同,或者所有相同的未初始化值,您将在整个事物中获得一种颜色)
嗯…… 确保你的纹理矩阵没有搞砸...... glMatrixMode(GL_TEXTURE); glLoadIdentity(); 如果你不使用它...
然后嗯....
确保加载纹理时加载的数据是正确的。
确保您在 mip 贴图中加载了 mipmap,否则,如果您的对象处于不同的缩放比例,您可能无法获得任何纹理...
嗯... 这就是我能想到的全部。
编辑:
哦,我只记得有一次抓住了我:
通过改变结构,你可能改变了应用的初始化顺序。
确保在初始化 opengl 之前没有尝试加载纹理(使用设备上下文或其他任何东西,我在 windows 下)
【讨论】:
这里的最后一句话是我做的。 xD【参考方案2】:确保您上传的是complete texture。
【讨论】:
以上是关于纹理不起作用的主要内容,如果未能解决你的问题,请参考以下文章