用于开发导入器的样例COLLADA文件?

18
我准备用Java编写COLLADA导入器。目前没有现成的导入器,即使有也可能无法满足我的要求,因此我认为自己写最好。我选择COLLADA 1.4版本,因为我不需要1.5版本的功能,而且许多程序还不支持它。我找到了相应的规范文档,打算按照规范进行编写,但参考样例并结合规范获得附加信息更容易些。
鉴于上述情况……你们中有谁对COLLADA有丰富经验能指点一些我可以用来学习和测试导入器的简单模型吗?我会导出一些纯几何图形的模型,但我需要其他一些带有纹理或材质、带有骨骼和关键帧动画等模型。你们有什么建议吗?
另外,我知道Blender可以导出COLLADA 1.4,并可以导入大多数格式。如果你们有一个真正好的建议,能提供以其他格式表达的简单3D模型,我只需将其导入并导出为COLLADA,那也很棒!
谢谢!

3
你好,你是否曾经成功地找到或创建了一个良好的用于Java的COLLADA导入器?我之所以问这个问题是因为我现在正在寻找一个…… - mikera
5个回答

15

3

1
或者直接从Github获取文件 https://github.com/assimp/assimp/tree/master/test/models/Collada - Akkumulator

1
问题在于,据我所知,没有任何工具(至少公开可用的)支持完整的Collada规范(尤其是1.5版)。在大多数情况下经过充分测试和开发的部分是几何库元素、材料等,这些通常来自一些1.4实现(这就是为什么通常声称支持1.5的工具实际上不支持物理、运动学等大多数情况下缺失或状况不佳的原因)。但你仍然可以使用各种三维建模软件的导出功能(如Blender、Maya、3ds Max、CATIA等)轻松创建足够好的(几何部分OK,但其他部分可能是或可能不是)Collada文件。OpenRAVE(用于机器人路径规划)实际上拥有最好的导出/导入能力,当涉及到COLLADA时,甚至支持(部分)1.5特性,如运动学。
如果你决定使用Blender(免费且开源,因此可以查看导入/导出插件的工作原理),你可以创建简单或复杂的模型并将其导出为COLLADA 1.4格式(而不是1.5!)。例如,OpenRAVE使用自定义的XML格式,在内部转换为Collada(以隐藏这个标准的复杂性),并允许您嵌入其他格式(主要用于几何部分),例如OBJ,这样可以更容易地找到一个像样的导入/导出工具。Khronos Group实际上提供了OpenCollada(OpenRAVE和许多其他软件在内部使用它),这当然会导致所有这些软件中出现错误,当OpenCollada中某些内容实现得很糟糕时:P。Assimp库也提供了相当多的功能,但最大的问题是它会给出关于它实际支持的Collada标准功能的错误信息。事实上,当涉及Collada时,很难找到已实现功能的参考资料。可悲的是,最近我开始使用1.5版(运动学),结果发现Assimp仅支持1.4版,并且与之绑定到如此程度,以至于即使遇到通常为空的1.5元素(即使为空!),它也会向您抛出错误,我认为这是开发人员非常糟糕的实现。在Assimp网站上支持的格式列表中,只列出了 Collada ,没有给出版本信息。
我知道这个问题很老,已经有答案了,但我希望这些信息能有所帮助。我自己正在为目前工作中的内部使用编写一个C#解析器,发现这个ISO标准的支持非常糟糕,真是让人头疼。Collada的复杂性非常大,这就是为什么它被认为是一种管道格式,而不是你应该在依赖良好性能(速度和存储)的最终产品中使用的东西。

0

WebGL框架three.js在他们的GitHUB页面上有一些示例这里

怪物文件可以在这里看到它的运行情况。


0
Blendswap.com是一个非常棒的网站,有大量适用于Blender的模型。一旦您注册了账户,就可以免费下载它们。您甚至可以在商业上使用该网站上的大部分模型。在您下载之前,它会告诉您是否需要给作者信用,尽管有些模型可以在不给出信用的情况下使用,但仍建议给出。请注意,每月下载限制为200 MB。有很多1MB的模型,所以在下载之前请检查文件大小。然后您可以在Blender中使用Collada导出器。请确保检查Collada导出器的设置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接