シーングラフファイルの書き方?
「Xファイル」とは,ファイル名に .x 拡張子が付いたファイルを指し, Direct3Dにおけるモデルデータの標準フォーマットです. 3Dの形状データ,マテリアル,テクスチャなどがテンプレートとして定義され, さらにユーザによって自由にテンプレートの定義の拡張を行うことができます.
"template 型名 {\n" "キー\n" "型 データの名前;\n" " : " " : " "[参照]\n" "}\n"のような形で定義されているか,
typedef float FLOAT; DEF_RECORD(XSphere, { /// この型のGUID.TypeDescがGUIDを持つようになる. GUID Guid(){ return WBGuid("4B4F22CC-9DD9-4f04-9373-9E0A03E36C35"); } FLOAT Radius; DWORD Slices; DWORD Stacks; });のように構造体の定義と同時に定義されている
例として,剛体オブジェクトのデータを持つテンプレート Solid では, 以下のような定義に対し, //剛体データの定義部分 "template Solid {\n" " <A9C20358-EDEB-4c0b-97AB-37D330B6BFA4>\n" " FLOAT mass;\n" " Matrix3x3 inertia;\n" " Vector velocity;\n" " Vector angularVelocity;\n" " Vector center;\n" " [Frame]\n" "}\n"Xファイルでは,
//ファイルでの剛体データの記述 Solid soSpinTop{ 2.5; # 質量 3.0, 0.0, 0.0, 0.0, 1.0, 0.0, # 慣性テンソル 0.0, 0.0, 3.0;; 0.0; 0.0; 0.0;; # 初期速度 0.01; 16.0; 0.0;; # 初期角速度 0.0; 0.1; 0.0;; # 重心(メッシュの原点からの相対位置) {frSpinTop} # フレームへの参照 # (複数のフレームをツリーとして持つ場合は # トップフレームを指す) }のように記述されます.
Springheadで拡張したノード(の一部)について説明します.
フォーマットはMeshと同じ.グラフィックスで表示されるが,衝突判定の対象にならないMesh.ポリゴン数が多くても,物理シミュレータは重くならない.
フォーマットはMeshと同じだが,MeshNormalsやMaterialListなどの子ノードは持てない.衝突判定の対象になるがグラフィックスでは表示されないMesh.