GLFramework
Нормален ли вид (поворачивать, нажимая правую кнопку мыши), не кажется ли искаженным? Использую свой код для матрицы вращения вокруг оси, проходящей через начало координат.
Долго не держите, забыл отключить отладочный лог
Движения есть влево вправо, вперёд назад. А при нажатии правой кнопки мыши, всё замирает.
Monte-Kristo
> А при нажатии правой кнопки мыши, всё замирает.
Странняк, ведь на древнем 1.1 сделал
Попробовал, у меня ничего не замирает. Только лево-право поменять.
graveman
Все виснет. Отключи логирование. Ты в файл на каждом кадре пишешь??
Andrey
> graveman
> Все виснет. Отключи логирование. Ты в файл на каждом кадре пишешь??
Да, я кстати переделываю пока.
При правом клике камера двигается рывками
IIIypuk
> При правом клике камера двигается рывками
Как раз проектирую интерфейс на событиях. Соответственно будут учитываться временные шаги. В процедуре окна буду посылать эвентменеджеру события, а в основном цикле он будет рассылать их подписавшимся листенерам и в апдейте сообщения будут обрабатываться.
"C" - отключает или включает курсор (wasd - как в fps, zx - верх-вниз).
[file=98577]
Вот код вращения от мыши. Больше пока не смог ничего придумать.
Проективную матрицу пока рассчитываю методами D3DX (не могу пока понять смысл проективных координат)
Нормально, гладко?
Кто как еще реализует, может чисто на векторах как-то.
Можно и проще. У меня так:
D3DXVECTOR3 eyePos(40,40,-100), eyeDir( 0,0,1); ... void rotate( float up, float side) { D3DXMATRIX mRot; D3DXMatrixRotationYawPitchRoll( &mRot, side, up, 0); D3DXVec3TransformNormal( &eyeDir, &eyeDir, &mRot); D3DXVec3Normalize( &eyeDir, &eyeDir); } ... D3DXMatrixLookAtLH( &mView, &eyePos, &( eyePos + eyeDir), &D3DXVECTOR3( 0,1,0));
Потестите камеру на opengl - переделал. [file=98772]
Использовал сферические координаты для матрицы вида.
Перспективную матрицу пока из glu взял, так как еще не разобрался в проективных координатах.
Управление. C - подключить мышь к камере и спрятать курсор, повторное нажатие - отключить мышь от камеры и показать курсор.
Движение камеры W,A,S,D,Z,X. Сначала подключите мышь (C) и дайте ход назад(S).
Не дергается ли, нормально ли для шутера будет?
Тема в архиве.