我希望能够从.obj文件中获取信息(如子组件的名称)。那边有装载机吗? Java3D有一个ObjectFile,但是我看过的方法列表让我觉得它并不是我想要的。我自己解析文件会更好吗?
由于 - 将会
答案 0 :(得分:7)
几个月前我写了一个java obj文件格式加载器,应该可以轻松地完成你需要的工作。 它位于git hub上;
https://github.com/seanrowens/oObjLoader
请注意,README表示它是pre-alpha - 这主要是因为几乎没有其他人看到过它。
它解析大多数.obj格式以及.mtl格式。现在用它解析的内容做了什么...好吧,我试图采用类似SAX的方法。有一个Parser,它使用每个已解析的元素调用BuilderInterface上的方法。 BuilderInterface有一个简单的示例实现,还有一个简单的LWJGL查看应用程序,将它们连接在一起。
它目前没有对更奇特的几何语句做任何有用的事情,即顶点和多边形以外的任何东西,换句话说,它忽略除顶点和多边形之外的任何几何。它解析并捕获.mtl文件,但实际的查看器除了非常非常简单的纹理外没有实现任何东西。
我非常乐意听到任何反馈和建议。许可证非常自由;
这段代码是我自己写的,Sean R. Owens,sean at the guild dot net, 并发布到公共领域。分享和享受。一些 人们认为不可能向公众发布软件 域名,您也可以在任何版本下免费使用此代码 GPL,LPGL,Apache或BSD许可证,或与我联系以使用其他许可证 许可证。
答案 1 :(得分:4)
我编写了一个Java库,可以帮助您解析OBJ和MTL资源。
<强> https://github.com/mokiat/java-data-front 强>
以下是它支持的一些功能:
v
)。vn
)。vt
)。mtllib
o
)的列表及其名称。
usemtl
)newmtl
)及其名称的列表
Kd
)Ks
)Ka
)d
)map_Kd
)OutOfMemory
例外。 实施由足够数量的测试支持。该库没有运行时依赖性,因此它应该很容易集成到您的项目中。
它是通过Maven构建的,因此很容易集成到Maven项目中。 (您需要在本地存储库中手动注册它)。如果您的项目不是Maven,请不要担心,这应该不是问题。