【发布时间】:2014-04-08 14:47:45
【问题描述】:
我正在尝试在 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 转换而来的汽车模型。转换后,我努力减少其中三角形的数量。这就是汽车丑陋的原因:)
问题是:如何将 3D 模型一次加载到显存中,然后重复使用?还是我做错了什么?
请帮忙!我花了这么多时间!!!
【问题讨论】:
-
所有汽车都同时可见吗?
-
唯一的限制是相机距离。否则,是的,我一直在画它们。
-
也许一种方法是在更多汽车可见时使用简化模型,而在您看起来关闭时使用详细模型。
-
这是个好主意,但我从未尝试过替换场景中的模型。我想我必须尝试一下。而且我真的相信我的场景对于这样的表演来说并没有那么复杂。