17 #ifndef IGNITION_RENDERING_OGRE2_OGRE2MATERIAL_HH_ 18 #define IGNITION_RENDERING_OGRE2_OGRE2MATERIAL_HH_ 31 inline namespace IGNITION_RENDERING_VERSION_NAMESPACE {
34 class Ogre2MaterialPrivate;
47 public:
virtual void Destroy()
override;
50 public:
virtual math::Color Diffuse()
const override;
53 public:
virtual void SetDiffuse(
const math::Color &_color)
override;
56 public:
virtual math::Color Specular()
const override;
59 public:
virtual void SetSpecular(
const math::Color &_color)
override;
62 public:
virtual math::Color Emissive()
const override;
65 public:
virtual void SetEmissive(
const math::Color &_color)
override;
68 public:
virtual void SetTransparency(
const double _transparency)
override;
71 public:
virtual void SetAlphaFromTexture(
bool _enabled,
72 double _alpha = 0.5,
bool _twoSided =
true)
override;
75 public:
virtual bool ReceiveShadows()
const override;
78 public:
virtual void SetReceiveShadows(
const bool _receiveShadows)
82 public:
virtual bool HasTexture()
const override;
85 public:
virtual std::string Texture()
const override;
88 public:
virtual void SetTexture(
const std::string &_name)
override;
91 public:
virtual void ClearTexture()
override;
94 public:
virtual bool HasNormalMap()
const override;
97 public:
virtual std::string NormalMap()
const override;
100 public:
virtual void SetNormalMap(
const std::string &_name)
override;
103 public:
virtual void ClearNormalMap()
override;
106 public:
virtual bool HasRoughnessMap()
const override;
109 public:
virtual std::string RoughnessMap()
const override;
112 public:
virtual void SetRoughnessMap(
const std::string &_name)
override;
115 public:
virtual void ClearRoughnessMap()
override;
118 public:
virtual bool HasMetalnessMap()
const override;
121 public:
virtual std::string MetalnessMap()
const override;
124 public:
virtual void SetMetalnessMap(
const std::string &_name)
override;
127 public:
virtual void ClearMetalnessMap()
override;
130 public:
virtual bool HasEnvironmentMap()
const override;
133 public:
virtual std::string EnvironmentMap()
const override;
136 public:
virtual void SetEnvironmentMap(
const std::string &_name)
override;
139 public:
virtual void ClearEnvironmentMap()
override;
142 public:
virtual void SetRoughness(
const float _roughness)
override;
145 public:
virtual bool HasEmissiveMap()
const override;
148 public:
virtual std::string EmissiveMap()
const override;
151 public:
virtual void SetEmissiveMap(
const std::string &_name)
override;
154 public:
virtual void ClearEmissiveMap()
override;
157 public:
virtual float Roughness()
const override;
160 public:
virtual void SetMetalness(
const float _roughness)
override;
163 public:
virtual float Metalness()
const override;
167 public:
virtual Ogre::MaterialPtr
Material();
171 public:
virtual Ogre::HlmsPbsDatablock *Datablock()
const;
175 public:
virtual Ogre::HlmsUnlitDatablock *UnlitDatablock();
180 public:
virtual void FillUnlitDatablock(
181 Ogre::HlmsUnlitDatablock *_datablock)
const;
185 public:
virtual void PreRender()
override;
188 public:
virtual enum MaterialType Type()
const override;
191 public:
virtual bool DepthCheckEnabled()
const override;
194 public:
virtual void SetDepthCheckEnabled(
bool _enabled)
override;
197 public:
virtual bool DepthWriteEnabled()
const override;
200 public:
virtual void SetDepthWriteEnabled(
bool _enabled)
override;
206 protected:
virtual void SetTextureMapImpl(
const std::string &_texture,
207 Ogre::PbsTextureTypes _type);
211 protected:
virtual Ogre::TexturePtr Texture(
const std::string &_name);
215 protected:
virtual void UpdateTransparency();
218 protected:
virtual void Init()
override;
224 protected: Ogre::HlmsPbsDatablock *ogreDatablock =
nullptr;
227 protected: Ogre::HlmsUnlitDatablock *ogreUnlitDatablock =
nullptr;
230 protected: Ogre::HlmsPbs *ogreHlmsPbs =
nullptr;
std::string roughnessMapName
Name of the roughness map.
Definition: Ogre2Material.hh:239
Ogre2.x implementation of the scene class.
Definition: Ogre2Scene.hh:45
std::string normalMapName
Name of the normal map.
Definition: Ogre2Material.hh:236
Ogre::MaterialPtr ogreMaterial
Ogre material. Mainly used for render targets.
Definition: Ogre2Material.hh:221
Ogre 2.x implementation of the material class.
Definition: Ogre2Material.hh:37
std::string environmentMapName
Name of the environment map.
Definition: Ogre2Material.hh:245
std::string emissiveMapName
Name of the emissive map.
Definition: Ogre2Material.hh:248
std::string textureName
Name of the texture.
Definition: Ogre2Material.hh:233
Definition: BaseMaterial.hh:38
std::string ogreDatablockId
Unique id assigned to ogre hlms datablock.
Definition: Ogre2Material.hh:251
Represents a surface material of a Geometry.
Definition: Material.hh:47
std::string metalnessMapName
Name of the metalness map.
Definition: Ogre2Material.hh:242
MaterialType
An enum for the type of material.
Definition: Material.hh:36