HD86_ Ответов: 0

Производительности, используя один и тот же экземпляр кисти в 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, это займет больше памяти.

0 Ответов