X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-scene-loader%2Fpublic-api%2Fgltf2-loader.cpp;h=be7e53882dc1f37e956d220d29f45a46346531a0;hb=1bc53ac578137a8f0f0ecedb30a6d76dc9d743c2;hp=923d0e4af62d6450314ffde0fb7b7cf22dbaeb51;hpb=9a947842733ff3c4ee0fc82f27b728519d7b1283;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-scene-loader/public-api/gltf2-loader.cpp b/dali-scene-loader/public-api/gltf2-loader.cpp index 923d0e4..be7e538 100644 --- a/dali-scene-loader/public-api/gltf2-loader.cpp +++ b/dali-scene-loader/public-api/gltf2-loader.cpp @@ -157,7 +157,8 @@ const auto TEXURE_READER = std::move(js::Reader() const auto TEXURE_INFO_READER = std::move(js::Reader() .Register(*js::MakeProperty("index", gt::RefReader::Read, >::TextureInfo::mTexture)) .Register(*js::MakeProperty("texCoord", js::Read::Number, >::TextureInfo::mTexCoord)) - .Register(*js::MakeProperty("scale", js::Read::Number, >::TextureInfo::mScale))); + .Register(*js::MakeProperty("scale", js::Read::Number, >::TextureInfo::mScale)) + .Register(*js::MakeProperty("strength", js::Read::Number, >::TextureInfo::mStrength))); const auto MATERIAL_PBR_READER = std::move(js::Reader() .Register(*js::MakeProperty("baseColorFactor", gt::ReadDaliVector, >::Material::Pbr::mBaseColorFactor)) @@ -440,7 +441,7 @@ void ConvertMaterial(const gt::Material& m, decltype(ResourceBundle::mMaterials) matDef.mColor = pbr.mBaseColorFactor; - matDef.mTextureStages.reserve(!!pbr.mBaseColorTexture + !!pbr.mMetallicRoughnessTexture + !!m.mNormalTexture); + matDef.mTextureStages.reserve(!!pbr.mBaseColorTexture + !!pbr.mMetallicRoughnessTexture + !!m.mNormalTexture + !!m.mOcclusionTexture + !!m.mEmissiveTexture); if(pbr.mBaseColorTexture) { const auto semantic = MaterialDefinition::ALBEDO; @@ -470,6 +471,23 @@ void ConvertMaterial(const gt::Material& m, decltype(ResourceBundle::mMaterials) } // TODO: handle doubleSided + if(m.mOcclusionTexture) + { + const auto semantic = MaterialDefinition::OCCLUSION; + matDef.mTextureStages.push_back({semantic, ConvertTextureInfo(m.mOcclusionTexture)}); + // TODO: and there had better be one + matDef.mFlags |= semantic; + matDef.mOcclusionStrength = m.mOcclusionTexture.mStrength; + } + + if(m.mEmissiveTexture) + { + const auto semantic = MaterialDefinition::EMISSIVE; + matDef.mTextureStages.push_back({semantic, ConvertTextureInfo(m.mEmissiveTexture)}); + // TODO: and there had better be one + matDef.mFlags |= semantic; + matDef.mEmissiveFactor = m.mEmissiveFactor; + } outMaterials.emplace_back(std::move(matDef), TextureSet()); }