X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fmaterials%2Fpbrmaterial.h;h=9669bc35a3a1086e117c73cc8aa2e2f4d677d315;hp=00e5e1babc64ded6c83b1ff894f0f5a78a0e672b;hb=ae45c0397e2cb8f0a01f2f31d01c95ff3870271e;hpb=6f39983060a27634c012f66c82fea0d09fea9774 diff --git a/source/materials/pbrmaterial.h b/source/materials/pbrmaterial.h index 00e5e1ba..9669bc35 100644 --- a/source/materials/pbrmaterial.h +++ b/source/materials/pbrmaterial.h @@ -6,6 +6,8 @@ namespace Msp { namespace GL { +class Texture2D; + class PbrMaterial: public Material { public: @@ -15,7 +17,6 @@ public: static ActionMap shared_actions; public: - Loader(PbrMaterial &); Loader(PbrMaterial &, Collection &); private: @@ -29,21 +30,24 @@ private: Property roughness; Property occlusion; Property 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 &) 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 *); @@ -55,7 +59,6 @@ public: void set_occlusion_map(const Texture *); void set_emission(const Color &); void set_emission_map(const Texture *); - void set_receive_shadows(bool); }; } // namespace GL