繁体   English   中英

OpenGL:快速离屏渲染

[英]OpenGL: Fast off-screen rendering

我需要使用OpenGL在屏幕外渲染相当多的(数万个)图像。
我在Windows下运行并使用QT作为框架。 解决方案可以只是Windows,它并不重要。

从我发现使用Google的内容来看,有很多选项可以做到这一点。这篇看似相当过时的文章提出了几种方法,其中相关的方法是:

  • 特定于Windows - 使用CreateDIBSection并以某种方式将纹理绑定到它。
  • 使用我的卡上似乎支持的pbuffers扩展。

这个线程 (消息6)建议使用QGLWidget::renderPixmap以QT的方式执行此操作

我的问题是 - 哪一个是最快的方式? pbuffers似乎是最安全的赌注,因为它保证在硬件上执行但不使用CreateDIB方法也通过硬件? QT方法怎么样? 这个似乎存在一些上下文创建问题。 当然我不想为我创建的每个图像创建新的上下文。
有没有人对此有一些很好的经验?


编辑 :回答评论 -
我有一个不变的场景,我从许多不同的角度渲染它。 现在,图像将返回给用户,并由CPU处理。 可能在未来它们将在GPU上进行处理。

使用FBO 它比pbuffers快速,便携且使用起来更好。

编辑:为了获得最佳性能,在两个不同的FBO之间进行交替渲染:

  1. 渲染到A.
  2. 渲染到B.
  3. 从A读回并处理它
  4. 渲染到A.
  5. 从B回读
  6. 转到2

通过这种方式,您可以回读一个FBO,然后在GPU并行渲染到另一个FBO时对其进行处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM