Как узел сцены привязан к MeshGeometryModel3D с помощью HelixToolKit

#helix-3d-toolkit #helix

Вопрос:

Я могу загрузить модель с помощью assimp с:

 SceneNode _sceneModel = new Importer().Load(path).Root;
 

Это, по — видимому, загружает геометрию в отдельные сетки-например, если в Maya вы построили комнату с Wall_1, Wall_2, Wall_3 и т. Д. SceneNode-это своего рода структура данных со всеми сетками.

Затем отдельные сетки можно поместить в массив

         geometry = _sceneModel.Traverse().Where(x => (x is MeshNode)).Select(m => ((MeshNode)m).Geometry).ToArray();
 

Но в конечном счете я просто хочу привязать весь отдельный элемент геометрии (например, дом) в xml к

 <MeshGeometryModel3D>
 

но не могу понять, как это сделать. Я могу связать один фрагмент геометрии, например, из массива геометрии, я могу связать геометрию[1], которая может представлять стену, но не могу понять, как связать все это целиком.

Спасибо

Ответ №1:

MeshGeometryModel3D-это оболочка wpf для узла сетки (который является узлом сцены). Если вы хотите отобразить только загруженную модель, вы можете добавить узел корневой сцены в GroupNodeModel3D. Вы можете найти пример здесь https://github.com/helix-toolkit/helix-toolkit/blob/2254fce0870a165352ccb888e2f3e17398751724/Source/Examples/WPF.SharpDX/FileLoadDemo/MainViewModel.cs#L128

Комментарии:

1. Тнх. В xaml в чем разница между Element3DPresenter и MeshGeometryModel3D?

2. Element3DPresenter просто используется для привязки объекта element3d в модели представления, например, wpf presenter.