![]() |
OpenGL & VC++. Инициализация,Визуализация,Управление
Вложений: 1
Здрасть!!!
Вообщем непойму некоторые выжные аспекты OpenGL. :wallbash: Пытаюсь программировать в WinApi приложении, ООП методом. Создал ксласс->обьект(Инициальзация,Resize,Рендеринг) К окошку прилепил менюшку(нужно будет в дальнейшем). Вывел туда треугольник разноцветный. А вот как: :dontknow: -Крутить треугольник -Крутить камеру -все выше сказанное с помощью девайса (клава,мышь) Вопрос даже ни "Как" а где энто писать то все? :dontknow: Пробовал всякие glRotatef,glTranslate, ничё некрутиться ни вертится. :wallbash: Я неочень то понимаю смысл команды glMatrixMode(...) где и когда её писать? вот проект в VC++ 6.0. Может специалисты посмотрят и ответят на мои вопросы. И если нетрудно скажите может что лишнего понописал. Премного благодарен!!!:rolleyes: |
Ответ: OpenGL & VC++. Инициализация,Визуализация,Управление
тебе надо сделать класс Camera, CameraMover, KeyInput, MouseInput
1) ввод клавиш обрабатываешь в функции WndProc (после нее пишешь в соответствуюшие обьекты KeyInput состояние клавиш) 2) состояние курсора мышки лутче опрашивать "по-запросу" Код:
POINT point; он считывает состояние мышки и клавиш, изменяет вектора поворота и положения камеры вот мой код для моего двига для обработки управления камерой с помощью мышки : Код:
if(WindowSize != Window->GetSize()) Код:
Moving.Flush(); Код:
jeMatrix4f Matrix; 4) перед рисованием сцены надо сбросить матрицу проекции и установить её Код:
//! Set Projection Matrix и применить такие трансформации : Код:
glTranslatef((GLfloat)NewPosition.X,(GLfloat)NewPosition.Y,(GLfloat)NewPosition.Z); вот и все :) |
Ответ: OpenGL & VC++. Инициализация,Визуализация,Управление
Спасибо! ща буду разбирать.
Непротив если по ходу буду задовать некие вопросы? |
Ответ: OpenGL & VC++. Инициализация,Визуализация,Управление
Цитата:
|
Ответ: OpenGL & VC++. Инициализация,Визуализация,Управление
воопще то не камеру трансформируют а мир.
т. например не камеру сдвинают вперед на 1цу, а мир на 1цу назад. |
Ответ: OpenGL & VC++. Инициализация,Визуализация,Управление
вообще не мир, не камеру, не примитивы, а заданную матрицу проекции
|
Ответ: OpenGL & VC++. Инициализация,Визуализация,Управление
вобщето modelview матрицу. и это образно говоря - мир.
|
Ответ: OpenGL & VC++. Инициализация,Визуализация,Управление
project она, думаешь, двигать не может ?
она всего на всего домножает текущую матрицу на матрицу трансформации |
Ответ: OpenGL & VC++. Инициализация,Визуализация,Управление
лан лан!
тут вот вопрос встал таков. Более с матикой связан. gluLookAt(px,py,pz,rx,ry,rz,0,1,0); воопщем px,py,pz-позиционирую камеру rx,ry,rz-позиционируют цель. px,pz энто клава (вперёд,назад,влево, вправо) rx,ry это позиция мышкой Мне надо двигатся туда куда камера глядит, а не х.з. куда. Вроде как с синусами косинусами делать надо (позицию умнажать вроде). Может кто знает как реализовать? |
Ответ: OpenGL & VC++. Инициализация,Визуализация,Управление
Miha
я же уже написал |
Ответ: OpenGL & VC++. Инициализация,Визуализация,Управление
Да я видел. Но я учусь, и поэтому хочу узнать как производить полноценное управление камерой с помощью gluLookAt.
К тому же для этого она и преднозначена. jimon спасибо! |
Часовой пояс GMT +4, время: 19:56. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot