opengl离屏渲染

opengl离屏渲染,opengl,glut,freeglut,Opengl,Glut,Freeglut,我在MAC OS X 10.6上使用opengl FBO和glut进行屏幕外渲染。该程序涉及多个3D对象的移动 该程序似乎工作良好,除了我需要包括一个选项,其中屏幕外的缓冲区内容不交换到屏幕上的缓冲区。因此,您在屏幕上看不到任何内容。我想知道,当屏幕上看不到任何东西时,程序是否按此模式正常工作-即3D运动等正常工作。是否有一个实用程序可以读取屏幕外的缓冲区,并在我的进程单独运行时在屏幕上显示它 或者,是否有其他方法来实现这一点?即在使用FBO渲染屏幕外时隐藏屏幕上的窗口 感谢您的任何意见/建议。

我在MAC OS X 10.6上使用opengl FBO和glut进行屏幕外渲染。该程序涉及多个3D对象的移动

该程序似乎工作良好,除了我需要包括一个选项,其中屏幕外的缓冲区内容不交换到屏幕上的缓冲区。因此,您在屏幕上看不到任何内容。我想知道,当屏幕上看不到任何东西时,程序是否按此模式正常工作-即3D运动等正常工作。是否有一个实用程序可以读取屏幕外的缓冲区,并在我的进程单独运行时在屏幕上显示它

或者,是否有其他方法来实现这一点?即在使用FBO渲染屏幕外时隐藏屏幕上的窗口


感谢您的任何意见/建议。我希望我的问题很清楚。

我会将屏幕外的缓冲区复制到共享内存中。然后,外部应用程序连续读取共享内存内容,更新纹理并将其显示在屏幕上

就这样

我经常使用它,即使在屏幕外渲染时也是如此,但我没有一个方便的示例:(

我建议在共享内存的开始处存储额外的信息(宽度、高度、像素类型、增量整数,以了解图像是否已从上次读取更改…)。 在这个标题之后,存储应用程序生成的像素数据,其大小实际上取决于宽度、高度和像素大小


我还建议使用glReadPixels来存储像素数据,将映射的共享内存作为参数传递。远程应用程序可以使用该数据来更新纹理。

应该能够显示FBO内容,而无需您额外的努力,至少Windows版本可以这样做。7天试用版可用。

Gre在回答中。你知道哪些使用这种技术的例子吗?谢谢。让我试试。再次感谢。有没有使用glut/freeglut进行屏幕外渲染的例子。我看过一个使用openglut的,但更喜欢使用freeglut。有什么想法吗?有没有使用glut/freeglut进行屏幕外渲染的例子。我看过一个使用openglut的但是更喜欢使用freeglut。有什么想法吗?@John Qualis FBO不依赖于您的GUI工具包。只要选择任何FBO教程,它就会工作。