首页 > 解决方案 > 使用 assimp 获取纹理比例

问题描述

我正在尝试 .mtl 文件中的纹理比例。在记事本中打开文件我可以看到它有map_Kd -s 4.000000 4.000000 1.000000 crate_diffuse.dds

我正在尝试下面的代码,但它返回 aiReturnFAILURE。

for (UINT j = 0; j < material->GetTextureCount(type); j++) 
{
    aiString str;
    material->GetTexture(type, j, &str);

    aiUVTransform uvTransform;
    if (material->Get(AI_MATKEY_UVTRANSFORM(aiTextureType_DIFFUSE, j), uvTransform) == aiReturn_FAILURE)
    {
        std::cout << "Failed\n";
    }

    texture_diffuse = std::string(str.C_Str());
    std::cout << texture_diffuse << '\n';
}

标签: c++assimpwavefront

解决方案


当没有为您的材质存储 uvTransform 时,会发生这种情况。如果没有任何 uvTransform,您的缩放比例将为 1.0。


推荐阅读