參考:https://www.opengl.org/discussion_boards/showthread.php/172736-OpenGL-ES-Depth-Buffer-Problem
环境:eclipse,ndkr8,opengl es2.0,android
近期使用eclipse和NDK进行android opengl es2.0的开发,发现了绘制的物体显示与深度无关,而与绘制的前后顺序有关。想了一下。应该是深度測试没有开启,开启了glEnable(GL_DEPTH_TEST),可是发现深度測试还是不起作用。网上查询了一下,原因是eclipse创建的窗体没有开启深度測试。
setEGLConfigChooser( translucent ?
new ConfigChooser(8, 8, 8, 8, depth, stencil) :
new ConfigChooser(5, 6, 5, 0, depth, stencil) );//depth可设置为16和setencil可设置为8,代表缓存位数
设置后。绘制的物体前后顺序果然与深度有关了。
总结一下开启深度測试:
(1)首先用于绘制的窗体得设置支持深度測试
(2)opengl es2.0的代码中,得开启深度測试(glEnable(GL_DEPTH_TEST))