私のコードでは、ワールド マトリックスに対して 2 つの (現時点では、おそらくさらに多くの) マトリックス変換を実行しようとしています。そのようです:
D3DXMatrixRotationY(&worldMatrix, rotation);
D3DXMatrixTranslation(&worldMatrix, 0.0f, -1.0f, 0.0f);
ここで、回転は変化するフロートで、worldMatrix は D3DXMATRIX です。私の問題は、変換ステートメントのコードの最後の行だけが機能することです。したがって、上記のコードでは、worldMatrix は変換されますが、回転されません。しかし、2 つのステートメントの順序を入れ替えると、worldMatrix は回転されますが、変換されません。ただし、私はそれをいじってみましたが、このコードは問題なく動作します:
D3DXMatrixRotationY(&worldMatrix, rotation);
D3DXMATRIX temp = worldMatrix;
D3DXMatrixTranslation(&worldMatrix, 0.0f, -1.0f, 0.0f);
worldMatrix *= temp;
この後、worldMatrix が平行移動および回転されます。変数のみを使用し、一時行列を含めないと機能しないのはなぜですか? ありがとうございました!!