错误效果如下(带有透明):
正确效果如下:
代码:
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glEnable(GL_CULL_FACE);
glDrawArrays(GL_TRIANGLES, 0, count_last);
glDisable(GL_CULL_FACE);
glDepthMask(GL_FALSE);
glDisable(GL_DEPTH_TEST);
开启深度测试后,没有允许深度数据读写,因此出现错误的效果。上述代码开启后(glDepthMask(GL_TRUE)),显示就正确了。
本次问题解决的灵感来自:http://stackoverflow.com/questions/10042412/glenablegl-depth-test-nothing-rendered
深入学习OpenGL的网址:http://blog.csdn.net/fingding/article/details/28269335