Как загрузить 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 должен справиться с этим и для вас. Мне не нужно было ничего делать, чтобы заставить его работать.

Другие вопросы по тегам