HOME

TheInfoList



OR:

The Mobile 3D Graphics API, commonly referred to as M3G, is a specification defining an
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
for writing
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
programs that produce
3D computer graphics 3D computer graphics, or “3D graphics,” sometimes called CGI, 3D-CGI or three-dimensional computer graphics are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for t ...
. It extends the capabilities of the
Java ME Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of portable code for embedded and mobile devices (micro-controllers, sensors, gateways, mobile phones, personal digital assistants, TV set-top ...
, a version of the
Java platform Java is a set of computer software and specifications developed by James Gosling at Sun Microsystems, which was later acquired by the Oracle Corporation, that provides a system for developing application software and deploying it in a cro ...
tailored for
embedded device An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' a ...
s such as
mobile phone A mobile phone, cellular phone, cell phone, cellphone, handphone, hand phone or pocket phone, sometimes shortened to simply mobile, cell, or just phone, is a portable telephone that can make and receive telephone call, calls over a radio freq ...
s and PDAs. The
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
interface consists of 30 classes that can be used to draw complex animated three-dimensional scenes. M3G was developed under the
Java Community Process The Java Community Process (JCP), established in 1998, is a formalized mechanism that allows interested parties to develop standard technical specifications for Java technology. Anyone can become a JCP Member by filling a form available at thJCP we ...
as JSR 184. , 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 A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mob ...
. The API's architecture allows it to be implemented completely inside
software Software is a set of computer programs and associated software documentation, documentation and data (computing), data. This is in contrast to Computer hardware, hardware, from which the system is built and which actually performs the work. ...
or to take advantage of the hardware present on the device.


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 In filmmaking, video production, animation, and related fields, a frame is one of the many ''still images'' which compose the complete '' moving picture''. The term is derived from the historical development of film stock, in which the sequentia ...
. 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 Scene (from Greek σκηνή ''skēnḗ'') may refer to: Arts, entertainment, and media Music *Scene (subculture), a youth subculture from the early 2000s characterized by a distinct music and style. Groups and performers * The Scene who recor ...
that links all geometric objects in the 3D world in a
tree structure A tree structure, tree diagram, or tree model is a way of representing the hierarchical nature of a structure in a graphical form. It is named a "tree structure" because the classic representation resembles a tree, although the chart is genera ...
, 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.


Further reading

* Alessio Malizia: ''Mobile 3D Graphics'', Springer, 2006, * Kari Pulli, Tomi Aarnio,
Ville Miettinen Ville Ilmari Miettinen (born June 5, 1975 in Geneva, Switzerland) is a Finnish serial entrepreneur and computer programmer. Miettinen was the co-founder and CTO of Hybrid Graphics, a graphics technology company acquired by NVIDIA in 2006.NVIDIA ...
, Kimmo Roimela, Jani Vaarala: ''Mobile 3D Graphics with OpenGL ES and M3G'', Morgan Kaufmann, 2007, * Claus Höfele: ''Mobile 3D Graphics: Learning 3D Graphics with the Java Micro Edition'', Thomson Course Technology PTR, 2007, * Carlos Morales, David Nelson: ''Mobile 3D Game Development: From Start to Market'', Charles River Media, 2007,


M3G utilities


Desktop-M3G
– Open source implementation of M3G for Linux and Android
XMM3G
– Open source implementation of M3G for Windows, WinCE, Linux, Android, iOS and Bada
M3X
– XML encoding of the .m3g file format and related open-source tools
Wizzer Works M3G Viewer
– open source toolkit for viewing and manipulating .m3g files
M3GExport for Maya

Mascot Capsule M3G Exporter
for 3ds Max, Maya, Lightwave, and Softimage, XSI
M3G Exporter for Milkshape 3D
{{Webarchive, url=https://web.archive.org/web/20120101052055/http://developer.sonyericsson.com/wportal/devworld/downloads/download/dw-91536-semcm3gexporter10milkshape3d?cc=gb&lc=en , date=2012-01-01 for MilkShape3D
Blender Exporter
– an open-source M3G exporter for Blender
Blender Converter
– an open-source file level converter for Blender
M3G Exporter for Metasequoia
– an open-source M3G exporter for Metasequoia
M3G Reader Writer
– an open-source C/C++ library for reading/writing .m3g files


External links


JSR 184
(Mobile 3D Graphics API for J2ME 1.0, 1.1)
JSR 184 1.1 Specification
(Mobile 3D Graphics API Technical Specification, Version 1.1, June 22 2005)
JSR 297
(Mobile 3D Graphics API 2.0)

* 3D graphics for Java mobile devices
Part 1
an
Part 2

JSR 239
(Java Bindings for
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve ha ...
Embedded Subset) – related Java ME graphics specification
JSR 184 compatible devices
(Performance listing of most mobile 3D devices) 3D scenegraph APIs Application programming interfaces Computer file formats Java device platform Java specification requests