c++ - 复制或移动 FrameBufferObject

标签 c++ opengl framebuffer

我想找到一种方法将所有几何图形从 opengl 帧缓冲区发送到远程计算机,由其进行渲染。这将使我能够在某种大型 super 计算机上运行非常复杂的模拟,并在小型移动设备或进行渲染的廉价客户端机器上进行渲染。

在开始深入研究我的代码之前,我认为这会相对简单:让我们复制顶点数组并通过网络发送它,例如使用 boost::serialisation,仅此而已。但是我的几何图形是封装的,这使我无法从我想访问的地方访问它。

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

最佳答案

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

其次:VirtualGL 已经实现了您的想象项目(但它停留在相当旧的 OpenGL 配置文件中,不支持现代 GPU)。

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

关于c++ - 复制或移动 FrameBufferObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23521974/

相关文章:

c++ - 使用struct初始化c++ vector 时的构造函数错误

c++ - 从输入缓冲区读取

c++ - 在 OpenGL 中旋转一个对象在它自己的轴上

OpenGL 3.0 帧缓冲区输出到附件而无需我指定?

opengl - 使用 Cg 的 OpenGL 中的多个渲染目标

c++ - Valgrind 无效读取大小 8 C++

c++ - C++ 中依赖注入(inject)的接口(interface)与模板

c# - 使用 C# 获取 OpenGL 版本的最简单方法

c++ - opengl SOIL库仅加载未压缩的dds图像

python - 具有多个纹理的 OpenGL 帧缓冲区