
|
|
ODE物理引擎與Windows Vista的進一步說明
在本書所介紹的賽車遊戲中,車子駕駛的物理效果上我們直接使用了免費好用的Open Dynamic Engine (ODE) 的.Net 版本來實作物理效果。 ODE本身是一個公開原始碼的免費物理模擬引擎。提供一些基礎的物理效果。ODE被廣泛的使用於許多商業與免費軟體中。包括許多遊戲,以及開發遊戲的遊戲引擎或開發工具軟體。其中不乏國內學校與企業所採用的3D繪圖與遊戲製作軟體。 除了原作者繼續改進ODE物理引擎的功能外,也有許多人協助將ODE改版到其他平台上。原本我們使用的是由James Raine先生使用ODE 0.5版所包裝的ODE.net。一些其他介紹XNA的書籍也在他們書中推薦James Raine先生的ODE.net與他的網站 (http://www.thejamesrainenetwork.co.uk ,這個網站目前已經不存在了,也許哪天又會重出江湖?) 。不過ODE.net使用的是舊版的.Net所撰寫。 在我們撰寫本書的時候,我們嘗試了當時有的兩三種不同的.Net 版本的ODE引擎,雖然各有各的問題 (不是實作不完整,就是功能有問題),不過James Raine先生的ODE.net是當時比較好的一個.Net版本。所以本書撰寫的時候,我們也是以James Raine先生的ODE.net作為我們MiniEngine的物理模組。如果你有在網路上搜尋過XNA相關的資訊,你會發現很多舊的資料仍然是推薦使用James Raine先生的ODE.net。 在我們撰寫本書的過程中,雖然也碰到一些功能上的小問題,不過使用James Raine先生的ODE.net一直都還順利。直到Windows Vista正式版推出後,我們第一次在Vista上安裝了XNA開發環境要測試程式時,就發現用舊版.Net撰寫的ODE.net在Vista上會導致程式執行失敗。
一開始我們也花了一些時間把這個問題歸罪給Vista多出的許多新花樣,特別是使用者帳戶控制等等這些新的安全性強化功能。不過這些並沒有解決我們的問題(事實上是一點關係也沒有)。這使的我們不得不回歸到ODE.net本身。是否是因為ODE.net使用的是舊版的.Net編譯所造成的問題? 接著我們開始把更多的ODE原始碼加回gravity.dll中,直到把我們書中所用到的所有功能都加入後,終於我們的賽車可以在Windows Vista的XNA開發環境上正確執行了。所以在書中,你會發現我們前面介紹了ODE.net,但是在CD-ROM上所附的原始程式與專案中,我們附上的是我們自行改寫的gravitty.dll。
對於gravity.dll,我們使用的是ODE 0.8版的原始程式碼,所以比之前James Raine
先生所基於的0.5版有一些小改進 (在計算的穩定性上會好一些)。不過我們做的只是包裝成.Net的改進。所以如果讀者要將我們改寫的gravity.dll用於商業用途,請遵守ODE物理引擎的免費授權規定
(它是BSD授權),參考http://www.ode.org/ode-license.html
的描述,將原始的版權宣告加入您的軟體專案中。
|