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

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

13
задан 21 June 2010 в 23:48
поделиться

2 ответа

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

ОБНОВЛЕНИЕ:

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

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

glEnable(GL_DEPTH);
7
ответ дан 2 December 2019 в 01:09
поделиться

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

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

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

4
ответ дан 2 December 2019 в 01:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: