Microsoft DirectX 8.0 (Visual Basic)

ブレンディング行列の設定

Direct3DDevice8.SetTransform メソッドを呼び出して、システムがブレンドする際のトランスフォーム行列を設定する。第 1 パラメータに CONST_D3DTRANSFORMSTATETYPE 列挙から D3DTS_WORLD メンバを設定し、第 2 パラメータには設定する行列のアドレスを設定する。

次の Microsoft® Visual Basic® サンプル コードは、2 つのワールド行列を設定する。これらの行列間でジオメトリをブレンドしてジョイントされた腕のイリュージョンを作成する。

' この例では、変数 d3dDevice は
' 初期化された 3D シーン用の Direct3DDevice8 オブジェクトへの有効な参照であると仮定される。
' 変数 dx は DirectX8 オブジェクトへの有効な参照である。
Dim BendAngle As Single
Dim matUpperArm As D3DMATRIX, _
    matLowerArm As D3DMATRIX

BendAngle = 3.1415926 / 4#  // 45°

' 上腕は動かない。単位行列を使用する。
D3DXMatrixIdentity matUpperArm
Call d3dDevice.SetTransform(D3DTS_WORLD, matUpperArm)

' 下腕は x 軸を中心に回転する。これは上腕につなげる。
D3DXMatrixRotationX matLowerArm, -nBendAngle
Call d3dDevice.SetTransform(D3DTS_WORLD1, matLowerArm)

ブレンディング行列を設定しても、システムはその行列を後で使用できるように単にキャッシュするだけで、頂点のブレンドを開始するわけではない。詳細については、「ジオメトリ ブレンディングを有効にする」を参照すること。