頂点バッファの作成*1

*1 頂点インデックスバッファに関してもここで記述します。

頂点バッファを作成する手順は以下の様になります。

  1. 頂点のフォーマットを決定する。
  2. 前項で決めた頂点フォーマットに対しCreateVertexBufferを使い、必要な頂点数の分だけ頂点バッファの為にメモリを確保する。
  3. 確保したバッファにデータを送り込む。

また、頂点インデックスバッファの作成も似た様な手順になります。

  1. 2バイト整数を使用するか4バイト整数を使用するかを決める。*2
  2. CreateIndexBufferを使い、必要な分だけ頂点インデックスバッファの為にメモリを確保する。
  3. 確保したバッファにデータを送り込む。

*2 GPUによっては最大65535(もしくはそれ以下)しか利用できない場合があります。その場合は4バイト整数を利用しようとしても意味がないばかりか、表示がおかしくなる場合があります。その場合には2バイト整数を使用する事になります。GPUがどれだけ確保できるかはGetDeviceCapsでMaxVertexIndexの値を調べると良いでしょう。

実際のコード

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
/* 頂点データのフォーマット */
struct d3dvtx_s {
    D3DXVECTOR3    pnt;    // 位置
    D3DCOLOR    clr;    // 色
    D3DXVECTOR2    tx1;    // テクスチャ
};
/* 上の頂点フォーマットをフラグで表現する */
const int FVFVTX1_X = (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1);
 
 
// (===== 実際のコードは後ほど記述します =====)
作成中

この項目は現在作成中です。


ページ情報
  • カテゴリ : DirectX
  • 作成日 : 2006-08-05 (土) 00:04:59
  • 作成者 : rakuppe?
  • 最終編集日 : 2006-08-05 (土) 00:15:00
  • 最終編集者 : rakuppe?
[ トップ ]   [ 新規 | 子ページ作成 | 一覧 | 単語検索 | 最終更新 | ヘルプ ]