在Open GL中静态绘图

时间:2011-06-23 16:05:35

标签: c++ opengl

我正在使用C ++和Open GL开发类似绘画的应用程序。但每当我绘制像圆形,线条等对象时,它们都不会在页面上停留**。我的意思是我绘制的每个新对象都放在一个空白页面上。如何让我的绘制对象持续存在?

2 个答案:

答案 0 :(得分:3)

OpenGL没有几何持久性。基本上它是铅笔,画笔和颜料,你在画布上画一个叫做“framebuffer”的画布。因此,在你画出一些东西并清除帧缓冲之后,它不会以某种神奇的方式重新出现。

有两种解决方案:

  • 您保留所有绘图操作的列表,并在每次重绘时重新绘制该列表中的所有内容。

  • 在绘制图像之后,将帧缓冲区中的图像复制到纹理而不是glClear,您可以使用该纹理填充背景。

这两种技术都可以结合起来。

答案 1 :(得分:1)

只是不要清除帧缓冲区,你绘制的任何东西都会留在屏幕上。这与我用来允许用户在我的OpenGL模型上绘制的方法相同。这仅适用于标记图像,因为使用此方法无法擦除您绘制的内容,除非您的擦除方法是使用背景颜色进行绘制。