我在C#和WPF的3D项目中工作,我使用Helix-Toolkit来显示不同的3D对象。我经常使用球体,我在场景中也有3D文本。问题在于性能,例如,我在每个鼠标移动时计算每个文本在场景中的位置,但随着文本数量的增加,性能会下降。我还有一个slider控件,当用户移动滑块时,它可以改变每个滑块值的球体半径,这也是一个性能问题。我不知道当所有可视对象的值都改变时,是否有任何方法来渲染场景,因为我认为现在的问题是,对于每个改变的文本位置,3D场景自动渲染其内容。
发布于 2019-02-01 05:36:45
首先,Helixtoolkit.Wpf使用了WPF内部的3D引擎,所有的广告牌/点/线都是用中央处理器绘制的。如果你有很多广告牌,你很快就会体验到性能的提升。如果可能,请尝试使用Helixtoolkit.Wpf.SharpDX。
在WPF中,鼠标移动的频率为100 has,您可以尝试每2次移动事件或3次移动事件来计算位置,以降低更新率。
我不确定如何更新球体大小,通常你只需要更新变换来缩放球体,而不是每次都创建一个新的球体网格。
https://stackoverflow.com/questions/54429650
复制相似问题