关于cocos2dx中的摄像机

关于cocos2dx中的摄像机

1、CCCamera 默认是从前往后看(center是原点,eye的z值很小,方向是z轴),所以z值越大,越是在前面, 

2、球坐标:原点是圆心,仰角theata(从z轴开始),方位角 fai,一般数学坐标系中的逆时针角  

3、 CCOrbitCamera::create(float t, float radius, float deltaRadius, float angleZ, float deltaAngleZ, float angleX, float deltaAngleX)

   参数依次是持续时间、半径初始值、半径增量、仰角初始值、仰角增量、离x轴的偏移角、离x轴的偏移角的增量

4、cocos2dx中的camera与一般3d中的camera的区别

cocos2dx中的camera是一个辅助类,主要是修改当前渲染的camera的matrix的(核心函数是locate),也就是尽管每个node有一个camera,实际上这个camera不是真的

opengl的camera,整个scene在渲染时一定是只有一台camera在渲染场景。这样做的好处:每个node可以单独的用2d来模拟3d的效果,而不会影响到别的node

 3d引擎中的camera是一个真正的opengl的camera,有多个camera存在时会有效率方面的问题。

扫描二维码关注公众号,回复: 655016 查看本文章

5、为什么3d引擎中不采用cocos2d中的方式来提高效率?

   因为3d对视觉效果要求高,比如画中画效果、render to texture 实现的特效等,这时是必须要实现多个摄像机的;而对于cocos2dx而言基本上不存在这样的问题

6、CCOrbitCamera的实现逻辑

      每帧根据输入的参数插值球坐标,之后改变节点eye的位置

猜你喜欢

转载自eric-weitm.iteye.com/blog/1918032