复制或移动FrameBufferObject

时间:2014-05-07 15:26:19

标签: c++ opengl framebuffer

我想找到一种方法将所有几何体从opengl帧缓冲区发送到远程计算机,远程计算机将进行渲染。这将允许我在某种大型超级计算机上运行非常复杂的模拟,并在一台小型移动设备或简单的廉价客户机上进行渲染。

在开始挖掘我的代码之前,我认为它相对容易:让我们复制顶点数组并通过网络发送它,例如使用boost :: serialization,以及它。但我的几何图形被封装起来,这使我无法从我想要的地方访问它。

我已经能够渲染到帧缓冲区而不是直接在屏幕上渲染,我想知道是否有办法从OpenGL的fbo中检索数据呢?

1 个答案:

答案 0 :(得分:1)

首先你的术语是错误的。帧缓冲对象是屏幕外图像/表面的封装,不能保持几何。

第二:你所想象的已经由VirtualGL项目实现(但是它停留在一个相当古老的OpenGL配置文件中并且不支持现代GPU)。

X11 / GLX也始终支持间接OpenGL操作,即远程机器会将OpenGL命令发送到本地显示服务器,这正是您可能想到的。但这有一个主要缺点:网络带宽成为主要瓶颈。