Форум: "Игры";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Вниз
Функция 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c