我是OpenGL的新手,只需要知道是否有一种快速的方法来保存渲染/图片/视图,重新绘制所有未填充的行(基本上使所有内容都看到)然后再用户很高兴,转到已保存的渲染并重新显示。
我必须回过头来尝试重新绘制所有内容,不是OpenGL设置,以便我可以保存当前绘制/显示的内容,复制它,更改它(用GL_LINES而不是GL_FILL重绘所有内容),显示它,让用户做任何他们想做的事情,当用户完成后,将其恢复原始保存的副本?
答案 0 :(得分:2)
这不是OpenGL的工作原理,因为OpenGL不是场景管理库。 OpenGL所做的就是在屏幕上绘制简单的图元(如点,线或三角形)。一旦它绘制了一些东西(将它从一堆三角形或线条转换为帧缓冲区中的一堆像素),它就会完全忘记它。所以你不能告诉OpenGL用另一种渲染样式(在你的情况下是多边形模式)神奇地重绘最近绘制的场景(最近“最近”在这个上下文中?)。
您当然可以通过将当前渲染(帧缓冲区的当前内容)复制到纹理中(或使用FBO直接将其重新渲染为纹理)来保存当前渲染(然后通过将此纹理绘制到屏幕来恢复它)。但是,每个更高级别的场景管理都是您的责任,如果您想使用不同的多边形模式重绘场景,那么您没有其他选择,而是自己重绘整个场景。