why is the default projection method kCCDirectorProjection3D?

why is the default projection method kCCDirectorProjection3D?
0.0 0


In the past two days I was trying to debug my code and figure out what was causing tint black vertical lines between objects I was rendering. just recently I thought maybe there is a problem with model_projection matrix cocos2d was feeding to my shader and it turned out with my own custom mtarix there was no lines there. checking things a little bit more I’ve found out all the problem was caused because the default projection matrix is 3D!
now I’m wondering in a 2D game engine why don’t you use an orthogonal projection matrix as default?


i also want to know why.
recently, when i was implementing a ripple effect using shader and FBO, i found if i render a source texture to a target texture and then render the target texture to source texture… do this over and over again, the content on the texture will grow bigger and bigger in a radial pattern. i suspected it was caused by perspective error, so i search the cocos2d-x’s source code and found the default projection setting is kCCDirectorProjection3D. i changed it to kCCDirectorProjection2D, and it was all right.