C++ C++;处理1000000个2D精灵的2D图形库?

C++ C++;处理1000000个2D精灵的2D图形库?,c++,qt,graphics,2d,C++,Qt,Graphics,2d,我正在尝试做一个需要处理大量简单2D对象的项目,当然需要绘制它们。为此,我需要一个好的C++库,可以处理大量的“精灵”。 我一直在尝试Qt,因为我觉得他们的“40000芯片”演示非常令人印象深刻。然而,通过一点玩弄,我的电脑似乎在管理160000个芯片时遇到了很多麻烦。我不知道它为什么慢的技术细节(CPU?OpenGL的GPU使用率不好?Qt对大量项目不好?) 所以,我一直在网上搜索一个适合我需要的图书馆。但我找不到任何库,主要是因为似乎没有库会说“嘿,我擅长管理1000000个对象!”,但我相

我正在尝试做一个需要处理大量简单2D对象的项目,当然需要绘制它们。为此,我需要一个好的C++库,可以处理大量的“精灵”。 我一直在尝试Qt,因为我觉得他们的“40000芯片”演示非常令人印象深刻。然而,通过一点玩弄,我的电脑似乎在管理160000个芯片时遇到了很多麻烦。我不知道它为什么慢的技术细节(CPU?OpenGL的GPU使用率不好?Qt对大量项目不好?)

所以,我一直在网上搜索一个适合我需要的图书馆。但我找不到任何库,主要是因为似乎没有库会说“嘿,我擅长管理1000000个对象!”,但我相信有些库比其他库更有能力

我不需要一个像SDL那样“好”的库,如果我没有操纵杆支持或其他什么都没关系。我只需要显示、缩放、旋转和移动大量简单的2D对象

谢谢


附言:我测试过Ogre3D。我想知道他们是如何在演示程序中处理15K个三角形并在我的计算机上以100fps的速度运行的。而且,它是3D的!如果我使用150K三角形,它的伸缩性好吗?

我在这里猜测,但我认为问题在于GUI工具包(如qt、gtk)中的对象太重,无法使用1000000。GUI对象是引用计数的,并且有大量的额外数据。我真的不认为你会找到一个GUI工具包,可以做你想要的

但是,您需要的是二维图形(或三维)库。对于这种大小的东西,您将希望在相当低的级别上高效地管理渲染,OpenGL是一个合理的选择,尽管它需要一点学习曲线(特别是对于精灵)。但是,从这一点开始,找一个适合你的像样的图书馆


甚至可以将问题改为“处理1000000个2D精灵的C++2D图形库?”

据我所知,目前还没有一款主流视频游戏可以在一帧中渲染1000000个2D精灵(粒子)。然而,2004年的一个研究项目展示了如何做到这一点:


在我看来,当视频游戏最终在一帧中渲染1000000个粒子时,它们将通过OpenCL或DirectCompute进行渲染,因为这避免了著名的填充率硬件瓶颈,这使得在OpenGL或Direct3D中渲染粒子变得不切实际。

你到底在对1000000个GUI对象做什么,为什么不进行剔除,重用屏幕外的对象。“OpenGL的GPU使用不好”?我会告诉你糟糕的实现或糟糕的GPU:P@RTS:我可能需要1000000个独立代理,在本地进行交互。比如说一百万只蚂蚁。他们可能有相同的图形方面,我真的不在乎。你似乎在谈论复制屏幕外的对象,但我不明白这有什么意义@VJo:不知道,我必须承认^^^嗯,目前我已经听从了你的建议,更改了标题=)