Ogre 初學指導 2

2021-06-09 07:22:26 字數 1592 閱讀 3853

此小節主要學習 :

1、在3d空間中的幾個基本操作。

2、場景是如何被組織的。

3、操作不同的3d空間。

2、場景組織方式

故意提前講解。

場景的組織方式就像一棵倒立的樹,它由根部(root)不斷進行擴充套件。

每當有新的模型需要載入到場景中,我們必須先把它掛在root節點或者是root節點的子節點(樹枝)上。

場景是由n個節點組成,而每個節點上掛載這使用者匯入的模型。但是這n個節點都是root節點的子孫們。

1、幾個基本操作

1)建立場景節點

在上一節中我們建立了乙個人物模型,並把它載入到了場景中,但是它是直接attach在rootnode(根節點)上的。

現在我們將建立乙個新的場景節點,並將3d模型繫結其上。

老**是:

ogre::entity*ent=mscenemgr->createentity("myentity","sinbad.mesh");

mscenemgr->getrootscenenode()->attachobject(ent);

我們改為:

ogre::entity*ent=mscenemgr->createentity("myentity","sinbad.mesh");

ogre::scenenode*node=mscenemgr->createscenenode("node1");

mscenemgr->getrootscenenode()->addchild(node);

node->attachobject(ent);

編譯、執行。結果一樣。

2)場景根節點

呼叫mscenemgr->getrootscenenode()函式將會返回場景的根結點。

場景結點是場景管理器的乙個成員變數。當我們想要什麼顯示的時候,我們需要以一種方式把它繫結到場景根

結點上或者乙個派生類或子類的結點上。簡而言之,子結點需要和根結點保持結點與結點之

間的聯絡,否則的話,子結點上的模型就得不到渲染。就像變數名所暗示的那樣,場景根結

點是場景的根。因此整個場景將會以某種方式繫結到場景的根結點上。

3)設定場景節點的位置

node->setposition(10,0,0);

setposition()用了設定節點的位置,但是這個位置是相對于父節點的位置的。

通過下列**進行說明:(建立實體2,將其繫結在node2上,但是node2被設定為以前node的子節點)

原**基礎上加:

entity *ent2 = mscenemgr->createentity("myentity2","sinbad.mesh");

scenenode *node2 = mscenemgr->createscenenode("node2");

node->addchild(node

2);node2->setposition(0,10,20);

node2->attachobject(ent2);

執行結果:

模型1的位置是(10,0,0),模型2的位置是(10,10,20)。

3、操作不同3d空間在後邊章節講解。

**:

Ogre 初學指導 4

如果有疑問或發現錯誤可發e mail聯絡 swazer z 126.com 謝謝!空間座標系統及其操作 但是這一節詳細的講解關於ogre中的3d空間操作。圖ogrespace 上圖是ogre中的座標系統,豎直方向是y軸,左右為x軸,垂直使用者介面的是z軸。這個圖我們必須要時刻了然於胸否則很容易方向混...

Ogre 初學指導 7

幀監聽 滑鼠控制 渲染模式及計時器 此節依然是講解幀監聽中的一些操作 滑鼠 mouse 渲染模式 render mode 及計時器 timer 一 滑鼠控制 1 首先建立mouse物件,並用輸入系統例項化輸入物件 mouse 如 ois mouse mouse mouse static case m...

軟體測試面試指導初學筆記整理

1 需要的知識 紮實的計算機基礎知識,作業系統,資料庫,資料結構,程式語言,測試理論等等 2 認證 軟體評測師 3 軟體測試的知名 51testing www.51testing.com 測試時代 www.testage.org 4 基礎知識 1.c語言。資料型別,運算子,陣列,程式控制流,if e...