3

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);
}

メッシュ数が多いのでレンダリング性能はかなり低いです(回転中にフリーズする、ズームインしにくい…)。シーンの回転と操作を簡単にするにはどうすればよいですか?

4

1 に答える 1

1

さんModelVisual3Dの発言ですが、レンダリングやヒットテストなどで大きなオーバーヘッドが発生します。

したがって、ビジュアルの量を減らしてそれらをくっつけることが、あなたを助けるかもしれません:

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();
于 2019-12-17T06:31:40.393 に答える