Как нарисовать изображение в openGL?
Я загружаю изображение (сканирование биологического изображения) и хочу а) отобразить его и б) нарисовать на нем маркеры. Как бы я запрограммировал шейдеры? Я думаю, что вершинные шейдеры достаточно просты, так как это 2D-изображение. По идее, я должен был перезаписать данные изображения в буфере, пиксели с маркерами установлены на определенные значения. Мои маркеры - это прямоугольники (линии), это правильный путь? Я читал, что существуют разные примитивы, тоже линии, так есть ли способ рисовать мои линии на моем изображении, не манипулируя данными в буфере, просто, так сказать, наложением? Мой фреймворк Vispy, но псевдокод также поможет.
1 ответ
Нарисуйте прямоугольник / квадрат с вашим изображением в качестве текстуры на нем. Затем нарисуйте маркеры (вероятно, в виде монотонных квадратов / прямоугольников).
Если вы хотите, чтобы линии были над изображением, но под маркерами, просто поместите код рендеринга между ними.
Шейдеры не требуются, если вам подходит более старый OpenGL (так как в OpenGL 3.3 большинство старых материалов было перенесено в профиль совместимости, а современные функции являются профилем ядра; для последнего требуются самописные шейдеры, но они должны быть довольно простыми для вашего случая),
Подводя итог, нужно понимать, что вам нужны примитивы (линии, треугольники) и базовое текстурирование.