class Material {
public:
- Material(const aiMaterial &aiMaterial, GLuint progId);
+ Material(const aiMaterial &aiMaterial, const aiScene &aiScene, GLuint progId);
void bind() const;
private:
GLuint progId;
- aiColor3D ambient, diffuse, specular;
- ai_real shininess;
+ aiColor4D ambient, diffuse, specular;
struct Texture {
- Texture(const std::string &path);
+ Texture(const aiString file, const aiScene &aiScene);
GLuint texId;
};
- Texture *diffuseMap = nullptr;
- Texture *specularMap = nullptr;
- Texture *normalMap = nullptr;
+ Texture *albedo = nullptr;
+ Texture *normal = nullptr;
+ Texture *metallicRoughness = nullptr;
+ Texture *ambientOcclusion = nullptr;
};