終於跨PC、IOS及Andorid),他是利用Android提供的android_native_app_glue來產生
Native Activity來介接android_main程式進入點,目前專案Static Library的部份全部用
arm-linux-androideabi-g++.exe直接進行編譯,不再透過Android所提供的*.mk 的
solution來編譯,而SimpleBrowser程式仍然使用mk來進行相關的編譯及連結的流程
,最後再配合ant debug install就可以把SimpleBrowser放到device 上測試。
以下是相關的建製流程:
- 安裝TortoiseHg
- clone Ogre Source1.9(hg clone http://bitbucket.org/sinbad/ogre/ -u v1-9或使用TotoiseHg IDE來Clone)
- 下載 AndroidDependencies並解壓縮到Ogre的Source Folder
- 下載Android sdk及ndk,並配置好相關的環境變數:
範例:
Variable name: ANDROID_NDK
Variable value: C:\NVPACK\android-ndk-r8e
Variable name: ANDROID_SDK
Variable value: C:\NVPACK\android-sdk-windows - 安裝Apache Ant,用於打包APK及佈署到DeviceApache Ant Binary Distributions
- 安裝CMake,用於建立跨平台專案的工具
- 在Ogre的Source Folder下,產生一個AndroidBuild Folder,然後使用Visual Studio Cross Tolls命令提示字元的視窗到AndroidBuild Folder下此命令:
cmake -G"NMake Makefiles" -DCMAKE_TOOLCHAIN_FILE=..\cmake\android.toolchain.cmake -DANDROID_ABI=armeabi .. - 然後就可以使用nmake建立Ogre相關的Static libs.
- 切到AndroidBuild\SampleBrowserNDK,然後使用Visual Studio Cross Tolls命令提示字元的視窗下ndk-build all來建立SimpleBrowser
- 然後就可以下ant debug install來打包APK及佈署到Device執行
- 執行NMake期間會產生fatal errors,可以忽略,再下nmake即可,詳情請參考Android build quick start guide
- 要確認NDK的位元版本是否正確,詳情參考Error when compiling SampleBrowserNDK (Android)
在IOS及Android測試過Terrain的部份,IOS FPS只有3(New Ipad),Android則是無法執行,看來之前針對Terrain寫得MyTerrainMaterialGenerator還是很有用(New Ipad FPS可以到56),可見Ogre目前所提供原生的相關元件,在行動平台上可靠執行上還沒有做得很理想,不過對Ogre熟的老手,這都不是問題…總之就是看到很多新手在抱怨Ogre效能不好,沒辦法用,但卻也有一些老手用得很過癮的狀況。目前使用NSight建置自己的專案做法應該是不會改(最主要是可以直接使用VC除錯Native Code),但Ogre的編譯就交給這個新流程了…至於使用NSight建製專案又是另一則故事了…
Dream continues in...
谢谢分享~
回覆刪除不會,希望對您有幫助。
回覆刪除