Нужна тулза для свободного управления камерой в выбраном directx приложении. Короче, чтобы можно было домножить текущую view matrix на мою. В принципе хватит только translate. Самому писать лень, не хочу время терять. Если есть что-то готовое, киньте ссылку.
Сори, невнимательно прочитал вопрос Для свободной камеры в коде по ссылке http://www.gamedev.ru/code/forum/?id=131526#m2 исправить строки: Код (Text): vMove += D3DXVECTOR3(mCameraRot._31, 0.0f, mCameraRot._33)*m_FBMove; vMove += D3DXVECTOR3(mCameraRot._11, 0.0f, mCameraRot._13)*m_LRMove; на Код (Text): vMove += D3DXVECTOR3(mCameraRot._31, mCameraRot._32, mCameraRot._33)*m_FBMove; vMove += D3DXVECTOR3(mCameraRot._11, mCameraRot._12, mCameraRot._13)*m_LRMove; Для расчета матрицы вида: Код (Text): D3DXMATRIX mView; // Матрица вида D3DXVECTOR vPosition; // Текущая позиция vPosition += vMove; D3DXVECTOR vAt = vPosition + D3DXVECTOR3(mCameraRot._13, mCameraRot._23, mCameraRot._33); D3DXMatrixLookAtLH(&mView, &vPosition, &vAt, &D3DXVECTOR3(0.0, 1.0, 0.0));
Для проги с шейдерами работать не будет. Только где fixed function pipeline заюзан. Если так, то перехватываем Draw* методы и перед вызовом вызываем свою g_pd3dDevice->SetTransform( D3DTRANSFORMSTATE_VIEW, pView ); где pView - матрица вида . работает на играх дх от 7 до 9 (без шейдеров) Для игр с шейдерами (Все современные и не очень ) нужно менять шейдеры/ данные передаваемые в шейдер