Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Helix工具箱提高WPF渲染性能_C#_Wpf_Rendering_Helix 3d Toolkit - Fatal编程技术网

C# 使用Helix工具箱提高WPF渲染性能

C# 使用Helix工具箱提高WPF渲染性能,c#,wpf,rendering,helix-3d-toolkit,C#,Wpf,Rendering,Helix 3d Toolkit,我正在渲染大量加载为stl的网格,然后将其添加到视口中,该视口是HelixViewport3D对象。环境中的所有网格都是静态的 // in MainWindow.xaml <HelixToolkit:HelixViewport3D x:Name ="viewPort" ZoomExtentsWhenLoaded="True" Margin="250,-15,0,15"> // in MainWindow.cs Constructor this.viewPort = new Hel

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

// in MainWindow.xaml
 <HelixToolkit:HelixViewport3D x:Name ="viewPort" ZoomExtentsWhenLoaded="True" Margin="250,-15,0,15">

// in MainWindow.cs Constructor
this.viewPort = new HelixViewport3D();
foreach(string path in meshPaths){
    ModelVisual3D meshModel = loadMesh(path);
    viewport.Children.Add(meshModel);
}
//在MainWindow.xaml中
//在MainWindow.cs构造函数中
this.viewPort=新的HelixViewport3D();
foreach(网格路径中的字符串路径){
ModelVisual3D网格模型=加载网格(路径);
viewport.Children.Add(meshModel);
}
由于网格数很高,渲染性能相当低(在旋转期间冻结,难以放大…)。如何使场景更易于旋转和操纵

关于渲染、命中测试等,它会带来很大的开销

因此,可以帮助您减少视觉效果并将它们粘在一起:

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 });
如果不打算更改模型,只需将其添加到
HelixViewport3D

meshes.Freeze();

您是否找到了有关多个对象性能的解决方案?我必须使用70MB的3ds文件。。我试图删除最大可见边界的边界大小小于xxx%的网格(但我还没有找到任何方法知道最大可见边界…)嗨@MauroDestro,实际上我没有太多改进。不过,你的方法似乎很有希望。也许你可以将其与视口本身的百分比进行比较。是的@Nic,但我无法找到空间可见部分的大小(例如,包含整个模型可见的不可见球体的边界)来计算%