1. 程式人生 > >vs2008編譯nxogre全攻略

vs2008編譯nxogre全攻略

NxOgre是一款優秀的物理引擎,因其小巧、程式設計簡單而深受大家的喜愛。Ogre是一款開源的圖形渲染引擎,可惜僅僅是渲染引擎,因此就得需要其他的物理引擎來實現。不知什麼原因,NxOgre的官網已經掛掉。因此,也只能通過github的教程來一窺。官網教程地址:https://github.com/betajaen/nxogre/wiki
ogre的編譯
我下的是ogre的sdk版,這種版本不需要對一些外掛dll進行重新編譯,只需編譯一些demo和samplebrowser就行了,載入工程以後,直接生成解決方案,即可完成編譯。注意不要忘記建立“OGRE_HOME”的環境變數。


NxOgre的編譯
從本質上來說,NxOgre是對physx的封裝。因此,編譯NxOgre必然要用到physx。Physx是國際顯示卡製造巨頭英偉達(NVIDA)公司開發物理引擎。可以很方便的模擬重力、速度等等物理學的環境。Physx的搭建需要Nvida的Physx驅動和Physx的SDK。這兩者直接從網上下載就可以了。下載安裝之後,需要做的第一步就是將nvida physx的路徑從path變數中刪除,否則nxogre會編譯失敗。記得原來搞nxogre,就是因為這一步導致nxogre的編譯功敗垂成。。。
第二步,安裝physx sdk,安裝很簡單,直接next就可以。安裝之後,需要建立名為“PHYSX_DIR”的環境變數,路徑指向physx sdk(注意,這個路徑不包括sdks,即c:\physx_SDK而不是c:\physx_SDK\sdks)
現在,我們就可以開始nxogre的編譯了,從https://github.com/betajaen/nxogre/下載nxogre的原始碼,用vs2008開啟nxogre工程,點選生成解決方案,開始編譯。如果前幾步沒有錯誤的話,就可以編譯成功。


Critter的編譯
雖然有了nxogre,但是顯然nxogre封裝了physx,卻沒有與ogre進行整合。因此,我們得需要一個元件,名叫critter將nxogre與ogre連線起來,cri網上流行的教程裡所指向的critter其實是一箇舊的版本,經筆者測試,根本無法正常完成編譯。怎麼解決呢?就是換用critter的最新版即可。
地址:http://www.ogre3d.org/addonforums/viewtopic.php?f=6&t=13691
下載之後最好與nxogre處於一個目錄下,這樣也為後來的demo的編譯提供方便。
從這個地方下載的critter,正常編譯之後,物理引擎的搭建就完成了。


NxOgre demo的編譯
編譯完成critter之後,物理引擎的搭建就完成了。但是最好編譯幾個demo,一是用來學習完整的NxOgre程式是怎麼編寫的,二是為了測試搭建的環境是否能夠正常執行。

直接開啟解決方案檔案,生成解決方案就可以了。我這裡失敗了幾個,把錯誤貼出來,大家一起學習




存在的問題:
實際執行demo才發現,不能點選nxogredemo裡的那些控制元件,比如下拉列表框、進度條等,一點選就會出現如下的問題


一開始我認為是作業系統的問題,但是我在其他作業系統測試後仍然有同樣的問題,最後上ogre3d官網求助後,在一國外網友的幫助下解決了問題,問題是nxogre版本的問題,換了一個nxogre版本之後解決了這個問題。