1 #ifndef MSP_GL_PBRMATERIAL_H_
2 #define MSP_GL_PBRMATERIAL_H_
9 class PbrMaterial: public Material
12 class Loader: public DataFile::DerivedObjectLoader<PbrMaterial, Material::PropertyLoader<PbrMaterial> >
15 static ActionMap shared_actions;
18 Loader(PbrMaterial &);
19 Loader(PbrMaterial &, Collection &);
22 virtual void init_actions();
26 Property<Color> base_color;
27 Property<Vector3> normal;
28 Property<float> metalness;
29 Property<float> roughness;
30 Property<float> occlusion;
31 Property<Color> emission;
38 virtual std::string create_program_source() const;
41 virtual void attach_textures_to(Texturing &, ProgramData &) const;
43 void set_base_color(const Color &);
44 void set_base_color_map(const Texture *);
45 void set_normal_map(const Texture *);
46 void set_metalness(float);
47 void set_metalness_map(const Texture *);
48 void set_roughness(float);
49 void set_roughness_map(const Texture *);
50 void set_occlusion_map(const Texture *);
51 void set_emission(const Color &);
52 void set_emission_map(const Texture *);
53 void set_receive_shadows(bool);