如何让OpenGL保留已经绘制并渲染新对象的对象?

时间:2016-01-20 02:17:33

标签: opengl

如何让OpenGL保留已经绘制并渲染新对象的对象?

我想做的是每次获取位置值并绘制点。

但是,我发现当我尝试绘制一个新点时,最后一点就消失了。

我是否必须保存所有位置值?

我担心会有很多东西留在记忆中。

还有其他办法吗?请帮帮我......

1 个答案:

答案 0 :(得分:1)

你知道Magic Screen是什么吗?

OpenGL的工作原理如下。你有一个所谓的“帧缓冲区”:内存中的一个区域,每个绘制周期开始“清理”,就像魔术屏幕一样......然后你在框架中绘制你想要的任何东西。您在屏幕上绘制的所有内容都不会与绘图来源的信息源保持任何关联...换句话说,当您在坐标(a,b,c,d)中绘制线条时,该线条不会保留有关此类坐标的任何信息。程序员负责将(a,b,c,d)保留在其他地方,以便识别出有一条线......在这种情况下,OpenGL只是渲染本身,只是最终图片。

在下一帧中,再次清洁帧缓冲区,就像清洁魔术屏幕一样(当你摇动它时)......然后再次开始渲染......

PS:当然OpenGL比这个要大得多,这只是回答你问题的一种简化方式......比如使用2帧缓冲区和交换它们更有效,而OpenGL就是这样做的。场景中还有其他概念,比如3D的深度缓冲等......但我认为我与魔术屏幕的比较足以回答你的问题。