Пожалуйста, обратитесь к видео .
В моем приложении я отображаю стек контуров, используя DisplayList, созданный с помощью GL_LINE_STRIP.
Пользователь может выбрать контурные линии с помощью мыши. Для этого перед рендерингом DisplayList я отрисовываю все контуры с использованием уникального цвета и считываю пиксельный цвет под мышью (как объяснено здесь ). Этот рендеринг
сделано с использованием "немедленного режима".
Пользователь также может перемещать, удалять выбранные контуры. В этом случае я воссоздаю DisplayList.
Мои вопросы:
1) Я использую старые методы OpenGL. (Фиксированная конвейерная архитектура.) Есть ли способы улучшить производительность, используя новые методы OpenGL? (используя GPU, шейдеры ... и т. д.)
Потому что для большого числа контуров операции не являются плавными.
2) Я думаю, что рендеринг в «немедленном режиме», выполняемый для выбора контура, также является панелью производительности. Есть ли лучший способ сделать это?
3) Мне нужно отобразить узлы контура в виде облака точек, используя GL_POINTS. В этом случае я должен создать еще один DisplayList, используя GL_POINTS? (это означает, что есть два DisplayList; один для отображения линий, другой для отображения точек)?