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
Use default PBR shader to the scene-loader
[platform/core/uifw/dali-toolkit.git]
/
dali-scene-loader
/
public-api
/
shader-definition-factory.cpp
diff --git
a/dali-scene-loader/public-api/shader-definition-factory.cpp
b/dali-scene-loader/public-api/shader-definition-factory.cpp
index
bd6b168
..
6f9ab4e
100644
(file)
--- a/
dali-scene-loader/public-api/shader-definition-factory.cpp
+++ b/
dali-scene-loader/public-api/shader-definition-factory.cpp
@@
-56,8
+56,6
@@
struct ResourceReceiver : IResourceReceiver
}
};
}
};
-const std::string PBR_SHADER_NAME = "dli_pbr";
-
void RetrieveBlendShapeComponents(const std::vector<MeshDefinition::BlendShape>& blendShapes, bool& hasPositions, bool& hasNormals, bool& hasTangents)
{
for(const auto& blendShape : blendShapes)
void RetrieveBlendShapeComponents(const std::vector<MeshDefinition::BlendShape>& blendShapes, bool& hasPositions, bool& hasNormals, bool& hasTangents)
{
for(const auto& blendShape : blendShapes)
@@
-72,9
+70,6
@@
uint64_t HashNode(const NodeDefinition& nodeDef, const MaterialDefinition& mater
{
Hash hash;
{
Hash hash;
- // note: could be per vertex / fragment component - in WatchViewer, these have the same name.
- hash.Add(PBR_SHADER_NAME);
-
const bool hasTransparency = MaskMatch(materialDef.mFlags, MaterialDefinition::TRANSPARENCY);
hash.Add(hasTransparency);
const bool hasTransparency = MaskMatch(materialDef.mFlags, MaterialDefinition::TRANSPARENCY);
hash.Add(hasTransparency);
@@
-101,6
+96,11
@@
uint64_t HashNode(const NodeDefinition& nodeDef, const MaterialDefinition& mater
hash.Add("OCCL" /*USION*/);
}
hash.Add("OCCL" /*USION*/);
}
+ if(MaskMatch(materialDef.mFlags, MaterialDefinition::EMISSIVE))
+ {
+ hash.Add("EMIS" /*SIVE*/);
+ }
+
if(MaskMatch(materialDef.mFlags, MaterialDefinition::GLTF_CHANNELS))
{
hash.Add("GLTF" /*_CHANNELS*/);
if(MaskMatch(materialDef.mFlags, MaterialDefinition::GLTF_CHANNELS))
{
hash.Add("GLTF" /*_CHANNELS*/);
@@
-192,8
+192,7
@@
Index ShaderDefinitionFactory::ProduceShader(const NodeDefinition& nodeDef)
}
ShaderDefinition shaderDef;
}
ShaderDefinition shaderDef;
- shaderDef.mVertexShaderPath = PBR_SHADER_NAME + ".vsh";
- shaderDef.mFragmentShaderPath = PBR_SHADER_NAME + ".fsh";
+ shaderDef.mUseBuiltInShader = true;
shaderDef.mRendererState = RendererState::DEPTH_TEST | RendererState::DEPTH_WRITE | RendererState::CULL_BACK;
auto& materialDef = *receiver.mMaterialDef;
shaderDef.mRendererState = RendererState::DEPTH_TEST | RendererState::DEPTH_WRITE | RendererState::CULL_BACK;
auto& materialDef = *receiver.mMaterialDef;
@@
-222,12
+221,17
@@
Index ShaderDefinitionFactory::ProduceShader(const NodeDefinition& nodeDef)
shaderDef.mDefines.push_back("SSS");
}
shaderDef.mDefines.push_back("SSS");
}
- if(MaskMatch(
receiver.mMaterialDef->
mFlags, MaterialDefinition::OCCLUSION))
+ if(MaskMatch(
materialDef.
mFlags, MaterialDefinition::OCCLUSION))
{
shaderDef.mDefines.push_back("OCCLUSION");
}
{
shaderDef.mDefines.push_back("OCCLUSION");
}
- if(MaskMatch(receiver.mMaterialDef->mFlags, MaterialDefinition::GLTF_CHANNELS))
+ if(MaskMatch(materialDef.mFlags, MaterialDefinition::EMISSIVE))
+ {
+ shaderDef.mDefines.push_back("EMISSIVE");
+ }
+
+ if(MaskMatch(materialDef.mFlags, MaterialDefinition::GLTF_CHANNELS))
{
shaderDef.mDefines.push_back("GLTF_CHANNELS");
}
{
shaderDef.mDefines.push_back("GLTF_CHANNELS");
}