在OpenGL中每帧绘制新的全屏图像的最快方法是什么?

时间:2011-09-14 17:41:58

标签: c++ opengl

每一帧,我的程序都会从​​USB摄像机接收新图像。该映像最初将位于CPU内存中。 OpenGL中将此图像绘制到屏幕上以填充整个屏幕的最快方法是什么?

目前,我正在将图像数据上传到纹理,然后渲染全屏四边形。但是,在我尝试的其他计算机上运行速度不快。

2 个答案:

答案 0 :(得分:7)

  

目前,我正在将图像数据上传到纹理,然后渲染全屏四边形。但是,这在尝试的其他计算机上运行速度不快。有任何想法吗?感谢。

glTexImage2D 执行完整纹理初始化(这意味着,分配,对象设置等)。如果您只想用相同大小的图像替换纹理图像,请使用 glTexSubImage2D ,这要快得多。如果你想异步这样做,那么看看 Pixel Buffer Objects

答案 1 :(得分:2)

Blitting是一种可能的解决方案,有一个thread可以讨论它。但他们并没有给予好评。