Xファイルのフォーマット(3)
Posted on Wed 04 February 2009 in DirectX
Xファイルのフォーマット(1) Xファイルのフォーマット(2)
学校の課題でXファイルのアニメーションをOpenGLで再生することになりそうなので、Xファイルのフォーマットの続きをまとめてみる。
今回はフレームについて、
フレームは、メッシュの階層構造をあらわしたり、スキンメッシュにおけるボーンをあらわしたりします。
フレームの形式はは、このようになっている。
Frame Aframe { // 名前を持つ場合もある、この場合はAframeがこのフレームの名前である。
FrameTransformMatrix {
4x4行列
}
[ Meshes ] and/or [ More frames]
}
[フレームは、4x4行列1つを必ず持ち、メッシュを0\~N個、子フレームを0\~N個持ちます。
行列は、自分の空間から親の空間へ、座標変換を行うときに使用します。
最小のフレームを持つXファイルの形式は以下のようになります。
Frame {
FrameTransformMatrix { //単位行列なので変換は行わない
1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0,
}
Mesh {
頂点の数;
頂点の座標達;
面の数;
面のを表す頂点のインデックス;
MeshMaterialList {
使用するマテリアルの数;
面の数;
それぞれの面の使用する引数;//繰り返し
使用するマテリアルへの参照;//繰り返し
TextureFilename{
"ファイルへのパス";
}
}
MeshNormals {
法線の数;
法線の座標達;
面法線インデックスの数;
インデックス達;
}
MeshTextureCoords {
頂点の数;
テクスチャ座標u;テクスチャ座標v;//繰り返し
}
}
}