What are good reasons to enable 2D projection with cocos2d-iphone?

﹥>﹥吖頭↗ 提交于 2019-12-30 09:58:12

问题


In cocos2d-iphone the default projection type is "3D" projection. But you can also set the projection to "2D" like so:

[[CCDirector sharedDirector] setProjection:CCDirectorProjection2D];

Behind the scenes the 3D projection uses perspective projection whereas 2D projection is the OpenGL orthographic projection. The technical details about these two projection modes can be reviewed here, that's not what I'm interested in.

What are the benefits and drawbacks of 2D projection for cocos2d users? What are good reasons to switch to 2D projection?

Personally I've used 2D projection to be able to use depth buffering for isometric tilemaps. Isometric tilemaps require this for correct z ordering of tiles and objects on the tilemap.

I've also used 2D projection with depth buffering in non-tilemap projects to get complete z order control via the vertexZ property. This project used a pseudo isometric display where the vertexZ of an object is based on its Y coordinate.

That means I've been using 2D projection only to be able to use the vertexZ property, which also requires enabling depth buffering. Are there any other reasons one might want to switch to 2D projection?


回答1:


Switching to 2D projection is a life saver in the following scenario:

  1. You create a big CCRenderTexture

  2. You draw a bunch of stuff on it, either using [... visit] or OpenGL drawing functions

  3. You add the render texture to your layer, e.g., in order for the things you drew in point 2. to serve as the background for your game.

With 3D projection, the texture will be rendered with vertical and/or horizontal fault lines. See e.g., http://www.cocos2d-x.org/boards/6/topics/16197 which is for cocos2d-x but I have observed the same effect also for cocos2d-iphone and setting the projection to 2D got rid of the problem.




回答2:


I have switched to 2D projection as the only means to resolve font rendering issues with CClabels, both font file and TTF-based labels. This is not always the cause of a font issue, but it has resolved some problems for me when all else failed.



来源:https://stackoverflow.com/questions/11030664/what-are-good-reasons-to-enable-2d-projection-with-cocos2d-iphone

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!