我想找到一种方法将所有几何体从opengl帧缓冲区发送到远程计算机,远程计算机将进行渲染。这将允许我在某种大型超级计算机上运行非常复杂的模拟,并在一台小型移动设备或简单的廉价客户机上进行渲染。
在开始挖掘我的代码之前,我认为它相对容易:让我们复制顶点数组并通过网络发送它,例如使用boost :: serialization,以及它。但我的几何图形被封装起来,这使我无法从我想要的地方访问它。
我已经能够渲染到帧缓冲区而不是直接在屏幕上渲染,我想知道是否有办法从OpenGL的fbo中检索数据呢?
答案 0 :(得分:1)
首先你的术语是错误的。帧缓冲对象是屏幕外图像/表面的封装,不能保持几何。
第二:你所想象的已经由VirtualGL项目实现(但是它停留在一个相当古老的OpenGL配置文件中并且不支持现代GPU)。
X11 / GLX也始终支持间接OpenGL操作,即远程机器会将OpenGL命令发送到本地显示服务器,这正是您可能想到的。但这有一个主要缺点:网络带宽成为主要瓶颈。