使用ModelVisual3D相比Model3DGroup有没有任何缺点?资源/性能的影响可能会有多大?
与Model3DGroup相比,ModelVisual3D可以提供更多功能,但据我所知,几乎所有可以使用Model3DGroup完成的任务也可以使用ModelVisual3D完成。
那么为什么不总是使用ModelVisual3D呢?
使用ModelVisual3D相比Model3DGroup有没有任何缺点?资源/性能的影响可能会有多大?
与Model3DGroup相比,ModelVisual3D可以提供更多功能,但据我所知,几乎所有可以使用Model3DGroup完成的任务也可以使用ModelVisual3D完成。
那么为什么不总是使用ModelVisual3D呢?
答案是肯定的。使用很多ModelVisual3D比使用一个Model3DGroup要慢几个数量级
我的理解是ModelVisual3D
更像是一个重量级对象,类似于UIElement
。MSDN对ModelVisual3d有这样的描述:
"提供所有可视对象所共享的服务和属性,包括命中测试、坐标变换和边界框计算。"
因此,如果您想在场景中使用100个可点击的3D对象,您需要100个ModelVisual3D
元素。
另一方面,Model3DGroup
(以及GeometryModel3D
)是Model3D
- 3D模型的构建块。单个Model3D
可以作为多个ModelVisual3D
的内容显示。 Model3D
比ModelVisual3D
更轻量级。
如果您想从构建块(如乐高积木)构建3D模型,则可以定义多个GeometryModel3D
,然后使用Model3DGroup
将它们组合在一起。
是的,类命名非常令人困惑,我认为Daniel Lehenbauer对于普通人并没有揭示该主题的任何信息。