1

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

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

4

1 回答 1

2
  1. 创建纹理、渲染缓冲区和帧缓冲区对象
  2. 将帧缓冲区对象绑定到您的 opengl 上下文
  3. 将纹理附加到帧缓冲区的颜色分量
  4. 将渲染缓冲区附加到帧缓冲区的深度组件
  5. 渲染到这个帧缓冲区
  6. 切换到默认帧缓冲区
  7. 将纹理渲染到您的视口。

关于 FBO 的详细信息:http ://www.opengl.org/wiki/Framebuffer_Objects

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

于 2013-01-24T05:25:45.970 回答