如何在 openGL 中绘制图像?

How to draw on an image in openGL?

我加载图像(生物图像扫描)并想要 a) 显示它和 b) 在其上绘制标记。我将如何对着色器进行编程?我想顶点着色器很简单,因为它是一个 2D 图像。我的想法是覆盖缓冲区中的图像数据,将标记设置为特定值的像素。我的标记是方框(所以是线),这是正确的方法吗?我读到有不同的基元,也有线条,那么有没有一种方法可以在不操纵缓冲区中的数据的情况下在我的图像上绘制线条,可以这么说?我的框架很漂亮,但伪代码也会有所帮助。

画一个 rectangle/square 用你的图像作为纹理。然后,绘制标记(可能是单调的quads/rectangles)。

如果您希望线条在图像上方,但在标记下方,只需将渲染代码放在两者之间即可。

如果旧版 OpenGL 适合您,则不需要着色器(自 OpenGL 3.3 以来,大多数旧内容已移至 兼容性配置文件 ,而现代功能是 核心profile;后者需要自己编写着色器,但对于您的情况来说它们应该非常简单)。

综上所述,您需要了解的是图元(线、三角形)和基本纹理。