0

我通过 OpenTK 使用 OpenGL,并在后台线程中渲染到 FramebufferObject。现在,在每个渲染帧之后,我想在我的 UI 中的一个或多个 OpenGL 控件中显示(部分)FBO。

这是如何运作的 ?

4

1 回答 1

1

你有两个选择:

  • 如果您的驱动程序支持上下文共享,您可以在 OpenGL 控件上绑定 FBO 纹理并直接显示(绑定纹理、渲染四边形、完成)。简单快速 - 只需确保您的渲染与显示同步。
  • 如果您的驱动程序不这样做,您必须通过 GL.ReadPixels 将渲染结果回读到位图对象(或等效对象)中。然后,您可以将它们作为纹理重新上传到其他 OpenGL 控件,或直接在非 OpenGL 控件上显示它们。

默认情况下,OpenTK 将始终尝试共享上下文。不幸的是,英特尔驱动程序不支持上下文共享,因此您不能在那里使用第一种方法。

于 2011-02-08T19:58:19.107 回答