以前どこかの書籍で見かけて以来その詳細が不明でしたが、今日見つけました。
DirectX で計算済みの頂点を使うためには D3DFVF_XYZRHW を含んだ定数 D3DFVF_TLVERTEX を作ってデバイスの頂点フォーマットに指定します。
// 頂点のフォーマットを定義 typedef struct tagD3DTLVertex { float x, y, z; // スクリーン座標(画面の座標)を入れる float rhw; // 1.0f を入れる float tu0, tv0; // テクスチャ座標を入れる } D3DTLVERTEX; // 頂点フォーマットを Direct3D に伝えるための定数を定義 #define D3DFVF_TLVERTEX (D3DFVF_XYZRHW | D3DFVF_TEX1) // レンダリングする際に頂点フォーマットを渡す pD3DDevice->SetVertexShader(D3DFVF_TLVERTEX);
ソースコードは要点のみを抜粋しました。
z には 0.0f ~ 1.0f までの値を入れて、重ね順を判定します。
Contributions