加载触控式3D模型

时间:2012-10-25 17:21:04

标签: objective-c ios 3d xcode4.5

我正在编写一个博物馆应用程序,我想显示一个响应用户触摸的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 0x51bb50 0xbef9ff 0xbf04e1 0xc01315 0xc0224b 0xbf3cf8 0x2fd4df9 0x2fd4ad0 0x2241bf5 0x2241962 0x2272bb6 0x2271f44 0x2271e1b 0xbef7da 0xbf165c 0x1ca506 0x2a55) libc ++ abi.dylib:terminate调用抛出异常 (lldb)

它无法加载所有多边形和崩溃。那有什么解决方案吗?或者我必须明星寻找另一种加载模型的方法?你需要更多的信息。感谢。

1 个答案:

答案 0 :(得分:2)

我使用Cocos3D导入地球模型并根据用户的手势旋转它。你可以看一看,这不是一件复杂的事情。

有关加载模型的示例代码,请查看this post。为了处理轮换,我发现非常有用this post