Форум программистов, компьютерный форум, киберфорум
DirectX
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 0
Регистрация: 15.01.2012
Сообщений: 67
1

Странности с камерой DirectX11

16.04.2014, 10:56. Показов 1013. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написал я простенькую free look камеру. Вот какая проблема. Две последние строчки вносят магию.
Если запустить без них, то при движении мышки, то есть этой камеры в итоге, во-первых, вертикальная ось на двигается, только горизонтальная, и у горизонтальной оси через пару десятков быстрых движений амплитуда уменьшается, двигается хуже. Решил посмотреть как изменяются координаты at точки, чтобы понять почему так происходит, пока забив на вертикальную ось, добавил просто выгрузку в локальную XMFLOAT3, которая потом нигде никаким боком не участвует, и все заработало. Разблокировалась, то есть начала двигаться вертикальная ось, и амплитуды движений постоянны. В связи с этим вопрос, так как в документации сказано, что XMStoreFloat3 просто выгружает содержимое XMVECTOR в XMFLOAT3, то почему именно из-за этих строк все вдруг работает?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void FreeLookCamera::RotateView(float alpha, float teta)
    {
        XMVECTOR normalAtUp = XMVector3Cross(at, up);
        normalAtUp = XMVector3Normalize(normalAtUp);
    
        XMMATRIX XRotationMatrix = XMMatrixRotationNormal(up, alpha);
        XMMATRIX YRotationMatrix = XMMatrixRotationNormal(normalAtUp, teta);
 
        XMMATRIX totalMatrix = XRotationMatrix * YRotationMatrix;
 
        at = XMVector3TransformCoord(at, totalMatrix);
 
        XMFLOAT3 atFloat; //вот эти строчки создают магию
        XMStoreFloat3(&atFloat, at);  //и эта
    }
Добавлено через 36 минут
Теперь он совсем пропал. Даже без этих строчек работает. Не знаю что это было. Вопрос отпадает.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2014, 10:56
Ответы с готовыми решениями:

Игра требует видеокарту с поддержкой DirectX11. Установлена gtx 550ti 1г 256 бит (DirectX11 поддерживает)
всем привет подскажите плиз у меня стоит видео карта gtx 550ti 1г 256 бит на упаковке и на сайтах...

Разница между цифровой камерой для тира и лазерной камерой
Всем доброго времени суток! Прошу разъяснить мне в чем разница между цифровой камерой для тира и...

DirectX11 в DelphiXE
Здравствуйте. Прошу помощи у пользователей Delphi XE6 или выше(поддержка DirectX11 начинается с...

DirectX11 Инициализация
Всем привет.. Пытаюсь инициализировать ДХ но постоянно ругается...Подскажите плис в чём моя...

0
16.04.2014, 10:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2014, 10:56
Помогаю со студенческими работами здесь

OpenGL4.0 vs DirectX11
Не хотел конечно бы устроить холивар. Но интересует вопрос какого характера: кто сейчас работает и...

Directx9 или directx11?
чет я совсем запутался, directx9 или directx11 применять?хочу учить directX чем отличаются (для...

Ошибка инициализации Directx11
Начал изучать directx11, использую VS 2012, и при попытке компиляции этого кода #include...

Windows 7 DirectX11 AERO
Здравствуйте, я столкнулся с такой проблемой как авто обновление DirectX 11 которая не подходит для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru