17 #ifndef IGNITION_RENDERING_OGRE_OGREMATERIAL_HH_ 18 #define IGNITION_RENDERING_OGRE_OGREMATERIAL_HH_ 32 inline namespace IGNITION_RENDERING_VERSION_NAMESPACE {
35 "depth_vertex_shader.glsl";
37 "depth_fragment_shader.glsl";
47 public:
virtual void Destroy()
override;
49 public:
virtual bool LightingEnabled()
const override;
51 public:
virtual void SetLightingEnabled(
const bool _enabled)
override;
54 public:
virtual bool DepthCheckEnabled()
const override;
57 public:
virtual void SetDepthCheckEnabled(
bool _enabled)
override;
60 public:
virtual bool DepthWriteEnabled()
const override;
63 public:
virtual void SetDepthWriteEnabled(
bool _enabled)
override;
65 public:
virtual math::Color Ambient()
const override;
67 public:
virtual void SetAmbient(
const math::Color &_color)
override;
69 public:
virtual math::Color Diffuse()
const override;
71 public:
virtual void SetDiffuse(
const math::Color &_color)
override;
73 public:
virtual math::Color Specular()
const override;
75 public:
virtual void SetSpecular(
const math::Color &_color)
override;
77 public:
virtual math::Color Emissive()
const override;
79 public:
virtual void SetEmissive(
const math::Color &_color)
override;
81 public:
virtual double Shininess()
const override;
83 public:
virtual void SetShininess(
const double _shininess)
override;
85 public:
virtual double Transparency()
const override;
87 public:
virtual void SetTransparency(
const double _transparency)
91 public:
virtual void SetAlphaFromTexture(
bool _enabled,
92 double _alpha = 0.5,
bool _twoSided =
true)
override;
94 public:
virtual double Reflectivity()
const override;
96 public:
virtual void SetReflectivity(
const double _reflectivity)
99 public:
virtual bool CastShadows()
const override;
101 public:
virtual void SetCastShadows(
const bool _castShadows)
override;
103 public:
virtual bool ReceiveShadows()
const override;
105 public:
virtual void SetReceiveShadows(
const bool _receiveShadows)
109 public:
virtual float RenderOrder()
const override;
115 public:
virtual void SetRenderOrder(
const float _renderOrder)
override;
117 public:
virtual bool ReflectionEnabled()
const override;
119 public:
virtual void SetReflectionEnabled(
const bool _enabled)
override;
121 public:
virtual bool HasTexture()
const override;
123 public:
virtual std::string Texture()
const override;
125 public:
virtual void SetTexture(
const std::string &_name)
override;
127 public:
virtual void ClearTexture()
override;
129 public:
virtual bool HasNormalMap()
const override;
131 public:
virtual std::string NormalMap()
const override;
133 public:
virtual void SetNormalMap(
const std::string &_name)
override;
135 public:
virtual void ClearNormalMap()
override;
139 public:
virtual void SetShaderType(
enum ShaderType _type)
override;
141 public:
virtual Ogre::MaterialPtr
Material()
const;
145 public:
virtual void SetDepthMaterial(
const double far,
146 const double near)
override;
150 public:
virtual void SetVertexShader(
const std::string &_path)
override;
154 public:
virtual std::string VertexShader()
const override;
162 public:
virtual void SetFragmentShader(
const std::string &_path)
167 public:
virtual std::string FragmentShader()
const override;
175 public:
virtual void PreRender()
override;
177 protected:
virtual void LoadOneImage(
const std::string &_name,
178 Ogre::Image &_image);
182 protected:
virtual void SetTextureImpl(
const std::string &_texture);
184 protected:
virtual Ogre::TexturePtr Texture(
const std::string &_name);
186 protected:
virtual Ogre::TexturePtr CreateTexture(
189 protected:
virtual void UpdateTransparency();
191 protected:
virtual void UpdateColorOperation();
194 protected:
void UpdateShaderParams();
200 Ogre::GpuProgramParametersSharedPtr _ogreParams);
202 protected:
virtual void Init()
override;
207 protected: Ogre::Technique *ogreTechnique =
nullptr;
209 protected: Ogre::Pass *ogrePass =
nullptr;
211 protected: Ogre::TextureUnitState *ogreTexState =
nullptr;
215 #if OGRE_VERSION_MAJOR == 1 && OGRE_VERSION_MINOR <= 7 const std::string depth_fragment_shader_file
Definition: OgreMaterial.hh:36
const std::string depth_vertex_shader_file
Definition: OgreMaterial.hh:34
std::string vertexShaderPath
Path to vertex shader program.
Definition: OgreMaterial.hh:225
std::string fragmentShaderPath
Path to fragment shader program.
Definition: OgreMaterial.hh:228
ShaderParamsPtr vertexShaderParams
Parameters to be bound to the vertex shader.
Definition: OgreMaterial.hh:231
#define IGN_COMMON_WARN_RESUME__DLL_INTERFACE_MISSING
ShaderParamsPtr fragmentShaderParams
Parameters to be bound to the fragment shader.
Definition: OgreMaterial.hh:234
Ogre::String ogreGroup
Definition: OgreMaterial.hh:213
std::string normalMapName
Definition: OgreMaterial.hh:220
Definition: OgreMaterial.hh:39
Definition: OgreScene.hh:39
std::string textureName
Definition: OgreMaterial.hh:218
ShaderType
Available types of shaders. Note that not all rendering-engines will be able to use each type...
Definition: ShaderType.hh:34
Definition: BaseMaterial.hh:38
Per pixel lighting shader.
Definition: ShaderType.hh:40
Ogre::MaterialPtr ogreMaterial
Definition: OgreMaterial.hh:205
Represents a surface material of a Geometry.
Definition: Material.hh:47
#define IGN_COMMON_WARN_IGNORE__DLL_INTERFACE_MISSING