Проблемма с искажением изображения

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

vova64
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 09.07.2007 (Пн) 12:28

Проблемма с искажением изображения

Сообщение vova64 » 10.07.2007 (Вт) 7:16

Здравствуйте!
использую камеру вращающуюся вокруг центра мировых координат
при векторе камеры находящейся над объектом изображение выводиться неправельно
(т.е. искажаеться)

Matrix ViewMatrix = Matrix.LookAtLH(
new Vector3(0.0f, 10.0f, 0.0f),
new Vector3(0.0f, 0.0f, 0.0f),
new Vector3(0.0f, 1.0f, 0.0f));

подскажите пожалуйста что неправельно и как нужно
делать камеру по трем углам вращения?

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 10.07.2007 (Вт) 9:13

Вектора Eye, At и Up находятся на одной прямой, по ним нельзя построить треугольник.

vova64
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 09.07.2007 (Пн) 12:28

Сообщение vova64 » 10.07.2007 (Вт) 10:11

подскажите пожалуйста
как правельно

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Сообщение mdx » 10.07.2007 (Вт) 11:16

Поставь Up = Vector3(1.0f, 0.0f, 0.0f)

Да, кстати, правИльно
This posting is provided "AS IS" with no warranties, and confers no rights.

Изображение

vova64
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 09.07.2007 (Пн) 12:28

Сообщение vova64 » 10.07.2007 (Вт) 11:55

я пробовал менять Up = Vector3(1.0f, 0.0f, 0.0f)
но я состовляю программу в которой камера может плавно вращаться в пространстве вокруг центра а все остальные объекты движуться так же вокруг центра
если я пробовал менять вектор Up тогда все как то непонятно переворачиваеться и получаеться неуправляемо и при Up = Vector3(1.0f, 0.0f, 0.0f) вращение по вертикали становиться правильным но искажения теперь происходят при векторе Eye = Vector3(10.0f, 0.0f, 0.0f)
непонимаю может я в принципе неправельно использую LookAtLH
Последний раз редактировалось vova64 10.07.2007 (Вт) 11:56, всего редактировалось 1 раз.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 10.07.2007 (Вт) 11:55

Тогда уж, и проблеМа.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 11.07.2007 (Ср) 9:43

vova64
Вращай камеру на с помощью LookAtLH, а комбинацией Rotation.

vova64
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 09.07.2007 (Пн) 12:28

Сообщение vova64 » 11.07.2007 (Ср) 10:36

Я пробовал в начале
но что то несовсем получалось что я хотел
скорее у меня вращались объекты
а так чтоб допустим два объекта находяться на одном месте и при помощи RotationX RotationY или RotationZ применительно к матрице

может я не к том матрице их применял

Подскажите пожалуйста методы Rotation применять к какой матрице чтобы двигалась камера а не объекты

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 11.07.2007 (Ср) 13:11

vova64
Ты определись, как конкретно должна вращаться камера. Если она вращается свободно, то, что будет после перехода через зенит? Мы окажемся вниз головой? Или нужно ограничить вертикальный угол от -90 до 90 градусов? Но тогда почему не сделать от -89 до 89, и вопрос исчерпан? Или тебе нужно вращение в системе координат камеры?

vova64
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 09.07.2007 (Пн) 12:28

Сообщение vova64 » 12.07.2007 (Чт) 6:28

вниз головой

ничего страшного


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17

    TopList  
cron