ややプログラム紀行

博士2年のプログラムに関する日記

インデックス

DirectXのIndex、なんか今頃になってはっきりわかったぜ・・・

今まではなんとなくだったわ・・・

Metasequoiaの立方体って、正方形を6つ並べたものだったから少し引っかかった

なにを言ってるかって、DirectXのインデックスは頂点を共有するためにあって

すべての頂点にインデックス番号を振ってから(正確には並び順かな?)

そのインデックス番号でポリゴンを構成するというしくみなのです(多分)

一見データが増えそうですがほとんどのメッシュはポリゴンはくっ付き合ってる(頂点を共有してる)と思うので

データの節約になっているのです(同じ頂点を何回も書く必要がない)

で、最初に戻りますが、立方体は頂点が8こあります

なので頂点のデータは8こで良さそうなんですが、Metasequoiaの立方体だと正方形6つの集まりとなっていたためIndexの数が24こになってました

これは何が理由なんでしょうね

Indexは実は2つまでしか共有できない?!とか

ほかのファイル形式にあわせるため、みたいな

ことが絡んでるんですかね・・・

それとも作者がIndexをきちんと知らなかったとか?(いやそれはないなww)

MeshのIndex(の並び)はID3DXMesh::LockVertexBufferで取得できます

てか今頃こんなこと知るって多分まずいよな・・・

最初からこれ読んどけば良かったwww(Meshの説明

ちなみに、これはgoogleで「メッシュ DirectX」って調べたら出てきましたorz