2013-01-24 43 views
1

我正在写一个简单的工具PyOpenGl用于显示在生理学实验中使用的视觉刺激。目前,我在一个wxGLCanvas内的单个视口上呈现我的刺激,我在投影仪上全屏显示。我想添加第二个视口,以便用户可以“预览”投影机上显示的内容。但是,我不想复制我已经为第二个视口创建的所有绘制调用。我需要以毫秒级的精确时间显示刺激(针对挂钟测量),所以我想将开销保持在最低水平,以获得足够高的帧率。opengl/pyopengl - 在多个视口渲染完全相同的帧?

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

回答

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

约FBO细节:http://www.opengl.org/wiki/Framebuffer_Objects

确保您共享2个视口之间的OpenGL上下文(参见:http://wiki.wxwidgets.org/WxGLCanvas#Sharing_wxGLCanvas_context

+0

I'm打算作为回答,以纪念这一点,因为它似乎是一个明智的方式去做这件事,但我目前对OpenGL的了解还远远不够,我实际上可以测试它!我仍然无法在'wxGLCanvas'中渲染简单的纹理! –

+0

你可能想看看一些opengl教程,如http://nehe.gamedev.net/ – yiding