Производительности, используя один и тот же экземпляр кисти в WPF 3D-графики
Привет,
Для создания GeometryModel3D требуется MeshGeometry3D и материал.
Например,
GeometryModel3D myGeometryModel3D = new GeometryModel3D(myMeshGeometry3D, new DiffuseMaterial(Brushes.Green));
Модели, с которыми я имею дело, могут иметь сотни или тысячи объектов GeometryModel3D. Будет ли это иметь преимущество в производительности, если я использую один экземпляр DiffuseMaterial для многих экземпляров GeometryModel3D вместо создания нового для каждого экземпляра GeometryModel3D?
Что я уже пробовал:
GeometryModel3D myGeometryModel3D = new GeometryModel3D(myMeshGeometry3D, new DiffuseMaterial(Brushes.Green))
Graeme_Grant
Вы создали простой тест и попробовали его?
HD86_
Нет, потому что я не знаю, как определить разницу. Я хотел бы получить теоретический ответ, а не только практический. Занимает ли создание большего количества экземпляров кисти больше памяти, чем назначение одной кисти многим объектам GeometryModel3D?
HD86_
Я сделал следующий тест: я построил несколько объектов GeometryModel3D из одного и того же материала. Затем я изменил материал для одного из них, и это изменило материал для всех других объектов, которые разделяют тот же материал. Затем я построил объекты GeometryModel3D, каждый из которых имеет свой собственный материал. Я изменил материал для одного предмета, но остальные не пострадали. Вывод: если я использую один экземпляр материала для каждого экземпляра GeometryModel3D, это займет больше памяти.