使用Helix Toolkit提高WPF渲染性能

时间:2015-10-27 17:16:37

标签: c# wpf rendering helix-3d-toolkit

我正在渲染大量的网格作为stl加载,然后添加到视口,这是一个HelixViewport3D对象。所有网格在环境中都是静态的。

using(dbContext context = new dbContext())
{
    context.tbl_persons.RemoveRange(context.tbl_persons.Where(x => ListOfIdThatNeedToBeRemoved.Contains(x.id)));
    context.SaveChanges();  
}

由于网格数量很高,渲染性能非常低(在旋转过程中会冻结,难以放大......)。如何让场景更容易旋转和操作?

1 个答案:

答案 0 :(得分:0)

关于ModelVisual3D's remarks,它涉及渲染,命中测试等方面的大量开销。

因此,可能会帮助您减少视觉效果并将其粘在一起的东西:

this.viewPort = new HelixViewport3D();
var meshes = new Model3DGroup();
foreach (string path in meshPaths)
{
    // just take the model of the loaded 3d object
    meshes.Children.Add(loadMesh(path).Content);
}
viewport.Children.Add(new ModelVisual3D() { Content = meshes });

如果您不打算更改模型,则可以简单地freeze将它们添加到HelixViewport3D中:

meshes.Freeze();