>>666
ありがとうございます

D3DMATRIX m1, m2, m3;
D3DMatrixRotationZ( &m1, PI*0.25 );
D3DMatrixRotationY( &m2, y );
D3DMatrixRotationZ( &m3, -PI*0.25 );
m1 = m1*m2*m3;
という処理にしてみた所、上手くいきました、
45°ではなく任意の角度でやってみた所

D3DMATRIX m1, m2, m3;
D3DMatrixRotationZ( &m1, z );
D3DMatrixRotationY( &m2, PI*0.25 );
D3DMatrixRotationZ( &m3, -z );
m1 = m1*m2*m3;
こういう処理をした場合、zがどの角度であっても生成されるマトリクスは同じものになると思うのですが
実際には傾きが変化しつづけて相殺できません
回転軸を任意に回転させるにはどうすればよいでしょうか?