Ответ - Да. Наличие множества ModelVisual3ds будет на несколько порядков медленнее, чем использование Model3DGroup
Насколько я понимаю, ModelVisual3D
больше похоже на UIElement
, то есть больше на тяжелый объект. MSDN говорит о ModelVisual3d :
"Предоставляет службы и свойства, которые являются общими для всех визуальных объектов, включая тестирование попаданий, преобразование координат и вычисления ограничивающих рамок."
Так что, если вы хотите, чтобы на вашей сцене было 100 интерактивных трехмерных объектов, вам понадобится 100 ModelVisual3d
элементов.
Model3DGroup
(наряду с GeometryModel3D
), с другой стороны, представляет собой Model3D
- строительные блоки 3d-моделей. Один Model3D
может отображаться как контент для нескольких ModelVisual3Ds
. Model3Ds
более легкие, чем ModelVisual3D
.
Если вы хотите построить 3d-модели из строительных блоков (например, Lego), вы можете определить несколько GeometryModel3Ds
, а затем объединить их вместе, используя Model3dGroup
.
Да, наименования классов ужасно сбивают с толку, и я не думаю, что Даниэль Лехенбауэр проливает свет на эту тему для среднего человека.