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