用于大量对象的Qt图形画布?

用于大量对象的Qt图形画布?,qt,graphics,Qt,Graphics,我现在有两个项目使用Qt作为小部件工具包,它们都可以轻松地处理超过10000000个需要交互呈现的数据元素的大量数据。理想情况下,每个“数据元素”将使用大约三到五个基本体线/矩形/圆等进行渲染。;所以总共大概有40000000个图形原语 我尝试过明显的QGraphicsView/QGraphicscene方法,但这些类在大约400000个元素时开始减速,令人无法接受。上一次我遇到这个问题是为了一个更普通的1000000个原语,我为Qt手动实现了一个图形画布。这是一个触摸车,至少一个接一个的渲染错

我现在有两个项目使用Qt作为小部件工具包,它们都可以轻松地处理超过10000000个需要交互呈现的数据元素的大量数据。理想情况下,每个“数据元素”将使用大约三到五个基本体线/矩形/圆等进行渲染。;所以总共大概有40000000个图形原语

我尝试过明显的QGraphicsView/QGraphicscene方法,但这些类在大约400000个元素时开始减速,令人无法接受。上一次我遇到这个问题是为了一个更普通的1000000个原语,我为Qt手动实现了一个图形画布。这是一个触摸车,至少一个接一个的渲染错误,我无法修复。,并且依赖于其他一些我不想在我当前的项目中使用的写得很糟糕的错误代码

所以,我向全世界提出的问题是:是否有一个更好的开源Qt图形画布可以处理这些类型的负载?还是我最好写一本适合我具体需要的书


谢谢。

一次将显示多少个元素?在这1000000个元素中,有多少元素在视觉上是独一无二的?使用适当的pixmap缓存和场景索引方法,您应该能够处理此问题。您的每个项目都是QGraphicsItem而不是QGraphicsObject吗?还有,在给定的时间内有多少项是可见的?看一看细节层次图,看看如何用这种方式进行优化的例子。啊,忘了提到两个要点。1:理想情况下,所有元素都应该一次可见,但这是不合理的,比如说10-30%。2:所有图形都是矢量图形。我将查看LoD QGraphicsView示例,谢谢@Chris。另外:大多数元素将具有相同的基本形状(可能为20-25个形状),但颜色不同。QGraphicscene使用BSP树进行空间分区。您可以调整它的最大深度,并且对于您的大小的场景,可以对性能产生巨大影响。