Microsoft DirectX 8.0 (C++) |
ベクトル トゥイーニングを使用するには、最初に、2 番目の法線または 2 番目の位置座標を使用するカスタム頂点タイプを設定しなければならない。次のコードは、2 番目の法線と 2 番目の位置座標の両方を含む宣言の例を示している。
struct TEX_VERTEX { D3DVECTOR position; D3DVECTOR normal; D3DVECTOR position2; D3DVECTOR normal2; }; // タイプが TEX_VERTEX の頂点バッファを作成する。
次の手順は、現在の宣言を設定することである。次のサンプル コードは、この設定方法を示している。
DWORD decl[] { D3DVSD_STREAM(0), D3DVSD_REG( D3DVSDE_POSITION, D3DVSDT_FLOAT3 ) // 位置座標 1 D3DVSD_REG( D3DVSDE_NORMAL, D3DVSDT_FLOAT3 ) // 法線 1 D3DVSD_REG( D3DVSDE_POSITION2, D3DVSDT_FLOAT3) // 位置座標 2 D3DVSD_REG( D3DVSDE_NORMAL2, D3DVSDT_FLOAT3 ) // 法線 2 D3DVSD_END() };
カスタム頂点タイプと頂点バッファの作成の詳細については、「頂点バッファの作成」を参照すること。
頂点シェーダの宣言の作成の詳細については、「頂点シェーダ宣言」を参照すること。
注 頂点トゥイーニングが有効になっている場合、2 番目の位置座標または 2 番目の法線は現在の宣言の中に存在しなければならない。