Set alphaMode, baseColorFactor opacity when model’s opacity isn’t 1

This commit is contained in:
Daniel Hritzkiv
2017-09-06 14:17:24 -04:00
parent 37582131f4
commit 0a8183531e

View File

@@ -433,7 +433,17 @@ void glTF2Exporter::ExportMaterials()
mat->Get(AI_MATKEY_TWOSIDED, m->doubleSided);
mat->Get(AI_MATKEY_GLTF_ALPHACUTOFF, m->alphaCutoff);
mat->Get(AI_MATKEY_GLTF_ALPHAMODE, m->alphaMode);
if (mat->Get(AI_MATKEY_GLTF_ALPHAMODE, m->alphaMode) != AI_SUCCESS) {
float opacity;
if (mat->Get(AI_MATKEY_OPACITY, opacity) == AI_SUCCESS) {
if (opacity < 1) {
m->alphaMode = "MASK";
m->pbrMetallicRoughness.baseColorFactor[3] *= opacity;
}
}
}
bool hasPbrSpecularGlossiness;
mat->Get(AI_MATKEY_GLTF_PBRSPECULARGLOSSINESS, hasPbrSpecularGlossiness);