Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2011, 20:30   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию Direct3D9, вращение камеры.

Вот, возникла большущая проблема. Нужно вращать камеру.
Пробовал уже по всякому - не идёт; Яндекс и Гугл не спасли.
Последний вариант(разумеется, нерабочий):
Код:
If Key = VK_LEFT Then
Begin
        Angle:=Angle-1;
        D3DXMatrixRotationY(ViewMatrix,Angle);
End;
If Key = VK_RIGHT Then
Begin
        Angle:=Angle+1;
        D3DXMatrixRotationY(ViewMatrix,Angle);
End;
Как всё-таки правильно?
_-Re@l-_ вне форума Ответить с цитированием
Старый 05.04.2011, 23:12   #2
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
Сообщение

Такие же преобразования как и с матрицами трансформаций.
Изначально видовая матрица установлена. А дальше по кнопкам множите её на преобразования.

Код:
If Key = VK_LEFT Then
Begin
        D3DXMatrixRotationY(MatrixRotY, -0.01);
        D3DXMATRIXMultiply(ViewMatrix, ViewMatrix, MatrixRotY);
End;
Как то так.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 06.04.2011, 12:21   #3
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ага, спасибо, всё ништяк.

Теперь другое....Ну, повернул я камеру. А теперь мне нужно её подвинуть вперёд, но не просто увеличить координату Z, а пройти вперёд по направлению камеры...Тоже не получается. Тут ведь уже не получится просто подвинуть матрицу, тут как-то по другому надо. Как?
_-Re@l-_ вне форума Ответить с цитированием
Старый 06.04.2011, 20:49   #4
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

В смысле пойти вперёд? Пойти вперёд вместе с камерой, или у вас там какой-то перс бегает, а камера рядом болтается?

Если пойти вперёд вместе с камерой, а-ля вид из глаз, то абсолютно точно так-же как и с поворотом. Домножаете на матрицу трансляции, её можно сделать этой функой D3DXMATRIXTranslation. Движение вперёд-назад, это у вас (скорее всего) смещение по оси Z. Шаг вправо-влево смещение по оси X.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вращение камеры вокруг своей оси [OpenGL] russian-stalker Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 14.04.2011 21:03
Текстуринг в Direct3D9 alexprey Мультимедиа в Delphi 5 26.08.2010 22:17
direct3d9. Камера. VC++. Crivel Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 08.07.2010 16:36
Direct3D9 VintProg Gamedev - cоздание игр: Unity, OpenGL, DirectX 15 02.11.2009 10:54
Вращение камеры (Direct3D) AidarBik Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 24.07.2009 08:45