17 #ifndef IGNITION_RENDERING_MATERIAL_HH_ 18 #define IGNITION_RENDERING_MATERIAL_HH_ 23 #include "ignition/rendering/config.hh" 27 #include "ignition/rendering/Export.hh" 33 inline namespace IGNITION_RENDERING_VERSION_NAMESPACE {
55 public:
virtual bool LightingEnabled()
const = 0;
59 public:
virtual void SetLightingEnabled(
const bool _enabled) = 0;
63 public:
virtual void SetDepthCheckEnabled(
bool _enabled) = 0;
67 public:
virtual bool DepthCheckEnabled()
const = 0;
71 public:
virtual void SetDepthWriteEnabled(
bool _enabled) = 0;
75 public:
virtual bool DepthWriteEnabled()
const = 0;
86 public:
virtual void SetAmbient(
const double _r,
const double _g,
87 const double _b,
const double _a = 1.0) = 0;
91 public:
virtual void SetAmbient(
const math::Color &_color) = 0;
102 public:
virtual void SetDiffuse(
const double _r,
const double _g,
103 const double _b,
const double _a = 1.0) = 0;
107 public:
virtual void SetDiffuse(
const math::Color &_color) = 0;
118 public:
virtual void SetSpecular(
const double _r,
const double _g,
119 const double _b,
const double _a = 1.0) = 0;
123 public:
virtual void SetSpecular(
const math::Color &_color) = 0;
134 public:
virtual void SetEmissive(
const double _r,
const double _g,
135 const double _b,
const double _a = 1.0) = 0;
139 public:
virtual void SetEmissive(
const math::Color &_color) = 0;
143 public:
virtual double Shininess()
const = 0;
147 public:
virtual void SetShininess(
const double _shininess) = 0;
151 public:
virtual double Transparency()
const = 0;
156 public:
virtual void SetDepthMaterial(
const double far,
157 const double near) = 0;
161 public:
virtual void SetTransparency(
const double _transparency) = 0;
167 public:
virtual void SetAlphaFromTexture(
bool _enabled,
168 double _alpha = 0.5,
bool _twoSided =
true) = 0;
172 public:
virtual bool TextureAlphaEnabled()
const = 0;
176 public:
virtual double AlphaThreshold()
const = 0;
180 public:
virtual bool TwoSidedEnabled()
const = 0;
184 public:
virtual double Reflectivity()
const = 0;
188 public:
virtual void SetReflectivity(
const double _reflectivity) = 0;
192 public:
virtual bool CastShadows()
const = 0;
196 public:
virtual void SetCastShadows(
const bool _castShadows) = 0;
200 public:
virtual bool ReceiveShadows()
const = 0;
204 public:
virtual void SetReceiveShadows(
const bool _receiveShadows) = 0;
208 public:
virtual bool ReflectionEnabled()
const = 0;
212 public:
virtual void SetReflectionEnabled(
const bool _enabled) = 0;
216 public:
virtual bool HasTexture()
const = 0;
224 public:
virtual void SetTexture(
const std::string &_texture) = 0;
227 public:
virtual void ClearTexture() = 0;
231 public:
virtual bool HasNormalMap()
const = 0;
239 public:
virtual void SetNormalMap(
const std::string &_normalMap) = 0;
242 public:
virtual void ClearNormalMap() = 0;
246 public:
virtual bool HasRoughnessMap()
const = 0;
250 public:
virtual std::string RoughnessMap()
const = 0;
254 public:
virtual void SetRoughnessMap(
258 public:
virtual void ClearRoughnessMap() = 0;
262 public:
virtual bool HasMetalnessMap()
const = 0;
266 public:
virtual std::string MetalnessMap()
const = 0;
270 public:
virtual void SetMetalnessMap(
274 public:
virtual void ClearMetalnessMap() = 0;
278 public:
virtual bool HasEnvironmentMap()
const = 0;
282 public:
virtual std::string EnvironmentMap()
const = 0;
286 public:
virtual void SetEnvironmentMap(
290 public:
virtual void ClearEnvironmentMap() = 0;
294 public:
virtual bool HasEmissiveMap()
const = 0;
298 public:
virtual std::string EmissiveMap()
const = 0;
302 public:
virtual void SetEmissiveMap(
306 public:
virtual void ClearEmissiveMap() = 0;
310 public:
virtual bool HasLightMap()
const = 0;
318 public:
virtual unsigned int LightMapTexCoordSet()
const = 0;
323 public:
virtual void SetLightMap(
const std::string &_lightMap,
324 unsigned int _uvSet = 0u) = 0;
327 public:
virtual void ClearLightMap() = 0;
334 public:
virtual void SetRenderOrder(
const float _renderOrder) = 0;
338 public:
virtual float RenderOrder()
const = 0;
342 public:
virtual void SetRoughness(
const float _roughness) = 0;
346 public:
virtual float Roughness()
const = 0;
350 public:
virtual void SetMetalness(
const float _metalness) = 0;
354 public:
virtual float Metalness()
const = 0;
365 public:
virtual void SetShaderType(
enum ShaderType _type) = 0;
382 public:
virtual std::string VertexShader()
const = 0;
390 public:
virtual void SetVertexShader(
const std::string &_path) = 0;
394 public:
virtual std::string FragmentShader()
const = 0;
402 public:
virtual void SetFragmentShader(
const std::string &_path) = 0;
Physically Based Shading.
Definition: Material.hh:42
virtual ~Material()
Destructor.
Definition: Material.hh:51
ShaderType
Available types of shaders. Note that not all rendering-engines will be able to use each type...
Definition: ShaderType.hh:34
Classic shading, i.e. variants of Phong.
Definition: Material.hh:39
Represents a surface material of a Geometry.
Definition: Material.hh:47
Represents an object present in the scene graph. This includes sub-meshes, materials, render targets, as well as posable nodes.
Definition: Object.hh:34
MaterialType
An enum for the type of material.
Definition: Material.hh:36