StevEngine
StevEngine is a customizable C++ game engine.
Loading...
Searching...
No Matches
Material.hpp
1#pragma once
2#ifdef StevEngine_SHOW_WINDOW
3#include "utilities/Vector3.hpp"
4#include "utilities/Color.hpp"
5#include "visuals/Texture.hpp"
6
7namespace StevEngine::Visuals {
14 class Material {
15 public:
31 float shininess = 32.0,
32 const Visuals::Texture& albedoData = Visuals::Texture::empty,
34 );
35
40 Material(const Material& other);
41
44
52 float shininess;
53
58 const Visuals::Texture& GetAlbedo() const { return albedo; };
59
64 void SetAlbedo(const Texture& textureData);
65
69 void FreeAlbedo();
70
75 const Visuals::Texture& GetNormal() const { return normal; };
76
81 void SetNormal(const Texture& normalData);
82
86 void FreeNormal();
87
88 private:
89 Texture albedo = Texture::empty;
90 Texture normal = Texture::empty;
91 };
92}
93#endif
3D vector class
Definition Vector3.hpp:19
Utilities::Vector3 ambient
Ambient light reflection coefficient.
Definition Material.hpp:46
float shininess
Specular highlight size/sharpness.
Definition Material.hpp:52
Material(Utilities::Color color=Utilities::Color(), Utilities::Vector3 ambient=Utilities::Vector3(1.0), Utilities::Vector3 diffuse=Utilities::Vector3(1.0), Utilities::Vector3 specular=Utilities::Vector3(1.0), float shininess=32.0, const Visuals::Texture &albedoData=Visuals::Texture::empty, const Visuals::Texture &normalData=Visuals::Texture::empty)
Create material with properties.
Definition Material.cpp:11
Utilities::Color color
Base color tint.
Definition Material.hpp:43
const Visuals::Texture & GetAlbedo() const
Get albedo/color texture.
Definition Material.hpp:58
Utilities::Vector3 specular
Specular light reflection coefficient.
Definition Material.hpp:50
void FreeNormal()
Free normal map resources.
Definition Material.cpp:33
void SetAlbedo(const Texture &textureData)
Set albedo/color texture.
Definition Material.cpp:22
const Visuals::Texture & GetNormal() const
Get normal map texture.
Definition Material.hpp:75
void FreeAlbedo()
Free albedo texture resources.
Definition Material.cpp:30
Utilities::Vector3 diffuse
Diffuse light reflection coefficient.
Definition Material.hpp:48
void SetNormal(const Texture &normalData)
Set normal map texture.
Definition Material.cpp:26
OpenGL texture wrapper.
Definition Texture.hpp:14
static const Texture empty
Empty texture singleton.
Definition Texture.hpp:70
RGBA color representation.
Definition Color.hpp:12