diff options
author | Kevin Ottens <kevin.ottens@kdab.com> | 2017-08-02 17:13:15 +0200 |
---|---|---|
committer | Kevin Ottens <kevin.ottens@kdab.com> | 2017-09-27 06:04:43 +0000 |
commit | 2321b335f066275736802a26a9e7650422def10a (patch) | |
tree | 52af1b663f50d75bdf4914e7e510bc3216d58a65 /src/plugins/sceneparsers/gltfexport/gltfexporter.cpp | |
parent | fb0c9421b1e172833f3ac2166b9a39bd83a8b6ef (diff) |
PhongAlpha: encode the alpha in kd
Change-Id: I331dd9b4adf7a412338daba6d11ca945dc290054
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/plugins/sceneparsers/gltfexport/gltfexporter.cpp')
-rw-r--r-- | src/plugins/sceneparsers/gltfexport/gltfexporter.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/plugins/sceneparsers/gltfexport/gltfexporter.cpp b/src/plugins/sceneparsers/gltfexport/gltfexporter.cpp index 7921fce64..10f72f849 100644 --- a/src/plugins/sceneparsers/gltfexport/gltfexporter.cpp +++ b/src/plugins/sceneparsers/gltfexport/gltfexporter.cpp @@ -643,18 +643,23 @@ void GLTFExporter::parseMaterials() for (auto param : parameters) { if (param->value().type() == QVariant::Color) { QColor color = param->value().value<QColor>(); - if (param->name() == MATERIAL_AMBIENT_COLOR) + if (param->name() == MATERIAL_AMBIENT_COLOR) { matInfo.colors.insert(QStringLiteral("ambient"), color); - else if (param->name() == MATERIAL_DIFFUSE_COLOR) + } else if (param->name() == MATERIAL_DIFFUSE_COLOR) { + if (matInfo.type == MaterialInfo::TypePhongAlpha) { + matInfo.values.insert(QStringLiteral("transparency"), float(color.alphaF())); + color.setAlphaF(1.0f); + } matInfo.colors.insert(QStringLiteral("diffuse"), color); - else if (param->name() == MATERIAL_SPECULAR_COLOR) + } else if (param->name() == MATERIAL_SPECULAR_COLOR) { matInfo.colors.insert(QStringLiteral("specular"), color); - else if (param->name() == MATERIAL_COOL_COLOR) // Custom Qt3D gooch + } else if (param->name() == MATERIAL_COOL_COLOR) { // Custom Qt3D gooch matInfo.colors.insert(QStringLiteral("cool"), color); - else if (param->name() == MATERIAL_WARM_COLOR) // Custom Qt3D gooch + } else if (param->name() == MATERIAL_WARM_COLOR) { // Custom Qt3D gooch matInfo.colors.insert(QStringLiteral("warm"), color); - else + } else { matInfo.colors.insert(param->name(), color); + } } else if (param->value().canConvert<QAbstractTexture *>()) { const QString urlString = textureVariantToUrl(param->value()); if (param->name() == MATERIAL_DIFFUSE_TEXTURE) |