gpt4 book ai didi

wpf - DrawingVisual vs Canvas.OnRender 对许多不断变化的形状的性能

转载 作者:行者123 更新时间:2023-12-03 21:13:18 24 4
gpt4 key购买 nike

我正在开发一个类似游戏的应用程序,它有多达一千种形状(椭圆和线条),以 60fps 的速度不断变化。阅读了 excellent article on rendering many moving shapes ,我使用自定义的 Canvas 后代实现了这个,它覆盖了 OnRender通过 DrawingContext 进行绘图.尽管 CPU 使用率很高,但性能相当合理。

然而,文章建议,对于不断移动的形状,最有效的方法是使用大量 DrawingVisual实例而不是 OnRender .不幸的是,尽管它没有解释为什么在这种情况下应该更快。

以这种方式更改实现是一项不小的努力,所以我想在决定进行切换之前了解原因以及它们是否适用于我。为什么 DrawingVisual方法导致 CPU 使用率低于 OnRender在这种情况下的方法?

最佳答案

然而,在我的测试中(平移动画),我注意到速度没有差异。我会说为许多绘图视觉效果使用宿主元素要快一些。这种使用许多视觉效果构建视觉树的方法为您提供了更多控制权。此外,当您想要进行复杂的 HitTest 时,过滤过程会更快,因为您可以跳过整个视觉“分支”

关于wpf - DrawingVisual vs Canvas.OnRender 对许多不断变化的形状的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2319365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com