OGRE 框架雜談(一)

2021-06-09 21:05:06 字數 975 閱讀 4401

在這個紛亂的世界中,還是有不少的高手,強人為迷路的小鳥指明方向。其中就包括引導我進入3d渲染世界大門的ogre開發小組。其實,大家首先要知道的是:ogre的本意,是乙個以教學為目的進行的開源3d引擎專案。很多人對其推崇至極(當然,我也很喜歡ogre,並對其開發者抱有崇高的敬意!),不過有些地方,ogre很明顯的在易懂和高效方面,選擇了利於教學的方面……

我們如果要建立3d遊戲,需要用到這的主要工具就是這幾個了。root負責所有程式的總調配,而camera像詞義一樣負責作為攝像機,scenemanager用來管理遊戲場景,framelistener負責遊戲的控制,最後renderwindow負責將遊戲「畫」到螢幕(視窗)上。

ok,現在我們開工!這幾個工具,可以讓我們在螢幕上建立出像cs,魔獸世界那樣的遊戲畫面。但是我總覺得ogre這群傢伙更加喜歡的是星球大戰風格的東西,它們的標誌就像獸人哦!這是因為其簡寫ogre的意思就是「食人魔」,/(^o^)/~挺搞的吧?

第一行,我們將我們之前建立的攝像機作為引數傳遞給視口建立函式,好讓視口知道我們的眼睛到底在往**看,第二行,這個viewport又繫結到了mwindow這個渲染視窗上來進行渲染。

後面程式執行到了createscene() 函式,他就是需要我們往場景中加入自己元素的函式了,如果你希望將一輛汽車或者飛機放到虛擬的世界裡,就可以使用它了,如果你沒有設定它,那麼除了ogre在前面呼叫的 choosescenemanager() 中建立的簡單場景之外,一片荒蕪。

其實到這裡,整個遊戲畫面部分就已經結束了,畫面已經渲染到了螢幕上,接下來我們要幹什麼呢?當然是讓畫面動起來,不然我們就只是費勁畫了一幅畫面而已,這又有什麼稀罕的呢?

createframelistener()就是來幫助我們實現與遊戲的互動,我們可以看出他實際上是加入了乙個***,來監視玩家到底做了什麼操作,然後會根據玩家的操作來具體修改每一幀的畫面。

搞了這麼一大通,上面的setup()如果成功,那麼最後go()函式的最後一行,就會把我們設定好的程式進行渲染。當然還是由最主要的mroot來幹。

OGRE框架分析(一)

簡單ogre框架由兩個檔案引入 exampleframelistener.h 指向root 物件的指標 root mroot 指向程式中攝象機的指標 camera mcamera 指向場景管理器的指標 scenemanager mscenemgr 指向 幀 的指標 framelistener mfr...

Ogre 整體框架入門

ogre 是物件導向的3d圖形引擎。root 是引擎的乙個介面類,包含很多快捷的呼叫其他類的介面。在ogre中,廣泛的使用了單件模式,同時最大的保證了你不需要自己管理資源,除了是你自己new的物件 這很少 基本你只需讓ogre負責資源管理就行。這對於乙個複雜的類庫來說,確實是乙個很強大的特性。ogr...

ogre 整體框架入門

ogre 是物件導向的3d圖形引擎。root 是引擎的乙個介面類,包含很多快捷的呼叫其他類的介面。在ogre中,廣泛的使用了單件模式,同時最大的保證了你不需要自己管理資源,除了是你自己new的物件 這很少 基本你只需讓ogre負責資源管理就行。這對於乙個複雜的類庫來說,確實是乙個很強大的特性。ogr...