Mobile 3D Graphics API
| Company type | Open source software |
|---|---|
| Industry | Software, Mobile graphics |
| Founded | December 22, 2003 |
| Headquarters | Tampere , Finland |
| Products | 3D graphics API and file format for Java ME |
The Mobile 3D Graphics API (M3G) represents an open source graphics interface and file format standard designed for creating Java ME applications that render 3D visuals on embedded gadgets such as mobile phones and PDAs.
History
Originating from the Nokia Research Center in Tampere between 2003 and 2005, M3G was formalized through the Java Community Process as JSR 184 on December 22, 2003. The latest stable release by 2007 was version 1.1, while version 2.0 was proposed under JSR 297 in April 2009. In 2010, the source code for M3G 1.1 JNI along with related Java Runtime Environment components for Symbian OS were made publicly available via the Symbian Foundation under an open source license.
Rendering
M3G provides an object-oriented framework comprising 30 classes that facilitate the creation of sophisticated animated three-dimensional scenes, supporting both immediate and retained rendering approaches.
With immediate mode, graphics commands are sent directly to the renderer for each frame of animation, requiring external management of scene elements such as cameras and lighting. This mode allows rendering either single objects or full scenes.
Retained mode utilizes a scene graph structure where all geometric entities are organized hierarchically in a tree, including components like cameras, lights, and backgrounds. Data concerning object geometry, positioning, and appearance is preserved across frames. Instead of relying on Java’s native serialization mechanism, M3G employs a specialized serialization method that generates .m3g files conforming to the M3G file format standard. This approach supports content development on desktop environments for subsequent deployment on mobile platforms.
Further reading
- Kari Pulli, Tomi Aarnio, Kimmo Roimela, Jani Vaarala: Designing graphics programming interfaces for mobile devices, IEEE Computer Graphics and Applications, 2005, Vol. 25, Issue 6, pp. 66–75
- Aarnio, Callow, Miettinen, Vaarala: Developing Mobile 3D Applications With OpenGL ES and M3G, SIGGRAPH 2005 Courses
- Alessio Malizia: Mobile 3D Graphics, Springer, 2006, ISBN 978-1-84628-383-3
- Kari Pulli et al.: Mobile 3D Graphics with OpenGL ES and M3G, Morgan Kaufmann, 2007, ISBN 0-12-373727-3
- Claus Höfele: Mobile 3D Graphics: Learning 3D Graphics with the Java Micro Edition, Thomson Course Technology PTR, 2007, ISBN 1-59863-292-2
- Carlos Morales, David Nelson: Mobile 3D Game Development: From Start to Market, Charles River Media, 2007, ISBN 1-58450-512-5
External links
- JSR 184 (Mobile 3D Graphics API for J2ME versions 1.0 and 1.1 Final Release)
- JSR 297 (Proposed Final Draft of Mobile 3D Graphics API version 2.0)
- JSR 239 (Java Bindings for OpenGL ES – a related Java ME graphics specification)
- Specifications
- JSR-000184 Mobile 3D Graphics API for J2ME(TM) version 1.1 Maintenance Release
- JSR 184 Specification Version 1.1
- Introduction to the Mobile 3D Graphics API for J2ME
- IBM developer articles covering mobile Java-based 3D graphics: Part One and Part Two
- Device compatibility listings
- Source code repository hosted by Symbian Foundation on GitHub