From 3ec812d5c3654837930baa75fa1e46d7a2766224 Mon Sep 17 00:00:00 2001 From: Sam Gateau Date: Fri, 13 Sep 2019 18:45:16 -0700 Subject: [PATCH] Cleaner way maybe --- .../src/graphics-scripting/ScriptableModel.cpp | 5 +---- libraries/graphics/src/graphics/Material.cpp | 6 ++++++ libraries/graphics/src/graphics/Material.h | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/libraries/graphics-scripting/src/graphics-scripting/ScriptableModel.cpp b/libraries/graphics-scripting/src/graphics-scripting/ScriptableModel.cpp index a81f17f254..4f656d2d7d 100644 --- a/libraries/graphics-scripting/src/graphics-scripting/ScriptableModel.cpp +++ b/libraries/graphics-scripting/src/graphics-scripting/ScriptableModel.cpp @@ -59,8 +59,7 @@ scriptable::ScriptableMaterial::ScriptableMaterial(const graphics::MaterialPoint model = material->getModel().c_str(); opacity = material->getOpacity(); - opacityMode = (opacity < 1.0f ? "opacityVarAlpha" : "opaque"); - + opacityMode = QString(graphics::MaterialKey::getAlphaMapModeName(material->getAlphaMapMode()).c_str()); roughness = material->getRoughness(); metallic = material->getMetallic(); scattering = material->getScattering(); @@ -82,8 +81,6 @@ scriptable::ScriptableMaterial::ScriptableMaterial(const graphics::MaterialPoint albedoMap = map->getTextureSource()->getUrl().toString(); if (map->useAlphaChannel()) { opacityMap = albedoMap; - //opacityMode = (material->getKey().isOpacityMaskMap() ? "opacityMapAlphaMask" : "opacityMapAlphaBlend"); - opacityMode = (material->getKey().isOpacityMaskMap() ? "opacityMapAlphaMask" : "opacityMapAlphaBlend"); } } diff --git a/libraries/graphics/src/graphics/Material.cpp b/libraries/graphics/src/graphics/Material.cpp index d18ad4b74e..7524414947 100755 --- a/libraries/graphics/src/graphics/Material.cpp +++ b/libraries/graphics/src/graphics/Material.cpp @@ -25,6 +25,12 @@ const float Material::DEFAULT_ROUGHNESS { 1.0f }; const float Material::DEFAULT_SCATTERING{ 0.0f }; const float Material::DEFAULT_ALPHA_CUTOFF { 0.5f }; + +std::string MaterialKey::getAlphaMapModeName(AlphaMapMode mode) { + const std::string names[3] = { "ALPHA_MAP_OPAQUE", "ALPHA_MAP_MASK", "ALPHA_MAP_BLEND" }; + return names[mode]; +} + Material::Material() { for (int i = 0; i < NUM_TOTAL_FLAGS; i++) { _propertyFallthroughs[i] = false; diff --git a/libraries/graphics/src/graphics/Material.h b/libraries/graphics/src/graphics/Material.h index 500eab9a39..2222d78b32 100755 --- a/libraries/graphics/src/graphics/Material.h +++ b/libraries/graphics/src/graphics/Material.h @@ -77,6 +77,7 @@ public: ALPHA_MAP_MASK, ALPHA_MAP_BLEND, }; + static std::string getAlphaMapModeName(AlphaMapMode mode); // The signature is the Flags Flags _flags; @@ -211,7 +212,6 @@ public: } AlphaMapMode getAlphaMapMode() const { return (_flags[OPACITY_MASK_MAP_BIT] ? ALPHA_MAP_MASK : (_flags[OPACITY_TRANSLUCENT_MAP_BIT] ? ALPHA_MAP_BLEND : ALPHA_MAP_OPAQUE)); } - bool isTranslucent() const { return isTranslucentFactor() || isTranslucentMap(); } bool isOpaque() const { return !isTranslucent(); } bool isSurfaceOpaque() const { return isOpaque() && !isOpacityMaskMap(); }