c++ - 使用 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';
}
解决方案
当没有为您的材质存储 uvTransform 时,会发生这种情况。如果没有任何 uvTransform,您的缩放比例将为 1.0。
推荐阅读
- php - Yii 2 不从 mysql 数据库中渲染表情符号
- javascript - 为什么即使函数无法调用,函数调用的参数部分中的表达式也会被评估?
- azure - 将现有应用的 B2C 本地帐户注册从电子邮件更改为用户名
- node.js - aws lambda 节点包需要 python
- javascript - NodeJS:“未定义不是有效的 uri 或选项对象”与请求
- html - CSS类嵌套不起作用
- ethereum - 来自 eth.coinbase 的 eth.sendTransaction 进行多次交易并减少 eth.coinbase 余额
- python - 根据来自另一个 Dataframe for 循环的条件创建一个新的 Dataframe
- php - Angular 6 的代码点火器
- c++ - 获得利润和类型