Я уже решил почти все, что касается слияния, за исключением проблемы с текстурами. Индексы сетки и материалов были обновлены, но когда дело дошло до текстур, на которые материалы ссылаются как на пути к файлам, я столкнулся со странной проблемой.
Чтобы решить проблему слияния моделей с разными полными путями, текстуры вызывают проблему , поскольку на них указываются относительные пути к файлу модели.
При загрузке с приведенным ниже базовым кодом:
Код: Выделить всё
// Initialize the Assimp context
AssimpContext importer = new AssimpContext();
// Load the model with desired post-processing flags
Scene model = importer.ImportFile(filePath, PostProcessPreset.TargetRealTimeMaximumQuality |
PostProcessSteps.Triangulate |
PostProcessSteps.FlipUVs |
PostProcessSteps.EmbedTextures |
PostProcessSteps.GlobalScale |
PostProcessSteps.ValidateDataStructure);
Например, относительный путь к файлу «Normal.jpg» в той же папке, что и сам файл fbx, сохраняется как «*1\0mal.jpg», еще один в подпапке .fbm с именем «GPV-2.fbm\BaseColor.jpg» как «*0\0-2 BG.fbm\BaseColor.jpg».
Чтобы мне кажется, что первые три символа в какой-то момент во время импорта перезаписываются.
Я использую пакет Assimp.NET 5.0.0-beta1.
Кто-нибудь видел подобное раньше? По какой причине пути выглядят так и как я могу это решить?
Поскольку у Assimp.NET нет проблем с загрузкой текстур, я думаю, что пути во время импорта хороши. Возможно, я мог бы как-нибудь получить полный путь из assimp?
Path.Combine Не работает. Я пытался вручную вырезать фрагменты, но пропущенные символы по-прежнему вызывают проблемы, и я бы попробовал поиск файлов, если бы ничего не помогло.
Я пытался изучить код Assimp, но не смог не могу точно найти, как он импортирует.
Я также пытался обсудить это с ChatGPT, но тоже не смог решить проблему и не смог подсказать, где искать.
Подробнее здесь: https://stackoverflow.com/questions/791 ... st-3-chara