我想知道是否可以在 OpenGL 中删除任何绘图的部分内容?假设我用鼠标画了两条线,这些线在某些点重叠。
是否可以只删除一行?有没有更简单的方法?
最佳答案
OpenGL 不存储您绘制的内容。如果您在 OpenGL 中画一条线,那么 OpenGL 将采用该线,对其执行各种数学运算,并将像素写入形成线形的帧缓冲区。 OpenGL 不记得你画了一条线; OpenGL 所能做的就是将像素写入帧缓冲区。
一般的想法是,由 OpenGL 的用户记住他们画的是什么。所以如果你画两条线,你应该记住你给这两条线的坐标。因此,如果您想“删除”一行,您要做的就是清除屏幕并重新绘制除该行之外的所有内容。
这并不像听起来那么愚蠢。许多 OpenGL 应用程序不断重绘屏幕。他们显示一个框架,绘制一个新框架,然后显示该框架,等等。这为动画提供了可能性:改变绘制的内容和在不同框架中绘制的位置。这会产生运动的错觉。
关于c++ - 在 OpenGL 中删除部分绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6369380/