インデックス付き頂点ブレンド (Direct3D 9)
インデックス付き頂点ブレンドは、Direct3D の頂点ブレンドのサポートを拡張して、ブレンドにマトリックスを使用できるようにします。 これらのマトリックスは、マトリックス インデックスを使用して参照されます。 これらのインデックスは頂点ごとに提供され、最大 256 個のマトリックスのパレットを参照します。 各インデックスは 8 ビットで、各頂点には最大 4 つのインデックスを含めることができます。これにより、頂点ごとに 4 つのマトリックスをブレンドできます。 インデックスは DWORD にパックされます。 インデックスは頂点ごとに指定されるため、最大 12 個のマトリックスが 1 つの三角形に影響し、パレット内の任意のマトリックスが 1 つの描画呼び出しの頂点に影響を与える可能性があります。 この方法には、次の利点があります。
- これにより、より多くの行列が単一の三角形に影響を与える可能性があります。
- これにより、同じ描画呼び出しでより多くのブレンドされた三角形を渡すことができます。
- これにより、頂点ブレンドが三角形のインデックスに依存しません。 これにより、プログレッシブ メッシュを頂点ブレンドと組み合わせて動作できます。
この方法の欠点の 1 つは、頂点処理の前にテセレーションが発生したときに、曲面プリミティブでは機能しないことです。
次の図は、4 つのマトリックスが頂点に与える影響を示しています。 各頂点には最大 4 つのインデックスがあるため、頂点ごとに 4 つのマトリックスをブレンドできます。 この図では、0、2、5、6 でインデックス付けされたマトリックスを使用します。
次の図は、最大 12 個のマトリックスが三角形に与える影響を示しています。 頂点ごとに指定されたインデックスを使用すると、最大 12 個のマトリックスが三角形に影響を与える可能性があります。
次の式は、行列が頂点に与える影響の一般的なケースを決定します。
V モデル は、入力モデル空間の頂点位置です。 Index0..Index3 は、DWORD にパックされた頂点ごとのマトリックス インデックスです。 M[] は、インデックスが作成されるワールド マトリックスの配列です。 b₀..b₂ はブレンドウェイトです。 Vワールド は、出力ワールド空間の頂点位置です。
インデックス付き頂点ブレンドの詳細については、「 インデックス付き頂点ブレンドの使用 (Direct3D 9)」を参照してください。
関連トピック