C# 如何重用WPF三维模型?

C# 如何重用WPF三维模型?,c#,wpf,3d,C#,Wpf,3d,我正在尝试在VS2013+C#+WPF中为3D交通模拟构建一个应用程序。我的问题是性能。只有1500辆非常简单的丑陋汽车,这个应用程序就无法使用了 我想原因是我为每辆车生成了一个新的3D模型: Auto newAuto = new Auto(); newAuto.model = new ModelBase("car1"); 其中ModelBase是函数: public ModelBase(string resourceKey) { this.Visual

我正在尝试在VS2013+C#+WPF中为3D交通模拟构建一个应用程序。我的问题是性能。只有1500辆非常简单的丑陋汽车,这个应用程序就无法使用了

我想原因是我为每辆车生成了一个新的3D模型:

Auto newAuto = new Auto();
newAuto.model = new ModelBase("car1");
其中ModelBase是函数:

public ModelBase(string resourceKey)
        {
            this.Visual3DModel = Application.Current.Resources[resourceKey] as Model3DGroup; 
            this.Visual3DModel.Freeze(); //does not affect on performance for some reason 
        }
car1.xaml是使用zam3d软件从3DS转换而来的汽车模型。转换后,我努力减少其中三角形的数量。这就是汽车难看的原因:)

问题是:如何将三维模型加载到图形内存中一次,然后重用它?还是我做错了什么


求求你,救命!我在这上面花了太多时间

WPF不适用于复杂场景,您需要切换到或。

车辆是否同时可见?唯一的限制是相机距离。否则,是的,我一直在画它们。也许一种方法是当更多的车可见时使用简化模型,而当你看起来关闭时使用详细模型。这是个好主意,但我从未尝试过在场景中替换模型。我想我得试试。我真的相信我的场景对于这样的表演来说并不是那么复杂。我需要这个评论,以便敢于切换到opengl。