Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I need to display, rotate, and zoom a 3D model in OpenGL ES (iPhone/iPad). The 3D graphic artists are using Maya (on OS/X). What export format should I be looking at to use their 3D models in the app?

Also, a number of Maya plug-ins don't work on the Mac (apparently it doesn't handle plug-ins the same way as Windows and Linux), so I may need an external tool to handle the conversion.

I'm still learning my way around the 3D dev-world, so any advice is appreciated.


share|improve this question
up vote 4 down vote accepted

One thing to know about OpenGL is that it doesn't have native model loaders. That is, there is no glLoadModel() function or similar. Instead, you must either use an existing loader that converts the coords into something OpenGL can read. It doesn't really matter what you use as a format, but .obj is probably the simplest and most popular to go with.

The wavefront .obj loader

share|improve this answer

It seems like you:

You can pick a format you want to support then write a loader for the model.

I found a forum page where someone wrote an .obj loader.

share|improve this answer

As others suggested, the obj format might be a way to go. It doesn't support bones or animations though.

Another option is COLLADA. Since this is an XML file you should be able to parse and extract information from it easily. Here's a blog post that sheds some light on this.

Writing a good/robust parser for COLLADA won't be easy though. My biggest gripe with COLLADA is, that the generated files from different applications (eg. a COLLADA file exported with Blender and one exported with Maya) can be quite different.

Depending on how many features you need, it could also be advisable to compile a parser like COLLADA DOM for iOS (maybe it has been done already).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.