Mobile 3D Graphics API

Mobile 3D Graphics API
M3G redirects here, for the morphine metabolite see Morphine-3-glucuronide
Screenshot of Asphalt 3: Street Rules, showing the capabilities of the Mobile 3D Graphics API.

The Mobile 3D Graphics API, commonly referred to as M3G, is a specification defining an API for writing Java programs that produce 3D computer graphics. It extends the capabilities of the Java ME, a version of the Java platform tailored for embedded devices such as mobile phones and PDAs. The object-oriented interface consists of 30 classes that can be used to draw complex animated three-dimensional scenes. M3G was developed under the Java Community Process as JSR 184. As of 2007, the current version of M3G is 1.1, but version 2.0 is in development as JSR 297.


Goals of M3G

M3G was designed to meet the specific needs of mobile devices, which are constricted in terms of memory, and processing power, and which often lack an FPU and graphics hardware such as a GPU. The API's architecture allows it to be implemented completely inside software or to take advantage of the hardware present on the device.

M3G is not Java 3D

M3G should not be mistaken for Java 3D, which extends the capabilities of the Java SE. Java 3D is designed for PCs that have more memory and greater processing power than mobile devices. M3G and Java 3D are two separate and incompatible APIs designed for different purposes.

Immediate and Retained Modes

M3G provides two ways for developers to draw 3D graphics: immediate mode and retained mode. In immediate mode, graphics commands are issued directly into the graphics pipeline and the rendering engine executes them immediately. When using this method, the developer must write code that specifically tells the rendering engine what to draw for each animation frame. A camera, and set of lights are also associated with the scene, but is not necessarily part of it. In immediate mode it is possible to display single objects, as well as entire scenes (or worlds, with a camera, lights, and background as parts of the scene).

Retained mode always uses a scene graph that links all geometric objects in the 3D world in a tree structure, and also specifies the camera, lights, and background. Higher-level information about each object — such as its geometric structure, position, and appearance — is retained from frame to frame.

Other Features

The M3G standard also specifies a file format for 3D model data, including animation data. This allows developers to create content on PCs that can be loaded by M3G on mobile devices.

Advantages and disadvantages of M3G

M3G is a high level 3D API that allows you to get results quickly. With only a few lines of code you can import a scene and animate it. The API is intuitive and has quite sophisticated features. The down side is that it runs quite slow on a lot of mobile phones. This is mainly because it uses floats and most mobile phones do not have a processor with a floating point unit. Nevertheless, the performance can be acceptable if you optimize your program correctly (especially on newer phones). Alternative proprietary APIs such as Mascot Capsule run faster (because of its use of fixed point calculations), but aren't as widely supported.

Further reading

  • Alessio Malizia: Mobile 3D Graphics, Springer, 2006, ISBN 978-1-84628-383-3
  • Kari Pulli, Tomi Aarnio, Ville Miettinen, Kimmo Roimela, Jani Vaarala: Mobile 3D Graphics with OpenGL ES and M3G, Morgan Kaufmann, 2007, ISBN 0-12373-727-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

M3G utilities

External links

Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Mobile 3D Graphics API — У этого термина существуют и другие значения, см. M3G. Mobile 3D Graphics API (M3G)  стандарт для языка Java, определяющий программный интерфейс и формат файлов для создания интерактивной трехмерной графики на мобильных устройствах. Стандарт …   Википедия

  • Mobile Service Architecture — (MSA) JSR 248 is a specification that describes an end to end wireless environment for Java ME. MSA includes a full set of 16 JSRs and a subset of 8 JSRs: Contents 1 MSA Subset 2 MSA 3 See also 4 …   Wikipedia

  • Graphics processing unit — GPU redirects here. For other uses, see GPU (disambiguation). GeForce 6600GT (NV43) GPU A graphics processing unit or GPU (also occasionally called visual processing unit or VPU) is a specialized circuit designed to rapidly manipulate and alter… …   Wikipedia

  • Mobile Information Device Profile — (MIDP) is a specification published for the use of Java on embedded devices such as mobile phones and PDAs. MIDP is part of the Java Platform, Micro Edition (Java ME) framework and sits on top of Connected Limited Device Configuration (CLDC), a… …   Wikipedia

  • Graphics Device Interface — The Graphics Device Interface (GDI) is a Microsoft Windows application programming interface and core operating system component responsible for representing graphical objects and transmitting them to output devices such as monitors and printers …   Wikipedia

  • Mobile Information Device Profile — MIDP (Mobile Information Device Profile) ist ein Profil der Java 2, Micro Edition (J2ME), das speziell auf die Fähigkeiten kleiner Mobilgeräte wie Mobiltelefon oder PDA ausgelegt ist. Es umfasst daher Funktionen zur Ansteuerung und Abfrage von… …   Deutsch Wikipedia

  • Comparison of Nvidia graphics processing units — For information on AMD (previously ATI) graphics processing units, see Comparison of AMD graphics processing units. This page contains general information about Nvidia s GPUs and videocards based on official Nvidia specifications. Contents 1… …   Wikipedia

  • Scalable Vector Graphics — Infobox file format name = Scalable Vector Graphics icon = caption = extension = .svg, .svgz mime = image/svg+xml [ [ M Media Type registration for image/svg+xml] ] type code = uniform type = magic =… …   Wikipedia

  • Comparison of AMD graphics processing units — For information on Nvidia graphics processing units, see Comparison of Nvidia graphics processing units. This page contains general information about the GPUs and video cards by Advanced Micro Devices (AMD), including those by ATI Technologies… …   Wikipedia

  • Scalable Vector Graphics — Vorlage:Infobox Dateiformat/Wartung/MagischeZahl fehltVorlage:Infobox Dateiformat/Wartung/Standard fehlt Scalable Vector Graphics Vorlage:Infobox Dateiformat/Wartung/Screenshot Format …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”