Я работаю с инструментами построения графиков Qt и QWt3D и расширяю их, чтобы обеспечить некоторые необходимые мне функции построения трехмерных и двумерных графиков, поэтому в процессе обучения изучаю некоторые OpenGL.
В настоящее время я могу строить точки, используя OpenGL, но только в виде кругов (или «квадратов», отключив сглаживание). Эти точки действуют так, как мне нравится - то есть они не меняют размер при увеличении, хотя их положения x / y / z перемещаются соответствующим образом при масштабировании, панорамировании и т. Д.
То, что я хотел бы сделать, это построить точки, используя множество форм (^, <,>, *,. И т. Д.). Из того, что я понимаю об OpenGL (что не очень), это не тривиально, потому что OpenGL рассматривает все как «настоящий» трехмерный объект, поэтому увеличение любой формы openGL, но «точка» изменяет проекцию объекта размер.
После прочтения, я думаю, есть (по крайней мере) 2 возможных решения этой проблемы:
Использовать текстуры OpenGL. Это не кажется сложным, но я считаю, что изображения текстур будут увеличиваться и уменьшаться при увеличении масштаба - это правильно?
Используйте полигоны OpenGL, линии и т. Д. И рисуйте *, треугольники или что-то еще. Но здесь я снова сталкиваюсь с той же проблемой - как я могу помешать OpenGL изменить размер «точек» при масштабировании?
Является ли решение просто прикусить маркер и заново рисовать весь набор данных каждый раз, когда пользователь увеличивает или перемещает изображение, чтобы убедиться, что точки остаются одинакового размера? Есть ли способ просто сказать openGL не пересчитывать размер объекта?
Извините, если это где-то в документе OpenGL - я не смог его найти.