2012-10-25 157 views
3

我是programmimg博物館的應用程序,我想顯示一個響應用戶觸摸的3D模型,如捏縮放或移動模型周圍。我搜索了很多,但我發現的只是遊戲引擎,對於這件事情看起來很複雜。有什麼方法可以導入模型(它們的格式不重要),顯示模型並使其觸摸響應?如果代碼(或引擎)是開源的會更好,我更喜歡免費的應用程序比付費的應用程序。非常感謝!加載觸摸響應3D模型

更新:現在我可以使用cocos3D加載3D模型,但正如我在答案中所說的,我可以加載的模型非常低效。這是一個博物館的應用程序,我必須是一個更詳細的模型。我正在使用顯示動畫「hello world」的cocos3D標準模板項目,只是更改了.pod文件以加載我想要的文件,並開始添加一些修改以支持用戶觸摸交互。我將原始多邊形的數量減少了約80%(this is how looks a small part of the model )。如果我嘗試加載模型降低了約50%的原始(這看起來不錯,like these ),應用程序崩潰,給我這個日誌崩潰:

**終止應用程序由於未捕獲的異常「NSInternalInconsistencyException」,究其原因: '的OpenGL ES 1.1僅支持GL_UNSIGNED_SHORT或GL_UNSIGNED_BYTE類型頂點索引' *第一擲調用堆棧: (0x22cc012 0x1ca9e7e 0x22cbe78 0x173ff35 0x1b550f 0x186751 0x180a81 0x17b750 0x11de32 0x1270d4 0x1263ac 0x14f1a2 0x13ca01 0x14ee02 0x14d45e 0x14d3c2 0x14bb22 0x14a452 0x14efcc 0x14d493 0x14d3c2 0x1643e3 0x162a41 0x10c197 0x10c11d 0x10c098 0x3d79c 0x3d76f 0x85282 0x16e9884 0x16e9737 0x8b56f 0xc4192d 0x1cbd6b0 0x505fc0 0x4fa33c 0x4fa150 0x4780bc 0x479227 0x51bb 50 0xbef9ff 0xbf04e1 0xc01315 0xc0224b 0xbf3cf8 0x2fd4df9 0x2fd4ad0 0x2241bf5 0x2241962 0x2272bb6 0x2271f44 0x2271e1b 0xbef7da 0xbf165c 0x1ca506 0x2a55) 的libC++ abi.dylib:終止稱爲拋出異常 (LLDB)

它不能裝入所有的多邊形和崩潰。有沒有解決方案?或者我必須以另一種方式加載模型?你只需要詢問更多的信息。謝謝。

+0

嗨,你有能力做的應用程序?我正在尋找確切的相似的例子。如果你不介意你能幫我一把。 – sajaz

回答

2

我用Cocos3D導入地球模型,並根據用戶做出的手勢旋轉它。你可以看看它,這不是一件複雜的事情。

查看關於加載模型的一些示例代碼,請參閱this post。對於處理旋轉,我發現非常有用this post

+0

好的謝謝。我會嘗試cocos3D來做到這一點 – joan2404

+0

我設法加載模型我想要的模板項目的cocos3D,但我仍然不能旋轉它與用戶交互。我正在努力瞭解在cocos3D演示項目中稱爲「CC3Demo3DTiles」的旋轉是如何工作的。但除此之外,我還有一個問題。我擁有的3D模型非常「高分辨率」,我必須降低模型的質量,才能將其加載到cocos3D或應用程序崩潰中。有什麼方法可以加載更高質量的3D模型? Gràciesper l'ajuda(感謝您的幫助)! – joan2404

+0

你的模型可能有超過64K的頂點嗎?這是Cocos3D的限制:http://www.cocos2d-iphone.org/forum/topic/22794,它只支持unsigned short類型的索引。所以,也許唯一的途徑就是轉向另一個3D框架;據我所知,一個開源的替代品是iSGL3D,或者你可以去一個專有的,比如Unity 3D,但是我從來沒有用過它們,所以我不能告訴你任何關於它們的確切信息。對不起(ho sento)。 – sergio