シーングラフは m3dWorld オブジェクトをルートノードとしたツリー構造をしています。シーングラフを構築する際は m3dWorld クラスオブジェクトを作成し、それに子ノードを追加していくことでツリー構造を作成することになります。子ノードの追加には IMICRO3Dv4es_m3dGroup_addChild() メソッドを使用します。
以下はサンプルコードで m3dWorld オブジェクトを作成し、m3dCamera クラス、 m3dLight クラス、 m3dGroup クラスの各オブジェクトを子ノードとして追加して、シーングラフを構築している部分です。
pmc -> pWorld = IMICRO3Dv4es_m3dWorld_create( pMe -> pIM3D );
if ( pmc -> pWorld == NULL ) {
/* シーングラフの構築 */
IMICRO3Dv4es_m3dWorld_setBackground( pMe -> pIM3D, pmc -> pWorld, pmc -> pBackground );
IMICRO3Dv4es_m3dGroup_addChild( pMe ->pIM3D, ( m3dGroup* ) pmc -> pWorld, ( m3dNode* ) pmc -> pBoy );
IMICRO3Dv4es_m3dGroup_addChild( pMe -> pIM3D, ( m3dGroup* ) pmc -> pWorld, ( m3dNode* ) pmc -> pPyrGroup );
IMICRO3Dv4es_m3dGroup_addChild( pMe -> pIM3D, ( m3dGroup* ) pmc -> pWorld, ( m3dNode* )pmc -> pCamera );
IMICRO3Dv4es_m3dGroup_addChild( pMe -> pIM3D, ( m3dGroup* ) pmc -> pWorld, ( m3dNode* ) pmc -> pAmbLight );
IMICRO3Dv4es_m3dGroup_addChild( pMe -> pIM3D, ( m3dGroup* ) pmc -> pWorld, ( m3dNode* ) pmc -> pDirLight);
/* 描画に使用するカメラを指定 */
IMICRO3Dv4es_m3dWorld_setActiveCamera( pMe -> pIM3D, pmc -> pWorld, pmc -> pCamera );
IMICRO3Dv4es_m3dWorld_setActiveCamera(inst, world, camera) メソッドにより m3dWorld オブジェクトを描画する際に使用する m3dCameraオブジェクトを設定しています。 ここで設定する m3dCamera オブジェクトは、シーングラフに含まれるものしか指定できません。そのため、m3dWorld クラスに m3dCameraオブジェクトを追加した後でカメラの設定を行っています。
また、IMICRO3Dv4es_m3dWorld_setBackground(inst, world, background) メソッドは、 m3dWorld オブジェクトに背景として m3dBackgroundオブジェクトを設定するメソッドです。 m3dBackground クラスのオブジェクトを設定しない場合、背景はデフォルトとして黒く塗りつぶされます。

描画結果

