Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
旋转场景后Opengl不正确的分层_Opengl - Fatal编程技术网

旋转场景后Opengl不正确的分层

旋转场景后Opengl不正确的分层,opengl,Opengl,我有两个四边形,它们构成一个立方体的两面。。两者都具有映射到它们的纹理 起初,分层很好(较近的一侧在较远一侧的“顶部”)。但是,当我旋转场景时,分层会中断,因为现在应该位于后面的层仍然位于顶部 我需要手动清除z缓冲区还是其他什么吗?听起来你好像没有启用深度测试。尝试glEnable(GLU深度测试) 顺便说一句,是的,您确实需要在每个周期通过运行glClear(GL\u DEPTH\u buffer\u BIT)显式清除z缓冲区。如果您没有这样做,那么不会给您带来麻烦的原因也可能是因为您没有使用

我有两个四边形,它们构成一个立方体的两面。。两者都具有映射到它们的纹理

起初,分层很好(较近的一侧在较远一侧的“顶部”)。但是,当我旋转场景时,分层会中断,因为现在应该位于后面的层仍然位于顶部


我需要手动清除z缓冲区还是其他什么吗?

听起来你好像没有启用深度测试。尝试
glEnable(GLU深度测试)

顺便说一句,是的,您确实需要在每个周期通过运行
glClear(GL\u DEPTH\u buffer\u BIT)
显式清除z缓冲区。如果您没有这样做,那么不会给您带来麻烦的原因也可能是因为您没有使用深度缓冲区,因为您还没有启用深度测试


(在可能的情况下,您已经在每个周期清除颜色缓冲区,您可以将这两个组合成
clClear(GL\u color\u buffer BIT | GL\u DEPTH\u buffer\u BIT)

听起来您还没有启用深度测试。尝试
glEnable(GLU深度测试)

顺便说一句,是的,您确实需要在每个周期通过运行
glClear(GL\u DEPTH\u buffer\u BIT)
显式清除z缓冲区。如果您没有这样做,那么不会给您带来麻烦的原因也可能是因为您没有使用深度缓冲区,因为您还没有启用深度测试


(在可能的情况下,您已经在每个周期清除颜色缓冲区,您可以将这两种情况合并为
clClear(GL\u color\u buffer BIT | GL\u DEPTH\u buffer\u BIT)

这可能就是问题所在。我只想补充一点,对于凸面对象,这在
glEnable(GL\u CULL\u FACE)
和正确的(CCW vs CW)缠绕约定中不是绝对必要的。这可能就是问题所在。我只想补充一点,对于凸面对象,这对于
glEnable(GL\u CULL\u FACE)
和正确的(CCW vs CW)缠绕约定来说不是绝对必要的。