Mobile 3D Graphics API

Mobile 3D Graphics API (M3G) は、3次元コンピュータグラフィックスを生成するJavaを記述するためのAPIを定義した仕様である。M3Gは携帯電話やPDAのような組み込みデバイス向けのJavaプラットフォームバージョンである Java Platform, Micro Edition の性能を拡張する。
オブジェクト指向インターフェースは3次元シーン複雑なアニメーションを描画することに使用できる30のクラスで構成している。M3GはJava Community Processの下でJSR 184として開発された。2006年現在、現在のM3Gのバージョンは1.1である。
M3Gの目標.
M3Gはモバイルデバイスの特殊な要求に適応するように設計された。モバイルデバイスはメモリ、メモリバンド幅およびプロセッサパワーの点で制約されており、しばしばFPUとGPUのようなグラフィックアクセラレーションハードウェアが欠けている。
M3GはJava3Dではない.
M3GはJava3Dと間違えるべきではない。Java3Dはstandard Java platformの性能を拡張する。Java3Dはモバイルデバイスよりメモリが多く強力なフロセッサパワー
を持ったPC向けに設計されている。
M3GとJava3Dは2つに分かれそれぞれ異なった用途に向けて設計された互換性のないAPIである。
immediate modeとretained mode.
M3Gは開発者が3Dグラフィックを描画するために2の方法(immediate mode, retained mode)を提供している。immediate modeではグラフィック命令はグラフィックパイプラインに直接に入力されレンダリングエンジンが即座に命令を実行する。この方法を使うときは、開発者はレンダリングエンジンにそれぞれのアニメーションフレームごとに描画する内容を特別に伝えるコードを記述しなければならない。
retained modeは木構造で3D世界の幾何的なオブジェクトをリンクするシーングラフを使用する。
それぞれのオブジェクトに関する幾何学構造、位置、容姿などの高次元の情報はフレーム間で保持される
その他の特徴.
M3G standardはアニメーションデータも含む3Dモデルデータのファイルフォーマットも定義している。