So there's no better alternative than getting aiTextureType_UNKNOWN
(or most likely AI_MATKEY_GLTF_PBRMETALLICROUGHNESS_METALLICROUGHNESS_TEXTURE
) since the mettalic and roughness textures are specified in the same material property metallicRoughnessTexture
in the gltf? Like this:
"images": [
{
"uri": "textures/DefaultMaterial_metallicRoughness.png"
},
{
"uri": "textures/DefaultMaterial_baseColor.jpeg"
},
{
"uri": "textures/DefaultMaterial_normal.png"
}
],
"materials": [
{
"doubleSided": true,
"emissiveFactor": [
0,
0,
0
],
"name": "DefaultMaterial",
"normalTexture": {
"index": 2,
"scale": 1,
"texCoord": 0
},
"pbrMetallicRoughness": {
"baseColorFactor": [
1,
1,
1,
1
],
"baseColorTexture": {
"index": 1,
"texCoord": 0
},
"metallicFactor": 1,
"metallicRoughnessTexture": {
"index": 0,
"texCoord": 0
},
"roughnessFactor": 0.86756859760000005
}
}
],
I tried:
material->GetTexture(AI_MATKEY_METALLIC_TEXTURE, &fileMetallic);
material->GetTexture(AI_MATKEY_ROUGHNESS_TEXTURE, &fileRoughness);
with assimp 5.2.2, but it fails with my glTF test file.