Подтвердить что ты не робот

Преобразование позиции мыши в мировое положение OpenGL

Эй, я работаю над редактором карт для своей игры, и я пытаюсь преобразовать положение мыши в положение в игровом мире, представление настраивается с помощью gluPerspective

4b9b3361

Ответ 1

Хорошим местом для начала будет функция gluUnProject, которая берет координаты мыши и вычисляет координаты пространства объекта. Посмотрите http://nehe.gamedev.net/data/articles/article.asp?article=13 для основного учебника.

UPDATE:

Вы должны включить буферизацию глубины для работы кода в этой статье. Значение Z для координат мыши определяется на основе значения в буфере глубины в этой точке.

В коде инициализации убедитесь, что вы выполняете следующее:

glEnable(GL_DEPTH);

Ответ 2

Точка на экране представляет собой целую строку (бесконечное множество точек) в трехмерном пространстве.

Большинство людей с подобными вашими вопросами действительно пытаются выбрать объект, щелкнув по нему. Если это вам нужно, OpenGL предлагает режим выбора, который обычно более эффективен, чем попытка преобразования координаты экрана в реальные координаты.

Использование режима выбора (обычно) довольно просто: вы начинаете с gluPickMatrix, который вы используете для указания небольшого окна вокруг точка клика. Затем вы рисуете свою сцену в режиме выбора. Когда вы закончите, вместо того, чтобы нарисовать что-либо, он даст вам обратно записи о том, что было бы нарисовано в указанном вами поле. Если память обслуживается, они упорядочены в порядке Z, поэтому первый в списке - это то, что было бы отображено спереди (т.е. Тот, который вы обычно хотите).