有没有一种方法可以将Collada文件导入Java?

3
我们的小型3D程序中有一个图形数据结构,它只包含有关顶点和边缘的信息,没有填充等内容。我们只想获取有关点位置及其如何连接在一起的信息。 (据我了解,这被称为Mesh数据,这个术语正确吗?)
是否有类似于此的库,或者接近我想要实现的东西?例如,是否有一个库,可以让我使用一个函数来输入该文件并实例化一个新对象,该对象将具有所有这些网格信息?
如果没有,那么完成此操作的步骤是什么?
2个回答

2
我明白您需要解析COLLADA中的3D信息并将其转换为您的内部数据结构。您可以使用JAXB和COLLADA模式文件为COLLADA元素创建POJOs。但是由于模式中存在一些名称冲突问题,因此这并不容易。您需要做一些技巧来摆脱这种情况。以下是一个链接,解释了如何做到这一点:http://shinoblogbyshiva.blogspot.de/2009/01/compiling-collada-15-schema-by-jaxb.html
根据此链接,您需要有三件事: 1)Collada XML-Schema 2)帮助架构(http://interreality.org/bzroot/vos/supervos/colladajaxb/src/simpleMode.xsd) 3)和最新版本的JAXB。 然后像这样使用JAXB中的xjc:
"xjc collada_schema_1_5.xsd -extension simpleMode.xml"
请确保文件的路径正确。
在您拥有POJO之后,您可以解析COLLADA文件。但对于转换过程,您是独自完成的。您应该了解COLLADA中元素的定义,并将它们与您自己的结构进行比较。这有点复杂,我建议您阅读Remi Arnaud的书“Collada:驾驶三维数字内容创建的海湾”。

链接的博客似乎是空的,而链接的文件无法访问(404错误)。您知道在哪里可以找到simpleMode.xsd吗? - Caelum
1
@user2104648 你可以在这里找到它: http://interreality.org/bzroot/vos/supervos/colladajaxb/src/simpleMode.xsd - Endery

0
如果可以的话,尽量转换为wavefront .obj文件。这些文件可以用几行代码解析,并且很可能就是你想要的东西(例如,将你的collada导入到blender中,然后再导出为obj)。
如果不行的话,可以尝试使用lwjgl。这个库可以让你访问assimp,它可以为你加载任何3D物体格式的文件。

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