【问题标题】:ModelVisual3D vs Model3DGroupModelVisual3D 与 Model3DGroup
【发布时间】:2010-02-25 10:13:43
【问题描述】:

与 Model3DGroup 相比,使用 ModelVisual3D 是否有任何缺点。资源/性能影响可能有多大?

ModelVisual3D 比 Model3DGroup 给了我更多,但 AFAIK 可以用 Model3DGroup 完成的所有事情也可以用 ModelVisual3D 完成。

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

【问题讨论】:

    标签: wpf modelvisual3d


    【解决方案1】:

    答案是肯定的。拥有许多 ModelVisual3d 会比使用 Model3DGroup 慢几个数量级

    我的理解是ModelVisual3D 更类似于UIElement,即更重的对象。 MSDN 说关于ModelVisual3d:

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

    因此,如果您想在场景中添加 100 个可点击的 3d 对象,则需要 100 个 ModelVisual3d 元素。

    另一方面,Model3DGroup(连同GeometryModel3D)是Model3D - 3d 模型的构建块。单个Model3D 可以作为多个ModelVisual3Ds 的内容出现。 Model3Ds 比 ModelVisual3D 更轻量级。

    如果您想用积木(如乐高)构建 3d 模型,您可以定义多个 GeometryModel3Ds,然后使用 Model3dGroup 将它们组合在一起。

    是的,类命名非常混乱,我认为 Daniel Lehenbauer 并没有为普通人提供任何关于这个主题的信息。

    【讨论】:

    • 我也对此进行了“基准测试”。在一个场景中有 1000 个 ModelVisual3ds 运行速度非常慢。如果你在一个 Model3DGroup 中使用 1000 个 GeometryModel3D 将会非常顺利地运行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-12
    相关资源
    最近更新 更多