Mobile 3D Graphics API (M3G) について
Mobile 3D Graphics API (M3G) は、
Java Platform, Micro Edition (
Java ME) 向けの
3次元コンピュータグラフィックスAPIです。
携帯電話やPDAなどの組み込みデバイスで3Dグラフィックスを効率的に利用できるように設計されており、
Java MEのグラフィックス機能を拡張します。
M3Gは、30個のクラスから構成されるオブジェクト指向インターフェースを提供し、複雑な3Dシーンやアニメーションの描画を可能にします。このAPIは、
Java Community Process (JCP) の下でJSR 184として開発され、2006年時点での最新バージョンは1.1です。
M3Gの主な特徴
M3Gは、モバイルデバイス特有の制約、例えばメモリ容量、メモリバンド幅、プロセッサ能力の制限に対応するように設計されています。これらのデバイスは、FPUやGPUなどのグラフィックスアクセラレーションハードウェアを搭載していないことも多いため、M3Gはこれらの制約を考慮した上で効率的な3Dグラフィックス描画を可能にします。
M3Gは、標準
Javaプラットフォーム向けの
Java3Dとは異なるAPIです。
Java3Dは、より多くのメモリと強力なプロセッサを搭載したPCなどのデバイスを対象としており、モバイルデバイスには適していません。M3Gと
Java3Dは、それぞれ異なる用途に向けて設計された互換性のないAPIです。
immediate modeとretained mode
M3Gは、3Dグラフィックスを描画するための2つのモードを提供します。
immediate mode: グラフィックス命令を直接グラフィックスパイプラインに入力し、レンダリングエンジンが即座に実行します。開発者は、アニメーションフレームごとに描画内容を細かく指定する必要があります。
retained mode: シーングラフと呼ばれる木構造を使用して3D世界の幾何オブジェクトをリンクします。各オブジェクトの形状、位置、外観などの高レベル情報はフレーム間で保持されます。
その他の特徴
M3G標準では、3Dモデルデータに加えてアニメーションデータも含むファイルフォーマットを定義しています。これにより、3Dモデルとアニメーションを統合的に管理できます。
M3G関連ユーティリティ
M3Gの開発や利用を支援する様々なユーティリティが提供されています。
Desktop-M3G: LinuxおよびAndroid向けのM3Gオープンソース実装。
XMM3G: Windows, WinCE, Linux, Android, iOS, Bada向けのM3Gオープンソース実装。
M3X: .m3gファイルフォーマットのXMLエンコーディングと関連するオープンソースツール。
Wizzer Works M3G Viewer: .m3gファイルの閲覧・操作用オープンソースツールキット。
Maya 用の M3GExport: Autodesk Maya向けのM3Gエクスポーター。
Mascot Capsule M3G Exporter: 3ds Max, Maya, Lightwave, Softimage|XSI向けのM3Gエクスポーター。
M3G Exporter for Milkshape 3D: MilkShape3D向けのM3Gエクスポーター。
Blender Exporter: Blender向けのM3Gエクスポーターオープンソース実装。
Blender Converter: Blender向けのオープンソースファイルレベルコンバーター。
M3G Exporter for Metasequoia: Metasequoia向けのM3Gエクスポーターオープンソース実装。
M3G Reader Writer: .m3gファイルを読み書きするオープンソースのC/C++ライブラリ。
外部リンク
JSR 184: Mobile 3D Graphics API for J2ME
Getting Started With the Mobile 3D Graphics API for J2ME
JSR 239: Java Binding for the OpenGL ES API - 3Dグラフィック使用に関連して