Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

движение камеры

289
14 декабря 2010 года
Jeyson
207 / / 20.04.2000
здравствуйте. На сайте wingman.org.ru нашел хороший урок с камерой.
Все получилось кроме стрейфа. Влево - вправо - работает превосходно, а вот вверх-вниз реализовать не могу. Если можно подскажите плз. Исходник плилагаю.
289
14 декабря 2010 года
Jeyson
207 / / 20.04.2000
дополнительный косяк - если крутим вокруг Y (стрелки влево-вправо) все ок, полный оборот. если крутим стрелками влево-вправо - происходит сброс по достижении половины оборота. Как с этим бороться?
Спасибо.
289
16 декабря 2010 года
Jeyson
207 / / 20.04.2000
Не верю что никто не знает... есть же спецы. Упрощаю задачу:
Требуется осуществлять поворот камеры (gluLookAt) по плоскости XoY, получается что осью вращения является ось Z. Так же должно быть вращение в строго вертикальном направлении не зависимо от угла поворота по оси Z как в современных САПРах без ограничения на угол поворота. Выложенный мной выше пример ограничивает вращение... Как быть? мозг уже кипит...
Спасибо.
6.0K
16 декабря 2010 года
artyom-tyanutov
107 / / 10.07.2006
Выкинь gluLookAt, заюзай кватернионы, через них удобнее, имхо.
289
12 января 2011 года
Jeyson
207 / / 20.04.2000
Всем спасибо. Нашел в сети простенький код, который меня абсолютно удовлетворил. Вращение вокруг точки, зумирование к точке цели, изменение высоты камеры по вертикали. Может кому пригодится.

// местоположение камеры
CameraX=PlayerX+CameraDist*sin(CameraPhi*3.14/180);
CameraY=PlayerZ+CameraDist*cos(CameraPhi*3.14/180);
CameraZ;// положение по высоте

// PlayerX,PlayerY,PlayerZ - точка куда смотрим
gluLookAt(CameraX,CameraY,CameraZ,
PlayerX,PlayerY,PlayerZ,
0,0,1);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог