Я пытаюсь визуализировать 3D-контент в окне WPF. При загрузке он отображается нормально, однако загрузка модели занимает значительное время. Я попытался сделать это как можно быстрее, написав прямую инициализацию Model3D, напр.
Model3D model = new GeometryModel3D(new MeshGeometry3D{Positions=new Point3DCollection{new Point3D(x,y,z),... },
Normals=new Vector3DCollection{new Vector3D(x,y,z),... },
TriangleIndices=new Int32Collection{1,2,3,... }},
new DiffuseMaterial(...));
Это работает, и я подумал, что это будет самым быстрым, учитывая отсутствие анализа и т. Д. c. Однако это все еще занимает достаточно много времени, и, поскольку это происходит в потоке GUI, он останавливает интерфейс во время загрузки.
У меня есть 2 вопроса:
- Есть ли более быстрый способ загрузки таких данных c.
- Как я могу загрузить эти данные в другой поток , Все эти трехмерные объекты получены из
DispatcherObject
, доступ к которому возможен только из потока создания. Я поиграл, но все варианты выглядят так, как будто все еще включают копирование элемента данных по элементу