17class MaterialRegistry;
29 using type = uint64_t;
31 static constexpr auto UniShadow = type{1 << 0};
32 static constexpr auto PointShadow = type{1 << 1};
33 static constexpr auto Depth = type{1 << 2};
34 static constexpr auto Toon = type{1 << 3};
35 static constexpr auto Normals = type{1 << 4};
42constexpr auto ShadowedToonMaterial = MaterialPassFlag::UniShadow | MaterialPassFlag::PointShadow | MaterialPassFlag::Depth | MaterialPassFlag::Toon | MaterialPassFlag::Normals;
47 Vector4 gradientStart = Vector4::One();
48 Vector4 gradientEnd = Vector4::One();
49 Vector4 primaryColor = Vector4::One();
50 Vector4 secondaryColor = Vector4::One();
51 Vector4 tertiaryColor = Vector4::One();
52 float normalIntensity = 1.0f;
53 float hatchTiling = 1.0f;
54 float gradientAmount = 0.1f;
55 float reflectivity = 0.0f;
59 bool useTextureNormals =
true;
60 bool useFlatShading =
true;
61 bool useColorOverride =
false;
62 bool useHatchTexture =
false;
68 std::string name =
"DefaultMaterial";
89 auto GetName() const -> std::string_view;
90 void SetName(std::string_view name);
111 void Release() noexcept;
115 : m_handle{std::exchange(other.m_handle, NullMaterialInstanceHandle)}
119inline MaterialInstance& MaterialInstance::operator=(MaterialInstance&& other)
noexcept
124 m_handle = std::exchange(other.m_handle, NullMaterialInstanceHandle);
130inline MaterialInstance::~MaterialInstance() noexcept
MaterialPassFlag::type MaterialPassFlags
Set of flags indicating a MaterialInstance's enabled passes.
Definition: Material.h:39
constexpr auto NullMaterialInstanceHandle
Null identifier for a MaterialInstance.
Definition: Material.h:24
uint32_t MaterialInstanceHandle
Identifier for a MaterialInstance.
Definition: Material.h:21
constexpr auto ShadowedToonMaterial
Default passes for a toon material.
Definition: Material.h:42
Owning wrapper around a material in GPU memory.
Definition: Material.h:75
auto GetHandle() const -> MaterialInstanceHandle
Get the instance's handle.
Definition: Material.h:100
auto GetProperties() const -> const MaterialProperties &
Get the instance's handle.
void SetProperties(const MaterialProperties &properties)
Get the instance's handle.
auto Clone() const -> MaterialInstance
Create a new MaterialInstance from this instance's properties.
friend class graphics::MaterialRegistry
Get the instance's handle.
Definition: Material.h:106
Properties for constructing a MaterialInstance.
Definition: Material.h:67
Material pass flags.
Definition: Material.h:28
Properties of a MaterialInstance passed to shaders.
Definition: Material.h:46
A four component vector.
Definition: Vector.h:48
Definition: AssetViews.h:66