COLLADA スキーマを解析した時のメモ
1. 概要
本書は、COLLADA スキーマ仕様書を解析したときのメモになります。
対象は【COLLADA - Digital Asset Schema リリース1.4.1】です。
COLLADA を読み込む処理を実装する上で必要なスキーマについての個人的な理解を纏めたメモになります。
2. メモ
2-1. <mesh />
箇条書きでポイントをメモしました。
- meshの構造は、polygonsが規定する
- polygonsには、以下の要素が存在する
- 頂点座標(VERTEX)
- 法線(NORMAL)
- UV座標(TEXCOORD)
- 上記には、データソース(=配列)へのインデックスが格納される
- データソースは、以下の要素で構成される
- 配列(*_array)
- 配列構造(technique_common.accessor)
- 配列構造には、要素名(name)とデータ型(C/C++ライク)が含まれる
- mesh全体を把握するには、このpolygonsまで解析し終わらないと意味を把握できない
- 頂点プリミティブ(三角形描画、三角形ストリップなど)の種類は、meshの子要素のタグ名で判断する。
※shade 11 のCOLLADA エクスポータだと、mesh.polygonsで出力される為、データファイル以外から面の形状を与える必要
(多分ね。 mesh.triangles で出してくれりゃいいのに…)
OpenGLで描画するなら「GL_POLYGON」プリミティブで描画すれば大丈夫だが、DirectX の時は…
構文解析と意味解析を実装する場合、コンパイラチックな実装を求められます。
XmlLiteで軽く実装してみましたが、真面目に実装するならコンパイラを設計する意識で望んだ方が良い感触です。
作成日:2010/11/06