12 Assimp::Importer importer;
14 uint32_t flags = aiProcess_Triangulate | aiProcess_JoinIdenticalVertices | aiProcess_SortByPType;
17 flags |= aiProcess_FlipUVs;
20 const aiScene* scene = importer.ReadFile(filename, flags);
22 if( scene ==
nullptr )
24 throw std::runtime_error(importer.GetErrorString());
27 if( scene->HasMaterials() )
29 for( uint32_t i = 0; i < scene->mNumMaterials; i++ )
31 mMaterials.push_back(std::shared_ptr<ModelMaterial>(
new ModelMaterial(*
this, *scene->mMaterials[i])));
35 if( scene->HasMeshes() )
37 for( uint32_t i = 0; i < scene->mNumMeshes; i++ )
39 mMeshes.push_back(std::shared_ptr<Mesh>(
new Mesh(*
this, *(scene->mMeshes[i]))));
45 Assimp::Importer importer;
47 uint32_t flags = aiProcess_Triangulate | aiProcess_JoinIdenticalVertices | aiProcess_SortByPType;
50 flags |= aiProcess_FlipUVs;
53 const aiScene* scene = importer.ReadFileFromMemory(fileBytes.data(), fileBytes.size(), flags,
"fbx");
57 throw std::runtime_error(importer.GetErrorString());
60 if (scene->HasMaterials())
62 for (uint32_t i = 0; i < scene->mNumMaterials; i++)
64 mMaterials.push_back(std::shared_ptr<ModelMaterial>(
new ModelMaterial(*
this, *scene->mMaterials[i])));
68 if (scene->HasMeshes())
70 for (uint32_t i = 0; i < scene->mNumMeshes; i++)
72 mMeshes.push_back(std::shared_ptr<Mesh>(
new Mesh(*
this, *(scene->mMeshes[i]))));