我正在研究的项目需要渲染一个ESRI形状文件,它可以有大量的多边形/形状.当我将所有这些多边形,线条,点等添加到我正在使用的画布时,它变得非常慢.
要在地图上绘制形状,我正在创建一个Path对象,并将其Data属性设置为StreamGeometry.我最初使用的是Polygon,但根据MSDN,StreamGeometry的重量要轻得多.
如何提高性能?将成品转换为Bitmap,还是VisualBrush帮助?有没有更有效的方法将所有这些形状渲染到画布上?
编辑:我忘了提到这需要能够在部分信任XBAP中工作.
无需求助于GDI,您只需要在WPF API中向下移动一层,并将几何体组合成更少的视觉效果.Pablo Fermicola提供了一些有用的信息,可根据您的性能需求选择要使用的层.
我已经设法使用DrawingVisual和DrawingContext类获得了出色的性能.
您将发现 GPU 以及疯狂超频和冷却显卡背后的动机。还有双缓冲。
并且:将其转换为位图:与渲染它有什么区别?
毕竟你有 n 个对象/以某种方式/必须渲染(除非你能找出哪些对象隐藏在其他对象后面,但这对你没有多大帮助,因为你必须查看 n 个对象关系)。
此外:也许放弃正统的 OOP 方法而采用过程化方法是值得的。
归档时间: |
|
查看次数: |
3588 次 |
最近记录: |