Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Функция MouseLook (взгляд за мышью) в GLCamera   Найти похожие ветки 

 
Riko ©   (2003-09-09 10:50) [0]

Люди, пожалуйста, где искать реализацию сабжа? Или это в GLSceneViewer"e?
Хотя бы в каком направлении копать?


 
pasha_676 ©   (2003-09-09 11:02) [1]

В смысле двигаешь мышью - поворачивается камера?
В GLScene можно - привязать камеру к предмету и двигать ее по окружности - см. примеры в комплекте GLScene.
Ну и никто не отменял "ручной" метод - считываешь изменения положения мыши и выставляешь в зависимости от них новое положение камеры и новый вектор направления камеры.


 
Riko ©   (2003-09-09 11:13) [2]

>>привязать камеру к предмету и двигать ее по окружности
Это получается, а свободное вращение?
>>новое положение камеры и новый вектор направления камеры.
Можно чють-чють подробнее?
FormMouseMove или GLSceneViewerMouseMove?
GLCamera Direction, Position и Up ?
Честно говоря, перелопатил много доки, но никак не пойму....


 
pasha_676 ©   (2003-09-09 13:17) [3]


> Честно говоря, перелопатил много доки, но никак не пойму....

Нехватка базового представления.

Попытаюсь с азов.

Любой предмет в трехмерном пространстве имеет положение, которое определяется тремя векторами, в терминологии GLScene - Directional, Position и Up. С позишинал все понятно. Дирекшинал - вектор определяющий куда смотрит камера и ап - вектор куда смотрит верх камеры.
Теперь по существу - что бы вращать камеру надо изменять вектора ап и дирекшинал. Причем изменение апа- это не что иное, как поворот камеры вокруг оси дирекшинала. Он скорее всего тебе не нужен (как я понял). Изменение дирекшинала же будет изменять куда смотрит камера.

Следующий вопрос. Как отловить перемещение мыши в форме - это извини азы дельфи. Должен найти сам.
Следующий пункт - отловил изменение координат мыши - сделал преобразования дирекшинола на их основе - получил поворот камеры вокруг своей оси. Вот тебе и поворот.

Математика преобразований - дело десятое - зависит от того что ты конкретно хочеш сделать и от того как это должно работать. В общем случае смотри матрицы поворота вокруг осей.

Весь этот муторный пост сделал по очень простой причине - ты должен понимать что и как представляется и работает. Реализовать непосредственно в GLScene можно прощеееее

И непосредственно к GLScene. Во-первых проследи чтоб камера не была привязана ни к какому объекту (TargetObject это автоматом сбивает дирекшинал камеры на объект), во вторых обрати внимание на пропертя камеры
GLCamera1.Roll, Turn и Pitch что ли. Измени их и будет тебе счастие. (По сути эти пропертя и меняют ап и дирекшиналы, пользуйся исходным кодом - и увидишь это).


 
Riko ©   (2003-09-09 14:48) [4]

Все понял, спасибо огромное....


 
Ranma   (2003-09-21 04:52) [5]

есть рекомендация:
1. создать dummycube и привязать к нему камеру.
2. горизонтальные движения мыши использовать для вращения dummy
3. вертикальные для камеры
4. и будет вам счастье ибо если не сделать такую иерархическую структуру, то камеру при движениях будет плющить (если конечно не сбрасывать каждый раз rotations)



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
4-1075098320
EcoloRa
2004-01-26 09:25
2004.04.04
Вопрос по установке ловушек


3-1078773966
ceval
2004-03-08 22:26
2004.04.04
одно поле таблицы вывести в DBText


14-1078518291
Piter
2004-03-05 23:24
2004.04.04
Тестирую клиент


14-1078837993
Nelud
2004-03-09 16:13
2004.04.04
Еще немного физики...


1-1079265878
kat
2004-03-14 15:04
2004.04.04
Как заменить иконку в откомпилиной проге?