新帖:如何开启 深度缓冲和深度测试?

问题是:如何开启深度缓冲和深度测试
相关的知识

virtual void setPositionZ(float positionZ);//设置OpenGL Z值。OpenGL 深度缓冲和深度测试默认是关闭的,我们需要把他们打开才能正确的使用这个特性。

VertexZ,PositionZ和zOrder
关于这三个参数先看官方解释。
VerextZ是OpenGL坐标系中的Z值
PositionZ是Cocos2d-x坐标系中Z值zOrder是Cocos2d-x本地坐标系中Z值
在实际开发中我们只需关注zOrder。
可以通过setPositionZ接口来设置PositionZ。
以下是setPositionZ接口的说明:
1Sets the ‘z’ coordinate in the position. It is the OpenGL Z vertex value.

即PositionZ的值即为opengl的z值VertexZ。同样节点的PositionZ也是决定了该节点的渲染顺序,值越大,但是与zOrder不同的区别在于,PositionZ是全局渲染顺序即在根节点上的渲染顺序,而zOrder则是局部渲染顺序,即该节点在其父节点上的渲染顺序,与Node的层级有关。

我的理解:
我们开发中真正用到的也就是PositionZ,而PositionZ等效于VertexZ。PositionZ是什么呢,其实PositionZ就是三维坐标中的Z轴,而cocos2dx的坐标系和OpenGl、笛卡尔坐标系是一致的,简而言之前两种都是笛卡尔坐标系。也就是说我们以屏幕左下角为原点。
向右为X轴正向,向上为Y轴正向。所以Z轴就是向我们对着屏幕的这边,也就是所我们设置Z轴,其实可以想象成立体的空间,在这个空间内,节点的是有顺序的,Z值越高,我们看过去越能先看到,因为我们所看的屏幕相当于俯视图。对把屏幕想成一张俯视图。
所以Z轴值越大,就越先看到,越能盖住它下面的东西,因为我们看的是俯视图。
那么OrderZ又是什么呢,OrderZ只是设置,在父亲节点下,他们的绘制顺序。但是PositionZ是决定最终呈现在屏幕面前的视觉顺序。

楼主 你问题解决了吗?
请教一下不修改源代码情况下怎么开启深度测试,应该调用cocos2d里哪个函数?