Java - Loading .OBJ files

will picture will · Aug 29, 2011 · Viewed 19.7k times · Source

I want to be able to get information (like names of sub-components) from an .obj file. Is there a loader out there somewhere to do this? Java3D has an ObjectFile, but the list of methods I've seen makes me think it is not exactly what I want. Would I be better off just parsing the file myself?

Thanks -Will

Answer

Sean R Owens picture Sean R Owens · Dec 19, 2011

I wrote a java obj file format loader a few months ago that should easily do what you need. It's on git hub at;

https://github.com/seanrowens/oObjLoader

Note that the README says it's pre-alpha - this is primarily because pretty much nobody else has seen it yet.

It parses most all of the .obj format as well as the .mtl format. Now what it DOES with what it parses... well, I tried to take a SAX like approach. There is a Parser that calls methods on a BuilderInterface with each parsed element. There is a simple sample implementation of the BuilderInterface and also a simple LWJGL viewing app that ties it all together.

It doesn't currently do anything useful with more exotic geometry statements, i.e. anything other than vertices and polygons, in other words it ignores any geometry except for vertices and polygons. It parses and captures .mtl files but the actual viewer doesn't implement anything except very very very simple textures.

I'd more than happy to hear any and all feedback and advice. The license is extremely liberal;

This code was written by myself, Sean R. Owens, sean at guild dot net, and is released to the public domain. Share and enjoy. Since some people argue that it is impossible to release software to the public domain, you are also free to use this code under any version of the GPL, LPGL, Apache, or BSD licenses, or contact me for use of another license.