Assimp-如何使用任何文件格式导入带有纹理的网格?

问题描述 投票:0回答:1

当导入网格物体时,我得到了材质,但是无法访问纹理的文件名。 .mtl文件显式显示纹理的文件名。在代码中,它的纹理计数为1,但文件名字段显示为空字符串,fullPath输出为“ * 0”。在mTexture中,它确实显示纹理文件扩展名“ .png”,但不显示纹理本身的文件名。感谢您的帮助。

    if (scene->HasMaterials())
    {
        for (unsigned int i = 0; i < scene->mNumMaterials; ++i)
        {
            aiMaterial* material = scene->mMaterials[i];
            aiString name;
            material->Get(AI_MATKEY_NAME, name);
            aiReturn texFound = scene->mMaterials[i]->GetTexture(aiTextureType_DIFFUSE, i, &name);

            if (material->GetTextureCount(aiTextureType_DIFFUSE) > 0)
            {
                aiString path;
                if (material->GetTexture(aiTextureType_DIFFUSE, 0, &path, NULL, NULL, NULL, NULL, NULL) == AI_SUCCESS)
                {
                    std::string fullPath = path.data;


                }
            }
        }
    }
c++ import mesh assimp
1个回答
0
投票

这将正常工作。您能否为obj模型提供相应的材料文件,并在此处生成新的问题报告:https://github.com/assimp/assimp/issues

然后我们可以尝试调查您的示例出了什么问题。

© www.soinside.com 2019 - 2024. All rights reserved.