Как загрузить Obj с ассоциированием MTL (текстуры) в C#
Я пытаюсь загрузить OBJ с MTL (текстуры). Я использую helixtoolkit
ObjReader CurrentHelixObjReader = new ObjReader();
objmodel.Content = CurrentHelixObjReader.Read(@"C:...");
.obj работает но всегда серый
Файл.mtl находится в той же папке.
Кто-нибудь знает, как это реализовать...
1 ответ
Способ загрузки файлов.obj с помощью Helix заключается в следующем.
Сначала я создаю объект ModelImporter. Объект ModelImporter обрабатывает загрузку модели из файла.
Затем я просто вызываю метод Load нового объекта ModelImporter, передавая путь к файлу.obj, который я хочу импортировать, в виде строки. Метод Load возвращает Model3DGroup, поэтому я фиксирую возвращенное значение в объекте Model3DGroup.
ModelImporter importer = new ModelImporter();
Model3DGroup group = importer.Load(filePath);
Это все, что нужно сделать. Метод Load в ModelImporter правильно обрабатывает импорт файла.obj. В методе есть логика, чтобы определить, какой файл вы пытаетесь импортировать, поэтому вам не обязательно беспокоиться об этом самостоятельно.
Что касается файла.mtl, если файл.mtl находится в том же каталоге, что и файл.obj, HelixToolkit должен справиться с этим и для вас. Мне не нужно было ничего делать, чтобы заставить его работать.