COLLADA(.daeファイル)

dae.png

collada(khronos group…COLLADAの公式で最新の仕様書が置いてある場所
OpenCOLLADa Tools
モデルの構造を把握するんだったらBlenderで開くのがおすすめ。

全体の構造

polylist

多角形を表す
Google Earthでは使用できない。
polylistを使用せずに再構築したいならMeshLabがおすすめ。

 <Orientation>
          <heading>-0</heading>
          <tilt>279</tilt>
          <roll>0</roll>
        </Orientation>

しないと向きが変。

<polylist material="Blue" count="6">
    <input semantic="VERTEX" offset="0" source="#box-Vertex"/>
    <input semantic="NORMAL" offset="1" source="#box-Normal"/>
    <vcount>4 4 4 4 4 4</vcount>
    <p>
    0 0 2 1 3 2 1 3  0 4 1 5 5 6 4 7
    6 8 7 9 3 10 2 11  0 12 4 13 6 14 2 15
    3 16 7 17  5 18 1 19  5 20 7 21 6 22 4 23
    </p>
</polylist>

<vcount>

n角系のnにあたる数値が入っている。
上の例の場合、6つの4角形が入っていることになる。

<input>

<input>要素には、このリストのデータをどのように解釈するかが記載されています。
ここでは、頂点座標と法線のインデックスだということが分かります。
<p>内のインデックスデータは、頂点座標と法線のインデックスが一緒に入っていますが、これはoffsetで分離します。
この場合、

頂点座標、法線、頂点座標、法線、頂点座標、法線……

と並んでいることになる。

<polygons>

<polygons material="Blue" count="6">
    <input semantic="VERTEX" offset="0" source="#box-Vertex"/>
    <input semantic="NORMAL" offset="1" source="#box-Normal"/>
    <p>0 0 2 1 3 2 1 3</p>
    <p>0 4 1 5 5 6 4 7</p>
    <p>6 8 7 9 3 10 2 11</p>
    <p>0 12 4 13 6 14 2 15</p>
    <p>3 16 7 17 5 18 1 19</p>
    <p>5 20 7 21 6 22 4 23</p>
</polygons>

 Polygonsでは<p></p>で1つのプリミティブを構成しています。
n角形のnを判断するには<p></p>内のデータを<input>数で除算すると分かります。

<vcount>

1ポリゴンあたりの頂点数

Androidでdaeファイルを読み込むには?

COLLADAファイルはXMLである

インポートするもの

import android.util.Xml;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

ステップ

  1. XMLファイルをInputStreamインスタンスに読み込む

サポートサイト Wikidot.com