Cocos2d iphone 使用cocos2d iphone启用2D投影的好理由是什么?

Cocos2d iphone 使用cocos2d iphone启用2D投影的好理由是什么?,cocos2d-iphone,projection,zbuffer,depth-testing,Cocos2d Iphone,Projection,Zbuffer,Depth Testing,在cocos2d iphone中,默认投影类型为“3D”投影。但也可以将投影设置为“2D”,如下所示: [[CCDirector sharedDirector] setProjection:CCDirectorProjection2D]; 在幕后,3D投影使用透视投影,而2D投影是OpenGL正交投影,这不是我感兴趣的 对于cocos2d用户来说,2D投影的优点和缺点是什么?切换到2D投影的好理由是什么? 就我个人而言,我使用2D投影,以便能够对等轴测平铺贴图使用深度缓冲。等轴测平铺贴图需要这

在cocos2d iphone中,默认投影类型为“3D”投影。但也可以将投影设置为“2D”,如下所示:

[[CCDirector sharedDirector] setProjection:CCDirectorProjection2D];
在幕后,3D投影使用透视投影,而2D投影是OpenGL正交投影,这不是我感兴趣的

对于cocos2d用户来说,2D投影的优点和缺点是什么?切换到2D投影的好理由是什么?

就我个人而言,我使用2D投影,以便能够对等轴测平铺贴图使用深度缓冲。等轴测平铺贴图需要这样才能在平铺贴图上对平铺和对象进行正确的z排序

我还在非tilemap项目中使用了2D投影和深度缓冲,通过vertexZ属性获得完整的z顺序控制。该项目使用伪等轴测显示,其中对象的顶点Z基于其Y坐标


这意味着我使用2D投影只是为了能够使用vertexZ属性,这也需要启用深度缓冲。是否还有其他原因需要切换到2D投影?

我已切换到2D投影,作为解决CCLabel字体呈现问题的唯一方法,包括字体文件和基于TTF的标签。这并不总是字体问题的原因,但它解决了我在所有其他问题都失败时遇到的一些问题。

在以下情况下,切换到2D投影是一个救命稻草:

  • 您可以创建一个大的CCRenderTexture

  • 您可以使用[…visit]或OpenGL绘图功能在其上绘制大量内容

  • 将渲染纹理添加到层中,例如,为了在第2点中绘制的东西。作为游戏的背景


  • 使用3D投影,纹理将使用垂直和/或水平断层线进行渲染。例如,请参见cocos2d-x,但我也观察到了cocos2d iphone的相同效果,将投影设置为2D解决了此问题。

    感谢您提出此问题。