projects
/
platform
/
core
/
uifw
/
dali-toolkit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Modify default shader according to the gltf pbr spec
[platform/core/uifw/dali-toolkit.git]
/
dali-scene-loader
/
public-api
/
node-definition.cpp
diff --git
a/dali-scene-loader/public-api/node-definition.cpp
b/dali-scene-loader/public-api/node-definition.cpp
index
e8f6b82
..
7542782
100644
(file)
--- a/
dali-scene-loader/public-api/node-definition.cpp
+++ b/
dali-scene-loader/public-api/node-definition.cpp
@@
-150,9
+150,13
@@
void ModelNode::OnCreate(const NodeDefinition& node, NodeDefinition::CreateParam
actor.SetProperty(Actor::Property::COLOR, mColor);
actor.SetProperty(Actor::Property::COLOR, mColor);
+ actor.RegisterProperty("uHasVertexColor", static_cast<float>(mesh.first.mColors.IsDefined()));
+
auto& matDef = resources.mMaterials[mMaterialIdx].first;
auto& matDef = resources.mMaterials[mMaterialIdx].first;
+ actor.RegisterProperty("uColorFactor", matDef.mBaseColorFactor);
actor.RegisterProperty("uMetallicFactor", matDef.mMetallic);
actor.RegisterProperty("uRoughnessFactor", matDef.mRoughness);
actor.RegisterProperty("uMetallicFactor", matDef.mMetallic);
actor.RegisterProperty("uRoughnessFactor", matDef.mRoughness);
+ actor.RegisterProperty("uNormalScale", matDef.mNormalScale);
if(matDef.mFlags & MaterialDefinition::OCCLUSION)
{
actor.RegisterProperty("uOcclusionStrength", matDef.mOcclusionStrength);
if(matDef.mFlags & MaterialDefinition::OCCLUSION)
{
actor.RegisterProperty("uOcclusionStrength", matDef.mOcclusionStrength);
@@
-165,11
+169,23
@@
void ModelNode::OnCreate(const NodeDefinition& node, NodeDefinition::CreateParam
Index envIdx = matDef.mEnvironmentIdx;
actor.RegisterProperty("uIblIntensity", resources.mEnvironmentMaps[envIdx].first.mIblIntensity);
Index envIdx = matDef.mEnvironmentIdx;
actor.RegisterProperty("uIblIntensity", resources.mEnvironmentMaps[envIdx].first.mIblIntensity);
- const auto alphaCutoff = matDef.GetAlphaCutoff();
- if(alphaCutoff > 0.f)
+ float opaque = 0.0f;
+ float mask = 0.0f;
+ float alphaCutoff = matDef.GetAlphaCutoff();
+ if(!MaskMatch(matDef.mFlags, MaterialDefinition::TRANSPARENCY))
+ {
+ opaque = 1.0f;
+ }
+ else
{
{
- actor.RegisterProperty("uAlphaThreshold", alphaCutoff);
+ if(alphaCutoff > 0.f)
+ {
+ mask = 1.0f;
+ }
}
}
+ actor.RegisterProperty("uOpaque", opaque);
+ actor.RegisterProperty("uMask", mask);
+ actor.RegisterProperty("uAlphaThreshold", alphaCutoff);
}
void ArcNode::OnCreate(const NodeDefinition& node, NodeDefinition::CreateParams& params, Actor& actor) const
}
void ArcNode::OnCreate(const NodeDefinition& node, NodeDefinition::CreateParams& params, Actor& actor) const