java - 有没有办法将 Collada 文件导入 Java?

标签 java 3d collada

我们的小 3D 程序有一个图形数据结构,它只包含有关顶点和边的信息,没有填充等。我们只想获取有关点位置以及它们如何连接在一起的信息。 (据我所知,这叫做网格数据,这个术语正确吗?)

有没有图书馆可以做这样的事情,或者接近我想要实现的目标?例如,是否有一个库允许我只使用一个接收该文件的函数并实例化一个将具有所有这些网格信息的新对象?

如果没有,完成这项工作的步骤是什么?

最佳答案

我知道您需要解析 COLLADA 中的 3D 信息并将其转换为您的内部数据结构。您可以使用 JAXB 和 COLLADA 模式文件为 COLLADA 元素创建 POJO。但这并不容易,因为模式中存在一些名称冲突问题。你需要做一些黑客来摆脱这个。这是一个链接,它解释了如何做到这一点: http://shinoblogbyshiva.blogspot.de/2009/01/compiling-collada-15-schema-by-jaxb.html .

根据此链接,您需要具备 3 个条件: 1) Collada XML 模式 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:航行 3d 数字内容创作的海湾”。

关于java - 有没有办法将 Collada 文件导入 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30733570/

相关文章:

java - 查找给定字符串中字符的重复次数并对其进行排序?

javascript - 3ds max > collada > Threejs 动画错误, "Scale out of bounds"

java - 覆盖具有通用签名的抽象方法并调用它

java - 如何扩展 Hibernate Reader?

java - YouTube 视频 Activity

c++ - 如何在 3D 环境中沿对象在 C++ 中面向的方向移动对象

javascript - three.js对象交集

3d - 3d 空间中 3 个点之间的角度

ios - 在 iOS SceneKit 中如何将 .dae 文件加载到 SCNNode 中?

javascript - 在 Three.js 中加载 DAE