如果您开始渲染点,渲染大量顶点,然后结束,您将获得明显更好的性能,而不是您开始点,渲染顶点,结束并重复大量时间(例如,在平移和缩放操作期间重绘) ,比如说,200,000 点更平滑)。
我想这可能是有道理的,但它令人失望。有没有办法恢复性能,同时仍然在自己的开始-结束块中渲染每个点?
背景:
我想设计一个控件,它可以包含大量(在极端情况下超过一百万)“对象”,每个对象都进行自己的渲染。许多这些对象将自己表示为点。
如果我让十万个点分别在自己的开始-结束块中呈现自己,我会受到重大的性能影响(而不是在单个开始-结束块中呈现它们)。因此,似乎我可能必须让容器知道对象呈现自己的方式(例如,开始点,告诉所有需要呈现点的东西,然后结束)。
这弄乱了我想要的显示对象关系的独立性。它还会通过选择来搞乱命中测试,因为我认为您不能在开始-结束点块内的顶点中添加名称,对吗?
仅供参考(如果这有帮助)我的项目将显示 2D 场景(使用正射投影)并且需要命中测试以确定用户可能单击的相关对象。通常,对象将表示“轨迹”,其中包含用线连接的各个点。位置数据通常是静态的,但点和轨迹颜色以及显示表示可能会因用户设置和选择信息而改变。一个例外——“回放”模式可能允许用户一次只能看到一个轨迹点(回放中的“当前”点),并从一个点到下一个点逐步进行时间。但是,即使在那种情况下,我也假设我会根据播放中的当前时间简单地更改每个轨道上实际显示的点(在其“静态”位置)。