禁用GL_DEPTH_TEST时,纹理消失

Bru*_*ipe 1 opengl cocoa objective-c

好的,所以我有这个完全工作的场景,在一个带扬声器的架子上有一个乙烯基播放器.一切正常(使用GLM的模型和纹理,使用Mac-Cocoa的界面).

我现在正在实现的是一个"码头式"栏,里面有漂浮的专辑封面,你可以选择一个玩.它目前效果很好,但是如果你进一步放大它们会落后于其他物体并消失.

我第一次尝试的是:glDisable(GL_DEPTH_TEST).但是当我这样做的时候,我的专辑封面上的所有纹理,也就是3D模型,都变成了灰色.

深度问题按预期固定,但问题在于纹理.我正在使用这个版本的GLM模型加载器:http://devernay.free.fr/hacks/glm/自动加载纹理.

启用GL_DEPTH_TEST: GL_DEPTH_TEST已启用

GL_DEPTH_TEST禁用: GL_DEPTH_TEST已停用

有任何想法吗?

bcr*_*ist 5

无法访问您的代码和资产,这只是一个猜测,但看起来您的专辑封面模型有正面和背面.在GL_DEPTH_TEST禁用的情况下,在正面之后绘制背面,并且由于跳过深度测试,因此它覆盖正面.

如果您还没有尝试打开背面剔除:

glEnable(GL_CULL_FACE);
Run Code Online (Sandbox Code Playgroud)