Material
Add this in your code:
#include <engine/graphics/material.h>
Description
Handles the visual appearance of rendered objects, including shaders and textures.
The Material class allows you to configure how an object should look when drawn on screen.
Inspector settings
Name | Type | Description |
---|---|---|
Shader | Shader | Set the material shader. Standard to use lighting, Unlit to disable lighting. |
Rendering mode | Enum | Set the rendering mode of the material. |
Texture | Texture | Set the material texture. |
Color | Color | Set the color of the material. |
Offset | Vector2 | Set the texture offset. |
Tiling | Vector2 | Set the texture tiling. |
Use lighting | CheckBox | Check this if you are using Standard shader, uncheck this if you are using Unlit shader. |
Public methods
SetAttribute
Set a value to an attribute in the shader when this material is used.
To use only when you are using custom shaders.
Parameters:
attribute
: Attribute namevalue
: New attribute value
void SetAttribute(const char* attribute, const Vector2& value)
void SetAttribute(const char* attribute, const Vector3& value)
void SetAttribute(const char* attribute, const Vector4& value)
void SetAttribute(const char* attribute, const float value)
void SetAttribute(const char* attribute, const int value)
Code sample:
std::shared_ptr<Material> material; // Filled variable
material->SetAttribute("MyAttribute", Vector3(1, 0.5f, 1));
SetShader
Set the material shader.
Parameters:
shader
: Shader to use
void SetShader(const std::shared_ptr<Shader>& shader)
Code sample:
std::shared_ptr<Material> material; // Filled variable
std::shared_ptr<Shader> shader; // Filled variable
material->SetShader(shader);
SetTexture
Set the material texture.
Parameters:
texture
: Texture to use
void SetTexture(const std::shared_ptr<Texture>& texture)
Code sample:
std::shared_ptr<Material> material; // Filled variable
std::shared_ptr<Texture> texture; // Filled variable
material->SetTexture(texture);
SetUseLighting
Set the if the material uses lighting. Disable this only on Unlit shaders.
Parameters:
useLighting
: Does the material uses lighting?
void SetUseLighting(const bool useLighting)
Code sample:
std::shared_ptr<Material> material; // Filled variable
material->SetUseLighting(true);
SetOffset
Set the texture offset.
Parameters:
offset
: Offset of the texture
void SetOffset(const Vector2& offset)
Code sample:
std::shared_ptr<Material> material; // Filled variable
material->SetOffset(Vector2(0.5f, 0.5f));
SetTiling
Set the texture tiling.
Parameters:
tiling
: Tiling of the texture
void SetTiling(const Vector2& tiling)
Code sample:
std::shared_ptr<Material> material; // Filled variable
material->SetTiling(Vector2(2.0f, 2.0f));
GetShader
Get the shader of the material.
const std::shared_ptr<Shader>& GetShader() const
Code sample:
std::shared_ptr<Material> material; // Filled variable
std::shared_ptr<Shader> shader = material->GetShader();
GetTexture
Get the texture of the material.
const std::shared_ptr<Texture>& GetTexture() const
Code sample:
std::shared_ptr<Material> material; // Filled variable
std::shared_ptr<Texture> texture = material->GetTexture();
GetUseLighting
Get if the material uses lighting.
bool GetUseLighting() const
Code sample:
std::shared_ptr<Material> material; // Filled variable
bool isUsingLighting = material->GetUseLighting();
GetRenderingMode
Get the rendering mode of the material.
MaterialRenderingMode GetRenderingMode() const
Code sample:
std::shared_ptr<Material> material; // Filled variable
MaterialRenderingMode mode = material->GetRenderingMode();
GetOffset
Get the texture offset of the material.
const Vector2& GetOffset() const
Code sample:
std::shared_ptr<Material> material; // Filled variable
const Vector2& offset = material->GetOffset();
GetTiling
Get the texture tiling of the material.
const Vector2& GetTiling() const
Code sample:
std::shared_ptr<Material> material; // Filled variable
const Vector2& tiling = material->GetTiling();
GetColor
Get the color of the material.
const Color& GetColor() const
Code sample:
std::shared_ptr<Material> material; // Filled variable
const Color& color = material->GetColor();
SetColor
Set the color of the material.
Parameters:
color
: Color of the material
void SetColor(const Color& color)
Code sample:
std::shared_ptr<Material> material; // Filled variable
material->SetColor(Color::CreateFromRGBAFloat(1, 0.5f, 0.5f, 1));
SetAlphaCutoff
Set the alpha cutoff of the material.
Parameters:
alphaCutoff
: New alpha cutoff value [0.0f;1.0f]
void SetAlphaCutoff(float alphaCutoff)
Code sample:
std::shared_ptr<Material> material; // Filled variable
material->SetAlphaCutoff(0.5f);
GetAlphaCutoff
Get the alpha cutoff of the material.
float GetAlphaCutoff() const
Code sample:
std::shared_ptr<Material> material; // Filled variable
float alphaCutoff = material->GetAlphaCutoff();