void RemovePrimitiveObserver(ModelPrimitiveModifyObserver* observer);
/**
+ * @brief Sets shadow map texture for this model primitive.
+ *
+ * @param[in] shadowMapTexture The shadow map texture.
+ */
+ void SetShadowMapTexture(Dali::Texture shadowMapTexture);
+
+ /**
* @brief Sets the image-based lighting texture for this model primitive.
*
* @param[in] diffuseTexture The diffuse texture.
* @brief Sets whether or not this model primitive is skinned.
*
* @param[in] isSkinned Whether or not this model primitive is skinned.
+ * @param[in] numberOfJointSets How many joint sets the mesh expects in the shader
*/
- void SetSkinned(bool isSkinned);
+ void SetSkinned(bool isSkinned, uint32_t numberOfJointSets);
private: // From MaterialModifyObserver
/**
*/
void CreateRenderer();
+ void UpdateShadowMapTexture();
+
/**
* @brief Updates the image-based lighting texture.
*/
private:
// Delete copy & move operator
- ModelPrimitive(const ModelPrimitive&) = delete;
- ModelPrimitive(ModelPrimitive&&) = delete;
- ModelPrimitive& operator=(const ModelPrimitive& rhs) = delete;
+ ModelPrimitive(const ModelPrimitive&) = delete;
+ ModelPrimitive(ModelPrimitive&&) = delete;
+ ModelPrimitive& operator=(const ModelPrimitive& rhs) = delete;
ModelPrimitive& operator=(ModelPrimitive&& rhs) noexcept = delete;
private:
Scene3D::Loader::ShaderManagerPtr mShaderManager;
+ // For Shadow
+ Dali::Texture mShadowMapTexture;
+
// For IBL
Dali::Texture mSpecularTexture;
Dali::Texture mDiffuseTexture;
float mIblScaleFactor{1.0f};
uint32_t mSpecularMipmapLevels{1u};
+ // For skinning
+ uint32_t mNumberOfJointSets{0};
+
// For blend shape
Scene3D::Loader::BlendShapes::BlendShapeData mBlendShapeData;
Dali::Texture mBlendShapeGeometry;