2010-10-04 249 views
0

我正在使用opengl FBO和MAC OS X 10.6上的过量屏幕渲染。该程序涉及多个3D对象的移动。opengl关闭屏幕渲染

该程序似乎工作正常,除了我需要包括一个选项的屏幕缓冲区内容没有交换到屏幕上的缓冲区。因此你在屏幕上看不到任何东西。我想知道在屏幕上什么也看不到的情况下,程序是否正常工作,即3D移动等工作情况是否正常。是否有一个实用程序可以读取屏幕外缓冲区并在我的过程单独运行时将其显示在屏幕上。

或者,有没有其他方法可以实现这一目标?这是为了在使用FBO离屏时隐藏屏幕窗口。

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

回答

0

gDEBugger for Mac应该能够显示FBO内容,无需额外的努力在你身边,至少Windows版本的确如此。 7天的试用版可用。

+0

是否有任何可用于使用glut/freeglut进行离屏渲染的示例。我看到一个用openglut,但更喜欢使用freeglut。有任何想法吗? – 2010-10-06 06:09:45

+0

@John Qualis FBO不依赖于你的GUI工具包。只要你选择任何FBO教程,它就可以工作。 – 2010-10-06 18:08:01

0

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

就是这样。

我已经使用了很多,即使是离屏渲染,但我没有一个方便的例子。 :(

我会建议在共享内存的开始存储额外的信息(宽度,高度,像素类型,增量整数以知道图像是否从上次读取发生变化...)。 ,存储由你的应用程序,其尺寸由宽度,高度和像素大小实际上取决于所产生的像素数据。

我也建议使用glReadPixels来存储像素数据,使所述映射的共享存储器中作为参数。远程应用程序可以使用该数据来更新纹理

+0

很好的回答。你知道哪些使用这种技术的例子?欣赏它。 – 2010-10-04 17:58:50

+0

让我试试这个。再次感谢。 – 2010-10-05 01:32:30

+0

是否有任何可用于使用glut/freeglut进行离屏渲染的示例。我看到一个用openglut,但更喜欢使用freeglut。有任何想法吗? – 2010-10-06 06:10:26