*頂点バッファの作成((頂点インデックスバッファに関してもここで記述します。)) [#ia28fccc] &shiftnote(nohr); 頂点バッファを作成する手順は以下の様になります。 +頂点のフォーマットを決定する。 +前項で決めた頂点フォーマットに対しCreateVertexBufferを使い、必要な頂点数の分だけ頂点バッファの為にメモリを確保する。 +確保したバッファにデータを送り込む。 また、頂点インデックスバッファの作成も似た様な手順になります。 +2バイト整数を使用するか4バイト整数を試用するかを決める。((GPUによっては最大65535までしか利用できない場合があります。その場合は4バイト整数を利用しようとしても意味がないばかりか、表示がおかしくなる場合があります。その場合には2バイト整数を使用する事になります。GPUがどれだけ確保できるかはGetDeviceCapsでMaxIndexBufferの値を調べると良いでしょう。)) +CreateIndexBufferを使い、必要な分だけ頂点インデックスバッファの為にメモリを確保する。 +確保したバッファにデータを送り込む。 &shiftnote(nohr); **実際のコード [#c4cde96e] #code(c){{ /* 頂点データのフォーマット */ struct d3dvtx_s { D3DXVECTOR3 pnt; // 位置 D3DCOLOR clr; // 色 D3DXVECTOR2 tx1; // テクスチャ }; /* 上の頂点フォーマットをフラグで表現する */ const int FVFVTX1_X = (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1); // (===== 以下作成中 =====) }} #column(作成中) この項目は現在作成中です。 #column(end) //これより下は編集しないでください #pageinfo([[:Category/DirectX]],2006-08-05 (土) 00:04:59,rakuppe,2006-08-05 (土) 00:04:59,rakuppe) |