namespace Msp {
namespace GL {
+class Texture2D;
+
class PbrMaterial: public Material
{
public:
Property<float> roughness;
Property<float> occlusion;
Property<Color> emission;
- bool receive_shadows;
+ const Texture2D &fresnel_lookup;
+ const Sampler &fresnel_sampler;
static const Tag texture_tags[];
public:
PbrMaterial();
+private:
+ static const Texture2D &get_or_create_fresnel_lookup();
+
protected:
virtual void fill_program_info(std::string &, std::map<std::string, int> &) const;
public:
- DEPRECATED 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;
+ virtual const Sampler *get_sampler(Tag) const;
void set_base_color(const Color &);
void set_base_color_map(const Texture *);
void set_occlusion_map(const Texture *);
void set_emission(const Color &);
void set_emission_map(const Texture *);
- void set_receive_shadows(bool);
};
} // namespace GL