opengl / pyopengl - 在多个视口中呈现完全相同的帧?

时间:2013-01-24 01:30:13

标签: opengl rendering 2d pyopengl

我在PyOpenGl编写了一个简单的工具,用于显示生理实验中使用的视觉刺激。目前,我在wxGLCanvas内的单个视口上渲染我的刺激,我在投影仪上全屏显示。我想添加第二个视口,以便用户可以“预览”投影机上显示的内容。但是,我不想复制我已经为第二个视口制作的所有绘制调用。我需要以毫秒精确的时间显示刺激(根据挂钟测量),因此我希望将开销降至最低,以达到足够高的帧速率。

我的问题是:在两个视口中有效渲染完全相同的帧的最简单方法是什么?我已经阅读了一些关于顶点缓冲区对象的内容,但我对OpenGL的理解非常简陋,我不确定VBO是否适合我的情况。

1 个答案:

答案 0 :(得分:2)

  1. 创建纹理,渲染缓冲区和帧缓冲区对象
  2. 将framebuffer对象绑定到opengl上下文
  3. 将纹理附加到帧缓冲区的颜色分量
  4. 将渲染缓冲区附加到帧缓冲区的深度组件
  5. 渲染到此帧缓冲区
  6. 切换到默认帧缓冲区
  7. 将纹理渲染到视口中。
  8. 关于FBO的详细信息:http://www.opengl.org/wiki/Framebuffer_Objects

    确保您在两个视口之间共享opengl上下文(请参阅:http://wiki.wxwidgets.org/WxGLCanvas#Sharing_wxGLCanvas_context