DirectXでオブジェクトを任意軸(オブジェクトのY軸)回転させたいと思って
いろいろ試しましたが、どうしても原点を軸に回転してしまいます。

D3DXQUATERNION q;
D3DXVECTOR3 v(0.0f, 1.0f,0.0f);
D3DXMATRIX mat;
q.x = q.y = q.z = 0;
q.w = 1.0f;
v.x = m_mat._21;
v.y = m_mat._22;
v.z = m_mat._23;
D3DXQuaternionRotationAxis(&q, &v, y);
D3DXMatrixRotationQuaternion(&mat, &q);
D3DXMatrixMultiply(&m_mat,&m_mat,&mat);

現状こんな感じですが、足りてないものってありますか?