Что я пытаюсь сделать, так это то, что по мере того, как я рисую каждый объект, я проверяю, помечен ли он, и если он помечен, напишите текст рядом с объектом, используя glRasterPos2f/i, чтобы установить местоположение на экране , а затем glutBitmapCharacter.Блоки glRasterPos для glutBitmapCharacter
Для glRasterPos2 я вижу множество примеров с координатами пикселей, переданными в качестве аргументов (пример: 100 100). Координаты пикселей не работают для меня, и вместо этого мне приходится переводить в координаты по шкале [-1.0 1.0]. [-1 -1] внизу слева от экрана, [1 1] - верхний правый.
Одна вещь, которую я заметил в примерах, - это изменение орфографической проекции. Это причина моей проблемы?
У меня gluPerspective(); установить один раз в начале, и он не изменяется (на данный момент). Если мне нужно перейти на gluOrtho каждый раз, когда я хочу писать текст в пиксельных координатах, это кажется беспорядочным. Для каждого объекта я начинаю с gluPerspective(), а затем при необходимости меняю gluOrtho(), а затем обратно.
Другой вариант, о котором я подумал, - это то, что, похоже, все работает на шкале [-1.0 1.0], я могу вручную преобразовать координаты экрана в шкалу. Но это также кажется грязным и плохим для производительности.
Любые советы о том, как действовать?
В чем проблема, с которой вы сталкиваетесь? Вы спрашиваете о «причине моей проблемы», но я ничего не вижу в описании проблемы. –
Проблема в том, что если я использую glRasterPos2f (4.0, 4.0); в качестве примера последующий вызов glutBitmapCharacter не отображается на экране. На данный момент я вижу различное поведение по сравнению с некоторыми примерами, которые я видел. Но если я использую glRasterPos2f (x/windowWidth * 2-1, y/windowHeight * 2-1), я получаю текст в месте x, y, которое я ожидаю на экране. –