3

我正在编程一个博物馆应用程序,我想显示一个响应用户触摸的 3D 模型,例如捏缩放或围绕模型移动。我已经搜索了很多,但我发现的只是游戏引擎,对于这件事来说似乎非常复杂。有什么方法可以导入模型(它们具有的格式无关紧要),显示它并使其触摸响应?如果代码(或引擎)是开源的会更好,我更喜欢免费应用程序而不是付费应用程序。非常感谢!

更新:现在我可以使用 cocos3D 加载 3D 模型,但正如我在回答中所说的那样,我可以加载的模型非常低调。这是一个博物馆的应用程序,我必须是一个更详细的模型。我正在使用显示动画“hello world”的 cocos3D 标准模板项目,只是更改了 .pod 文件以加载我想要的文件并开始添加一些修改以支持用户触摸交互。我减少了大约 80% 的原始多边形来加载它(这是模型的一小部分 )。如果我尝试加载将原始模型减少约 50% 的模型(看起来很棒,就像这些 ),应用程序崩溃并给我这个日志崩溃:

** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'OpenGL ES 1.1 supports only GL_UNSIGNED_SHORT or GL_UNSIGNED_BYTE types for vertex indices' * First throw call stack: (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)

它无法加载所有多边形并崩溃。有什么解决办法吗?或者我必须寻找另一种加载模型的方法?如果您想了解更多信息,请询问。谢谢。

4

1 回答 1

2

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

查看这篇文章以获取有关加载模型的一些示例代码。对于处理旋转,我发现这篇文章非常有用。

于 2012-10-25T18:28:10.170 回答