【发布时间】:2010-09-17 21:13:57
【问题描述】:
我需要使用 OpenGL 在屏幕外渲染大量(数万)图像。
我在 Windows 下运行并使用 QT 作为框架。解决方案只能是windows,没关系。
根据我使用 Google 的发现,有很多选项可以做到这一点 This article 似乎相当过时,提出了一些方法,其中相关的是:
- Windows 特定 - 使用
CreateDIBSection并以某种方式将纹理绑定到它。 - 使用我的卡上似乎支持的 pbuffers 扩展。
This thread(消息 6)建议使用 QGLWidget::renderPixmap 执行此操作的 QT 特定方式
我的问题是 - 哪一个是最快的方式? pbuffers 似乎是最安全的选择,因为它保证在硬件上执行但不是使用 CreateDIB 方法也通过硬件? QT方法呢?这似乎存在一些上下文创建问题。我当然不想为我创建的每个图像都创建一个新的上下文。
有没有人有这方面的一些好的经验?
编辑:回复评论 -
我有一个不变的场景,根本没有改变,我从许多不同的角度渲染它。现在,图像会返回给用户并由 CPU 处理。将来可能会在 GPU 上进行处理。
【问题讨论】:
-
图片来自哪里?您是否一遍又一遍地渲染同一个场景,也许是从不同的角度?或者你是从磁盘加载纹理后的纹理吗?图像去哪里了?进入 GPU 计算?到磁盘上?你的答案取决于细节。
-
已在问题中回答
-
也许这个链接有用,这里我使用了带有
QGLFrameBufferstackoverflow.com/questions/19934102/…的帧缓冲对象
标签: performance opengl 3d rendering off-screen