OpenGL 关闭深度缓冲写入引发的一个小问题

我无意中做了一个这样的操作:

{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDepthMask(GL_TRUE);
DrawCube();
glDepthMask(GL_FALSE);
}

结果立方体画不出来了。

换成这样就正常:

{
glDepthMask(GL_TRUE);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
DrawCube();
glDepthMask(GL_FALSE);
}

结论:当关闭深度缓冲写入的时候glClear(GL_DEPTH_BUFFER_BIT);无效,不能写入确实改变不了深度缓冲的数据啊,恍然大悟。

猜你喜欢

转载自blog.csdn.net/skillart/article/details/98068717