namespace Msp {
namespace GL {
+/**
+A basic and cheap material using the Phong shading model. Results are roughly
+equivalent to legacy OpenGL materials.
+
+In addition to the usual properties of the Phong shading model, normal mapping
+and reflections are supported. Reflections require an EnvironmentMap effect.
+*/
class BasicMaterial: public Material
{
public:
static ActionMap shared_actions;
public:
- Loader(BasicMaterial &);
Loader(BasicMaterial &, Collection &);
private:
Property<Vector3> normal;
Property<Color> emission;
Property<float> reflectivity;
- bool receive_shadows;
+
+ static const Tag texture_tags[];
public:
BasicMaterial();
virtual void fill_program_info(std::string &, std::map<std::string, int> &) const;
public:
- virtual void attach_textures_to(Texturing &, ProgramData &) const;
+ virtual const Tag *get_texture_tags() const { return texture_tags; }
+ virtual const Texture *get_texture(Tag) const;
void set_diffuse(const Color &);
void set_diffuse_map(const Texture *);
void set_shininess_map(const Texture *);
void set_reflectivity(float);
void set_reflectivity_map(const Texture *);
- void set_receive_shadows(bool);
};
} // namespace GL