2013年12月24日 星期二

建置全Native Code Ogre1.9 Android SimpleBrowser心得…

Ogre1.9使用全NativeCode方式開發Android的標準方案終於出來了(Ogre CMake的部份
終於跨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 上測試。

以下是相關的建製流程:
  1. 安裝TortoiseHg
  2. clone Ogre Source1.9(hg clone http://bitbucket.org/sinbad/ogre/ -u v1-9或使用TotoiseHg IDE來Clone
  3. 下載 AndroidDependencies並解壓縮到Ogre的Source Folder
  4. 下載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
  5. 安裝Apache Ant,用於打包APK及佈署到DeviceApache Ant Binary Distributions
  6. 安裝CMake,用於建立跨平台專案的工具
  7. 在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 ..
  8. 然後就可以使用nmake建立Ogre相關的Static libs.
  9. 切到AndroidBuild\SampleBrowserNDK,然後使用Visual Studio Cross Tolls命令提示字元的視窗下ndk-build all來建立SimpleBrowser
  10. 然後就可以下ant debug install來打包APK及佈署到Device執行
PS:
  1. 執行NMake期間會產生fatal errors,可以忽略,再下nmake即可,詳情請參考Android build quick start guide
  2. 要確認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...

2 則留言: