我试图将使用3DS Max制作的汽车对象加载到JOGL程序中,但我不知道该怎么做。我在网上搜索过,但没有取得好成绩。
我尝试this但没有结果。
是否有关于如何做到这一点的教程?或者如何编写自己的装载机?或者我已经写过的课程?
答案 0 :(得分:2)
Here是用Oskar Veerhoek作为the Coding Universe website的一部分的the joglobj library用Java编写的OBJ格式的非常有限的加载器(但遗憾的是使用低级LWJGL而不是JOGL)。您可以使用File
方法或loadModel(File f)
方法将引用OBJ文件的{{1}}对象传递到该类。返回的loadTexturedModel(File f)
对象包含OBJ文件描述的3D模型。然后,您应该将Model
对象传递给提供的实用程序方法Model
,createTexturedDisplayList(Model m)
或createDisplayList(Model m)
。它们返回一个可渲染的顶点缓冲区对象或显示列表,然后您可以将其用作渲染的一部分。但请注意,如果提供的不符合您的需求,您可以将自己的createVBO(Model model)
编写为可渲染方法,但我强烈建议您先了解/阅读所提供的方法。
使用JOGL用Java编写的this dependency是一个功能更全面的替代方案。这个加载器更完整,但它在某些方面没有正确处理透明度和纹理。使用此加载器将需要the oObjLoader library(用于解析OBJ文件)。
另一种选择是this question from user skaffman,其中"是一个用于解析和加载WaveFront .OBJ文件的java库。"
如果这些都不符合您的需求,请参阅其他类似的SO问题,例如This。此外,游戏开发特定的堆栈交换是寻找类似相关问题的好地方。 http://localhost/是该部分的一个问题,该部分讨论了正确加载OBJ文件的问题。
答案 1 :(得分:1)
我建议你阅读the Wikipedia article on Wavefront .obj file (and MTL),外部链接也很有趣,尤其是规范,它有助于理解这种ASCII文件格式,它的"命令" (v,vf,vn,vt,f,mtllib,usemtl,o,s,g,...)及其结构。
我引用的其他示例可以帮助您了解如何解析文件并将数据转换为更多的东西" OpenGL友好"通过使用一些JOGL类或更多高级实用程序。
JOGL中有一个OBJ加载器,JOGL-Utils中有另一个加载器:ObjReader和WaveFrontLoader。
还有LibGDX OBJ loader。 LibGDX有一个基于JOGL的非官方后端,由@bgroenks,@ xranby和我积极维护。
您也可以使用JogAmp's Ardor3D Continuation(它使用JOGL),您可以查看this simple example,its WaveFront OBJ importer(它向您展示如何解析OBJ文件)ant {{ 3}}(它显示了如何将数据存储到某些结构中以便稍后使用JOGL进行绘制)。
注意:我负责JogAmp社区的引擎支持,我在its storage,而且我是JogAmp的Ardor3D Continuation的主要贡献者,这是&n #39; Ardor3D的ta分叉但是#34;继续"。根据其主要开发人员Renanse list of the official maintainers所述,传统Ardor3D的开发于2014年3月停止。