ModelVisual3D与Model3DGroup的区别

8

使用ModelVisual3D相比Model3DGroup有没有任何缺点?资源/性能的影响可能会有多大?

与Model3DGroup相比,ModelVisual3D可以提供更多功能,但据我所知,几乎所有可以使用Model3DGroup完成的任务也可以使用ModelVisual3D完成。

那么为什么不总是使用ModelVisual3D呢?

1个回答

10

答案是肯定的。使用很多ModelVisual3D比使用一个Model3DGroup要慢几个数量级

我的理解是ModelVisual3D更像是一个重量级对象,类似于UIElement。MSDN对ModelVisual3d有这样的描述:

"提供所有可视对象所共享的服务和属性,包括命中测试、坐标变换和边界框计算。"

因此,如果您想在场景中使用100个可点击的3D对象,您需要100个ModelVisual3D元素。

另一方面,Model3DGroup(以及GeometryModel3D)是Model3D - 3D模型的构建块。单个Model3D可以作为多个ModelVisual3D的内容显示。 Model3DModelVisual3D更轻量级。

如果您想从构建块(如乐高积木)构建3D模型,则可以定义多个GeometryModel3D,然后使用Model3DGroup将它们组合在一起。

是的,类命名非常令人困惑,我认为Daniel Lehenbauer对于普通人并没有揭示该主题的任何信息。


1
我也进行了基准测试。在场景中使用1000个ModelVisual3d会运行得非常缓慢。如果您使用1000个GeometryModel3D在一个Model3DGroup中,它将运行得非常流畅。 - Jack Ukleja

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接