【发布时间】:2020-04-03 02:23:56
【问题描述】:
当我导入网格时,我得到了材质,但无法访问纹理的文件名。 .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;
}
}
}
}
【问题讨论】: