インデックスバッファ(IndexBuffer)の製作

インデックスバッファも頂点バッファの作り方とほとんど同じですが、何故だか世の中にとってもサンプルが少なくて困りました。ってことで、レアなインデックスバッファ製作のサンプルを書いておきます。

// indicesはshort(Int16)型の配列
// devはDirect3D.Device

	IndexBuffer indexBuffer = 
		new IndexBuffer(typeof(Int16),indices.Length,dev,(Usage)0,Pool.Managed);
	stm = indexBuffer.Lock(0,0,LockFlags.None);
	stm.Write( indices );
	indexBuffer.Unlock();

細かい説明はいいですね。インデックスバッファのもとのデータはInt16、C#で言うところのshort型の配列を使います。配列の中身は、指し示す頂点のインデックス番号が入っています。上の画像の例で言うと、「0,1,2,1,2,3」の配列になっています。これを上のサンプルコードの手順でバッファに書き込みます。やってみれば、簡単ですね。