読者です 読者をやめる 読者になる 読者になる

落書きノート

ふと自分が気になった事を書いてます

モデルの拡大縮小

モデルの拡大縮小は、上下方向、左右方向、手前奥方向、つまり、XYZの軸方向それぞれに「倍率」を設定することで実現できます。そして、拡大縮小マトリックスを作るための関数は、D3DXMatrixScaling()です。例えば、X軸方向に2倍、Y軸方向に0.5倍、Z軸方向に1.0倍の倍率でモデルのサイズを変更するには、関数に次のように設定すれば良いです。

// 何もしないマトリックスの生成
D3DXMatrixIdentity(&m_world);

// X軸方向に2倍、Y軸方向に0.5倍
D3DXMatrixScaling(&m_world, 2.0f, 0.5f, 1.0f);
// X軸方向に2倍,Y軸方向に0.5倍,Z軸方向はそのまま

これを移動マトリックスのときと同様にレンダリングパイプラインに設定すると、以下のように描画されることになります。

scale