#c #fbx #assimp
#c #fbx #assimp
Вопрос:
Я создаю свой игровой движок на C , и я хотел иметь возможность экспортировать свои сцены, используя формат FBX.
Итак, когда я попытался экспортировать формат FBX из ранее импортированного OBJ-файла, он действительно отображается правильно. Но он экспортируется неправильно при экспорте во что-либо, отличное от того, из чего он был первоначально импортирован.
std::unique_ptr<Assimp::Exporter> exporter = std::make_unique<Assimp::Exporter>();
const auto* scene = mesh->mScene;
exporter->Export(scene, "fbx", "assets/output.fbx");
Здесь mesh->mScene
находится aiScene
импортированный ранее файл.
Этот код действительно работает и Export()
возвращает успех; однако выходной файл не содержит правильных данных сетки. Только при импорте из FBX он корректен и может быть импортирован в Maya без проблем.
Мне нужен способ конвертировать Assim::aiScene
для экспорта в формат FBX, потому Assimp
что позволяет экспортировать сетки только в тот формат, из которого они импортированы.
Кроме того, я хотел иметь возможность изменять сетки, допустим, я хочу заменить диффузную текстуру.
//Yeah, sorry I am still a beginner :)
auto* aiMaterial = mesh->mScene->mMaterials[index];
if (aiMaterial->RemoveProperty("$clr.diffuse") != 0 || aiMaterial->AddProperty(texture->getPath().c_str(), 1, "$clr.diffuse") != 0)
{
assert(false, "Failed to add property!");
}
Этот код также работает нормально, но он ничего не меняет в сетке.