Channels ▼


Importing 3D Models into Mobile Java Devices

Source Code Accompanies This Article. Download It Now.

Tripping Over First Hurdles

For a recent project, I had to demonstrate M3G's capabilities by writing a MIDlet that would display 3D models and let users interact with them. The MIDlet had to function identically on several types of handsets. My initial plan was to download a model in M3G format and add it to an M3G-capable MIDlet I wrote. The MIDlet would load the 3D model and display it on-screen. By pressing buttons on the phone's keypad, the MIDlet would make M3G API calls that manipulated the model's orientation.

After conducting Google searches and code experiments, I discovered that there weren't any M3G model files available anywhere. I would have to make the model myself, then somehow export it into a format or data arrays useable by M3G. The project was turning ugly.

This isn't to say a migration path wasn't in place when the M3G specification was implemented on vendors' phones in 2005. Hi Corporation, the company that did the M3G implementation for Sony Ericsson and Sprint-badged phones, provides plug-ins that let you export 3D models from several high-end commercial 3D authoring applications—Autodesk's 3ds Max (formerly Discrete's 3D Studio Max), Newtek's LightWave, Autodesk's Maya (formerly Alias), and Softimage's SOFTIMAGE|XSI. There are also utilities such as M3GExport Limited and M3GExporter that translate Maya and 3ds Max files, respectively.

But there's a catch. The price tag for commercial 3D authoring programs start at $500 and go as high as $4000! The plug-in situation also eliminates the use of capable shareware and freeware 3D authoring applications. For developers on a tight budget, migrating a 3D model from a PC to a MIDlet amounted to the adage "you can't get there from here."

Eventually, I discovered ways to accomplish the migration. The technique I describe here exports a model's geometry and appearance as data arrays. (In a future article, I will describe how to export the model in M3G file format.)

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.