我需要使用OpenGL在屏幕外呈现大量(数万张)图像。我正在Windows下运行并使用QT作为框架。解决方案可以仅限于Windows,这并不重要。
从谷歌上我发现有许多选项可以完成这个任务。这篇文章提出了几种方法,其中相关的是:
从谷歌上我发现有许多选项可以完成这个任务。这篇文章提出了几种方法,其中相关的是:
- Windows特定 - 使用
CreateDIBSection
,并将纹理与其绑定。 - 使用似乎受到我的卡支持的pbuffers扩展。
这个线程(第6条消息)提出了一种QT特定的方法,使用QGLWidget :: renderPixmap
。
我的问题是 - 哪种方式最快?pbuffers似乎是最保险的选择,因为它有保证可以在硬件上执行,但是使用CreateDIB方法也会通过硬件吗? QT方法怎么样? 这个方法似乎存在一些上下文创建问题。 当然,我不想为每个图像创建一个新上下文。
有人有这方面的好经验吗?
编辑:回复评论 -
我有一个始终不变的场景,并且从许多不同的视点进行渲染。目前,这些图像会返回给用户并由CPU处理。未来可能会在GPU上进行处理。
QGLFrameBuffer
https://dev59.com/8nnZa4cB1Zd3GeqPlQw6 - linello