關於cocos2dx中的攝像機

2021-08-27 13:29:07 字數 844 閱讀 7698

關於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存在時會有效率方面的問題。

5、為什麼3d引擎中不採用cocos2d中的方式來提高效率?

因為3d對視覺效果要求高,比如畫中畫效果、render to texture 實現的特效等,這時是必須要實現多個攝像機的;而對於cocos2dx而言基本上不存在這樣的問題

6、ccorbitcamera的實現邏輯

每幀根據輸入的引數插值球座標,之後改變節點eye的位置

cocos2d x 攝像機類

所有節點都擁有乙個攝像機類cccamera。只有通過攝像機類,節點才會被渲染出來。當節點發生縮放旋轉和位置變化的時候,都需要覆蓋cccamera 類,讓這個節點通過cccamera 類重新渲染。ccnode 類裡有些方法可以實現縮放 旋轉和位置變化,當使用攝像機類實現這些的時候,那些方法就不能同時使...

關於cocos2dx中tableView的一些理解

先看 h檔案中 ifndef helloworld scene h define helloworld scene h include cocos2d.h include cocos ext.h using ns cc using ns cc ext class helloworld public ...

cocoa2d x 移動攝像機

cocoa2d x camera類中 seteyexyz 0,0,0.1 setcenterxyz 0,0,0 setupxyz 0,1,0 對應glulookat eyex,eyey,eyez,centerx,centery,centerz,upx,upy,upz 要移動相機,並不會發生錯亂 需要...