ПрограммированиеФорумГрафика

Координаты курсора мыши в Opengl-сцене (2 стр)

Страницы: 1 2
#15
17:23, 1 окт 2013

Тут только один выход - самому разобраться с матрицами и понять как это работает.
http://www.songho.ca/opengl/gl_transform.html
http://www.opengl.org/wiki/GluProject_and_gluUnProject_code

#16
18:02, 1 окт 2013

Спасибо за ссылки, вторую ссылку изучу, а вот первая на английском=(

#17
20:10, 1 окт 2013

Получше сформулирую вопрос.

Есть поле которое состоит из 100*100 квадратов размером 8*8 (единиц измерения OpenGL, не знаю как их назвать), начало координат поля xyz = 0.0, то есть центр экрана у меня есть координаты каждой клетки этого поля (координаты только x и y, z = 0.0). В функции рендера, перед тем как отправить данные шейдеру, произвожу поворот сцены

Поле до поворота сцены Pole

MapMatrix4Translation(cameraTranslate, 0.0, 0.0, 0.0);
MapMatrix4Rotation(cameraRotate, -45.0, 0.0, 45.0); // тут записал в градусах

Есть функция перемещения модели по этому 2D полю, в ней используются только x,y координаты.
Мне нужно получить 2D координаты квадрата поля, на котором находится курсор мыши.

Есть функция которую я использовал для перемещения модели на позицию курсора мыши, при нажатии ЛКМ. Так как нажатие ЛКМ происходит до поворота сцены, то есть до рендера, чтобы модель не уезжала на -45 градусов по оси x и 45 по оси z, я умножил ModelMatrix * ProjectionMatrix (и на обратную матрицу камеры) * inverseCameraMatrix. Модель переносится на позицию курсора четко, но уже с использованием координаты z (пост #14). Из-за этого при передвижении сцены модель может выехать за пределы видимости камеры или скрыться за полем. Если z приравнять нулю, то модель будет перемещаться не туда куда нужно

Что нужно сделать для того чтобы получить координаты курсора мыши в 2D, без глубины?

Страницы: 1 2
ПрограммированиеФорумГрафика

Тема в архиве.