2011年9月16日 星期五

與Xcode,OgreIphoneLib之間的恩怨情仇 …

請參考這篇:How to get Ogre3D running on iOS in 15 minutes

若要讓程式進入點main可以跟平台的話,需將其副檔名設成cpp,並在xcode的project裡的Build Phases裡的Compile Sources裡相關cpp的Compiler Flags設成-x objective-c++(這樣可以讓這個C++同時可以編譯object-c及c++的語法)。並將Build Setting裡的Build Options裡的Compiler for C/C++/Object-C設成LLVM GCC4.2(預設的Apple LLVM compiler2.1編譯雖然會成功,但是會出現一些奇怪的錯誤及警告,不過編譯速度較快…)。

接下來就是跨平台編譯環境的建立…(超不習慣.cmake,.make之類的東西,但是為了跨平台編譯環境的目標,還是得面對)下面是相關影片…

23 則留言:

  1. 夢大好:
    最近有再研究OGRE的範例檔案,想要請教關於人物走路的判定,如果說我現在想要做有斜坡的,那我應該怎麼判定人物走到斜坡呢?
    是需要物理嗎? 看大大有用PhysX物理系統 是說走路判定都要用這個嗎?

    回覆刪除
  2. 您好:
    如果只是要簡單地走在斜坡上的話,只要使用Ogre內建的碰撞函式即可,可以參考這篇http://www.ogre3d.org/tikiwiki/Intermediate+Tutorial+3。但Ogre內建的碰撞函式效能不佳,建議最好選擇其他的第三方函式庫,PhysX是一個不錯的選擇。

    回覆刪除
  3. 感謝夢大 那我先研究一下要怎麼加入PhysX到OGRE裡面~
    有問題再請教您~^^

    回覆刪除
  4. 夢大好:
    最近遇到一個奇怪的問題 關於OGRE多視窗渲染的部分

    我原本用OPEN GL的時候 可以開2個遊戲 並且可以看到兩個遊戲視窗同時動作,不過最近用D3D9卻發現一樣開啟2個遊戲 但是只有我滑鼠有點到的視窗 遊戲畫面會動,另外一個視窗的遊戲畫面是不會動的,除非滑鼠點過去才會動,但是另一個視窗畫面又停了><

    請問這是正常的嗎?是我OGRE壞掉還是有地方要修改嗎?

    回覆刪除
  5. 鹽巴您好:
    我沒有遇過這種問題,你透過繼承SdkSample來初始化你的Ogre程式嗎?我目前是用手動建立的。

    回覆刪除
  6. 夢大^^ 經過您的提點 總算是成功開啟多視窗渲染了 太感謝了^^

    回覆刪除
  7. 夢大 順便想請問一下 有看到您的一篇文章"MDEngine網路連線遊戲程式測試計劃" 請問目前Server還有開嗎? 不知道是否有榮幸連進去玩看看XD

    回覆刪除
  8. 不客氣,加油。
    至於,之前已經執行過一次了,最近因公務繁忙,之後再找時間執行一次,謝謝你對這個計劃有興趣。

    回覆刪除
  9. 夢大好:
    最近正在學習如何使用PhysX 有一個關於掉落的問題
    想請教一下要如何讓箱子掉下來有重力加速度的感覺呢?
    我目前有設重力-9.81 箱子掉落都輕飄飄的 如果把重力調大的話
    雖然箱子掉落很快 可是有機率箱子會穿過地面 無限下墜

    我有看physX的"丟雪球"範例 他重力也都是-9.81左右
    可是卻有辦法做到重力加速度的感覺 請問該朝甚麼方向去調整呢?

    回覆刪除
  10. 會不會是你的箱子質量沒設對啊!檢查一下囉!

    回覆刪除
  11. 夢大好:
    我有設過質量跟密度 但是都不管用 後來設定了更新速率 結果奇妙的好像有感覺了! 可是感覺這樣的設定方法不太對@@

    如果物品會穿越地面這是正常的嗎? 如果重力太大 會穿越
    有如何修正不讓物品穿越地面呢?
    謝謝^^

    回覆刪除
  12. 您好:
    我覺得如果重力太大會穿越地面,這算是一個bug。只是要處理大位移量且保證不穿面這件事不容易做,比方像魔獸戰士的charge技能,就有機率會掉到地底下…目前我對使用physx sdk,只使用他碰撞處理的部份,沒使用他的Dynamic RigidBody Movement,位移量全是自己給的,所以不清楚如何處理你的問題,抱歉囉!但原則上我覺得應該是要調整質量才對,因為你調整重力,會影響到所有的物件,比方羽毛也一起掉得很快,解決問題的方向上應該不是朝調整重力。

    回覆刪除
  13. 夢大好:
    那想請問一下夢大用PHYSX 一開始也是箱子輕飄飄的嗎?所以你另外加力量給箱子 讓箱子有重力掉落的感覺? 是這樣的意思嗎?

    還有一種情況是 我的重力-9.81是正常的 但是箱子掉落地面之後
    好像很容易出現不正常彈跳的情況 我有把彈跳力設為0
    但是感覺像是箱子跟地面重疊的關係 硬把箱子彈出來那種感覺
    夢大有遇到這種情況嗎?

    謝謝^^

    回覆刪除
  14. 夢大 還有一個關於3D角色動畫模組的問題
    例如說 我今天做了一個角色 也做好了10個動作動畫(走路 攻擊等)
    那麼我今天要加入新角色的畫 想直接套用原本的10個動畫
    有需要重做一次動畫嗎? 還是要寫程式去套用? 還是說由3D軟體去套用呢?

    回覆刪除
  15. 您好:
    抱歉囉!因為對PHYSX不是很熟,所以可能解決不了你的問題。
    至於動畫部份,就用Max將動畫(相關的keyframe)做好,輸出到skeleton裡,比方0~10=Idle,11~20=walk,然後就可以在程式切換動作了。

    回覆刪除
  16. 恩恩~了解~
    PHYSX我會在研究看看~
    夢大感謝您^^

    回覆刪除
  17. 夢大安:
    順便想請問一下 關於人物跳躍方面 您是瞬間給一個力量
    讓人物彈起來嗎? 還是說自己計算位移量?

    回覆刪除
  18. 鹽巴您好:
    我是自己計算位移量給角色,完全沒有用dynamic rigid body的部份。可以參考這篇http://makedreamvsogre.blogspot.com/2010/06/blog-post.html,希望對您有幫助。

    回覆刪除
  19. 夢大感謝^^
    小弟真是受益良多 那我再研究看看
    改天有空出來吃個飯嗎XD

    回覆刪除
  20. 夢大安:
    對了 夢大順便在請問一下
    例如我有一個箱子模型(SIZE 1) 套入物理 有了碰撞判定
    可是我從程式中使用setScale(10,10,10)把箱子調大10倍之後
    碰撞判定卻還是原本SIZE 1的碰撞大小
    請問這是也是正常的嗎?
    還是說PHYSX那邊也需要相對應的調整呢?

    回覆刪除
  21. 之前有測過突多邊形Convex Holl的東西,有提到不支援Scale,也就是如果要Scale的話,要重建,至於Dynamic Rigid Body就不知道有沒有支援了,所以不確定是否正常。

    回覆刪除