首页 > 解决方案 > 如何使用 HelixViewport 提高渲染 3D 场景的性能

问题描述

我在 C# 和 WPF 中处理 3D 项目我使用 Helix-Toolkit 来显示不同的 3D 对象。我经常使用 Spheres,场景中也有 3D 文本。问题是性能,例如我在每次鼠标移动时都会计算场景中每个文本的位置,但是随着文本数量的增加,性能会下降。我还有一个 Slider 控件,可以在用户移动滑块时更改每个滑块值的球体半径,这也是性能问题。我不知道当所有视觉对象的值都更改时,有什么方法可以渲染场景,因为我认为现在的问题是对于每个更改的文本位置,3D 场景都会自动渲染其内容。

标签: c#helix-3d-toolkit

解决方案


首先,Helixtoolkit.Wpf 使用 WPF 内部 3D 引擎,所有的广告牌/点/线都是使用 CPU 绘制的。如果你有很多广告牌,你会很快体验到性能冲击。如果可能,尝试使用 Helixtoolkit.Wpf.SharpDX。

鼠标移动在 WPF 中有 100Hz 的频率,您可以尝试只计算每 2 个移动事件或 3 个移动事件的位置,以降低更新率。

我不确定你如何更新你的球体大小,通常你只需要更新变换来缩放你的球体,而不是每次都创建一个新的球体网格。


推荐阅读