Ogre讀取Ogitor的scene情境簡介

來源:互聯網
上載者:User

這幾天在用Ogre讀取Ogitor的情境,遇到了不少問題,在網上也找不到詳細的說明,雖然讀取Ogitor的情境對很多人來說太簡單了,但對一些新手來說就有點難了,我剛開始就覺得是無從下手,因此簡單的描述下讀取過程和一些常見問題,希望對一些新手有所協助,高手就可以跳過了O(∩_∩)O~

我簡單的分為2大步:

1.     學會簡單的使用Ogitor,建立自己的情境,然後匯出為scene情境檔案

Ogitor的簡單操作我就不再詳述了,直接引用網上的:

一、基本控制
1.情境中的座標:x軸z軸表示左右,Y表示上下
2.QWEASD:攝像機方向、行走控制(在“Fly”與“Walk”模式下,作用略有不同)
3.滑鼠中鍵+移動:晃動攝像機鏡頭
4.滑鼠右鍵+移動:旋轉攝像機鏡頭
5.Alt+Mouse Wheel:靠近或遠離選中對象
6.Alt+滑鼠右鍵+移動:攝像機圍繞選中物體旋轉
7.將攝像機放置到Scene Tree中選中的對象前:雙擊Scene Tree中的對象名字或按“F”鍵(只有情境在“Fly”模式下才有效)
8.增加攝像機移動速度:情境工具條中的“Speed+”(表徵圖為帶加號的攝像機)
9.減慢攝像機移動速度:情境工具條中的“Speed-”(表徵圖為帶減號的攝像機)

10.滑鼠左鍵+移動:選中多個模型
11.選中多個模型:按住Shift鍵,依次點擊需要選中的模型
12.從多個選擇中去掉某個模型:按住Ctrl,依次點擊不需要的模型——與Shift多選功能相反
13.複製模型:Shift+移動某個模型
14.移動模型使其貼到其他模型或地表上方:Ctrl+移動模型(不怎麼靈敏,比手動好一點)
15.End鍵:高亮操作模型(移動,旋轉,放縮)控制項的一個軸

2.建立一個情境

1.開啟建立一個情境的對話方塊(Project Settings),如:選擇Project的存放位置,輸入Project的名字。在Assets選項頁中,單擊滑鼠右鍵,選擇模型的Mesh及Material、貼圖的存放位置(自己的模型等資源在這裡添加,也可以項目建好後再重新設定)

 

 

2.建立好之後,可以在編輯器中看到一個空的情境,這時我們可以向情境中添加基本的對象——地形,天空,水體等等,編輯器都有提供,在Objects面板中,直接將所需對象拖入到情境中即可。

Terrain Group:地形組,拖動情境中(此時情境中並沒產生地形,只是提供了地形的一個組,Ogitor中地形的最好單位是Page,Terrain Group由許多的Page構成)

Caelum:天空盒

Hydrax:水體

將對象拖入到情境中後,可以在Scene tree中看到各對象的名字,點擊對象,可以在屬性面板編輯他們的屬性。

 

 


3.添加地形Page
在Scene面板樹中,右擊Terrain Group,選中Add Page。彈出對話方塊,選中page的位置和基本的地表紋理設定,確定之後就可以在Scene面板樹中看到剛才添加的page,在情境中也可以看到基本的地形了


Page位置:Page的名字座標與在情境中的位置如

 

 

每增加一個Page,在工程檔案夾下的terrain檔案夾下會增加兩個檔案,一個.ogt檔案,一個.tga檔案。一個Page對應這兩個檔案。Page的座標名與這兩個名的對應關係如下:
Page_0000ffff.ogt是由Page0x-1產生的。一個.ogt檔案的前4個字元(這裡是0000)對應page名字的第一個座標(這裡是0);ogt檔案的後四個字元(這裡是ffff)對應page名字的第二個座標(這裡是-1).
0  0000
1  0001
正數如上,依次類推
-1  ffff
-2  fffe
其他負數,收集中

3.編輯地形
Shift+地形升高:降低地形
地形編輯工具可以調整筆刷的樣式,大小,強度等

Splat:地表貼圖
Shift+地表貼圖:擦掉這種地表貼圖

一個Page最多支援6種不同的地表貼圖,當發現地表貼圖不能刷到地形上時,有兩種情況:
1.這個Page的地形貼圖也達到6種(可以在這個Page的屬性property中看到Layers是否已達到6)
2.筆刷紋理已在當前刷的地方,只是上面覆蓋了另一層不同的紋理(如一個page的同一個地方上有Layer0紋理A,Layer1紋理B,如果此時筆刷上的紋理為A,用A來刷這個地方,則沒反應,此時正確的做法是:將筆刷上的紋理調整為B,按住Shift鍵,擦除紋理B,使紋理A露出來)

Paint:(ColorMap)
使用顏色紋理,此功能預設不啟用,如要啟用可以在Terrain Group的屬性中勾選Colour Map

Splat Grass:在地表添加草(暫時不要在情境中使用此功能)

 

2.     Ogre讀取匯出的scene情境檔案

匯出的情境檔案:


 

2.1把Ogitor內建的例子代碼拷到自己的工程裡

目錄關係自己定(附加元件封裝含目錄裡添加例子檔案的標頭檔,也可以不加,只要例子cpp檔案能找到相應的標頭檔就行了,附加依賴項加上OgreTerrain_d.lib(根據實際情況來),然後就開始編譯代碼,編譯過程中可能會找不到XX標頭檔,自己相應的添加就可以了,res檔案夾也要拷的。

BaseApplication.cpp檔案的bool BaseApplication::setup(void)方法下有個讀取外掛程式配置的改成這樣mRoot = new Ogre::Root("plugins.cfg")  (如果直接把bin下那個檔案改成和他一樣也可以,那就不用改這裡了)

2.2把匯出的相應檔案放到自己的資源路徑下,並在resources.cfg添加相應的路徑(注意:要加到[General]下,不然讀出的地形看不到)

2.3Ogitor的bin目錄下有個SampleAppConfig.xml,拷到你的exe組建目錄下,<SampleApp projectDir="Media/scene/prj1" scene="mscene.scene"/>改成你自己相應的

(到這裡就應該可以編譯出你的EXE了,點擊運行就能看到情境了,如果有遺留的話我再補充!)


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.