シーングラフとは?
ここでは、シーングラフについて解説します。
シーングラフとは、3D 空間に配置されるすべてのオブジェクトをツリー構造にまとめたものです。M3Gにおいてモデルデータ、カメラ、ライトといった各種オブジェクトはシーングラフのノードとして扱われます。M3G ファイルを M3GViewer で開くと、下の画像ように全てのデータがツリー構造として管理されているのが確認できます。

シーングラフのノードはNode クラスによって表されます。 Node クラスは木構造の節点や葉を表す抽象基底クラスであり、サブクラスとして Camera, Group, Light, Mesh, Sprite3D, World 等のクラスが存在します。このうち World クラスはシーングラフのルート(根)となります。また、Group クラスは配下に Node クラスのオブジェクトをもつことができ、これにより、同じノードに属する複数のオブジェクトに対して、同一の操作(アニメーション時間の更新など)をすることが可能となります。
World をルート(根)とするシーングラフすべてを描画するときは、これを“リテインモード”と呼びます。これに対して、World以外のノードを指定して描画するときは、これを“イミディエイトモード”と呼びます。
また、描画の各種属性を変更する際は、M3Gが提供するAPIを用いて、各ノードの属性を変更します。

