Я стараюсь, чтобы луч был прослежен от щелчка мышью на экране в 3D-пространстве. Из того, что я понимаю, положение и ориентация по умолчанию выглядит следующим образом:Как переориентировать ближнюю и дальнюю плоскости от gluUnProject для учета положения и угла камеры?
из этого кода:
GLint viewport[4];
GLdouble modelview[16];
GLdouble projection[16];
GLfloat winX, winY;
GLdouble near_x, near_y, near_z;
GLdouble far_x, far_y, far_z;
glGetDoublev(GL_MODELVIEW_MATRIX, modelview);
glGetDoublev(GL_PROJECTION_MATRIX, projection);
glGetIntegerv(GL_VIEWPORT, viewport);
winX = (float)mouse_x;
winY = (float)viewport[3] - (float)mouse_y;
gluUnProject(winX, winY, 0.0, modelview, projection, viewport, &near_x, &near_y, &near_z);
gluUnProject(winX, winY, 1.0, modelview, projection, viewport, &far_x, &far_y, &far_z);
Мой вопрос, как изменить положение и угол ближнего и далекие плоскости, так что все щелчки мыши будут отображаться из положения и угла камеры в трехмерном пространстве?
В частности, я ищу способ позиционирования центра плоскости проекции на 65 ° ниже оси Z вдоль линии (0,0,1) -> (0,0, -tan (65 °)) [-tan (65 °) ~ = -2.145], причем как прямые, так и дальние плоскости, перпендикулярные линии обзора через эти точки.
О, Боже мой! Огромное спасибо!!! Вы только указали мне в правильном направлении, чтобы исправить ошибку, которая преследовала меня в течение последних 5 часов! У меня была glLoadIdentity, но не последующая матричная манипуляция (я не знал, что вам это нужно), поэтому никакой матер, что я сделал на обоих самолетах, всегда был сосредоточен на происхождении! Я не могу тебя отблагодарить! –
Разве я упоминал, что весь мой проект стоял на месте из-за этой ошибки? Вот как вы мне помогли! Спасибо! –