2013年7月12日 星期五

My First Android APP with Ogre3D

拜Ogre1.9之福,已經將遊戲引擎跨到Android層級了,目前引擎橫跨PC、IOS及Android,接下來就是WinRT了…

在此分享一下關於1.9跟Android處理的一些心得:
  1. 首先就是Ogre的StringConverter,由於osstream沒辦法在所有的Android平台上順利執行,因此蠻多用snprintf取代掉了…,我自己也有用到,所以也要改。
  2. std::atexit無法使用,導致只好不用Loki的Singleton,自己實作。
  3. OgreStableHeaders.h漏了OGRE_PLATFORM == OGRE_PLATFORM_ANDROID,要補上。
  4. 使用Nsight visual studio edition,以便於直接在Visual Studio插中斷點進行除錯(需搭配Tegra的硬體),所以就沒有使用Android MK檔的東西,Ogre專案檔也就要自己建立了…
  5. OgreGLES2Prerequisites.h少定義了GL_CHECK_ERROR巨集,要記得補上 。
  6. OgreGLES2FrameBufferObject.cpp有一行#Else寫成#Endif 。
  7. 全使用Native Code,沒有一行jni及java code。
  8. GLSLES雖然提供mat3參數傳遞的語法,但不是每個Android硬體都可以正行執行,改成傳3個Vector比較穩
接下來就是Demo影片…




夢想還在持續中…

4 則留言:

  1. 都有在關注 版主野心很大 加油!

    回覆刪除
  2. 謝謝您的回覆,希望有朝一日也能像Unity跨大部份的平台。

    回覆刪除
  3. 全使用Native Code,没有一行jni及java code?
    现在NDK这么强大了?

    回覆刪除
  4. 夺啊!已经可以开始开发了,只可惜沟办法直接使用openal,音效的部份还得想办法。

    回覆刪除