【发布时间】:2012-06-17 08:13:14
【问题描述】:
在 cocos2d-iphone 中默认的投影类型是“3D”投影。但您也可以像这样将投影设置为“2D”:
[[CCDirector sharedDirector] setProjection:CCDirectorProjection2D];
在幕后,3D 投影使用透视投影,而 2D 投影是 OpenGL 正交投影。 The technical details about these two projection modes can be reviewed here,这不是我感兴趣的。
2D投影对于cocos2d用户有什么好处和坏处?切换到 2D 投影的充分理由是什么?
就我个人而言,我使用 2D 投影能够将深度缓冲用于等距平铺地图。等距平铺地图需要此功能才能正确在平铺地图上对平铺和对象进行 z 排序。
我还在非 tilemap 项目中使用了带有深度缓冲的 2D 投影,以通过 vertexZ 属性获得完整的 z 顺序控制。该项目使用伪等距显示,其中对象的 vertexZ 基于其 Y 坐标。
这意味着我一直使用 2D 投影只是为了能够使用 vertexZ 属性,这也需要启用深度缓冲。是否还有其他原因可能希望切换到 2D 投影?
【问题讨论】:
-
感谢您提出这个问题。
标签: cocos2d-iphone projection zbuffer depth-testing