X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmaterials%2Fpbrmaterial.h;h=0204451b63efa0b595f39552e374da2648d819c7;hb=HEAD;hp=9669bc35a3a1086e117c73cc8aa2e2f4d677d315;hpb=ae45c0397e2cb8f0a01f2f31d01c95ff3870271e;p=libs%2Fgl.git diff --git a/source/materials/pbrmaterial.h b/source/materials/pbrmaterial.h index 9669bc35..e96236d2 100644 --- a/source/materials/pbrmaterial.h +++ b/source/materials/pbrmaterial.h @@ -8,6 +8,15 @@ namespace GL { class Texture2D; +/** +A physically-based material using the Cook-Torrance BRDF. + +The material is characterized by base color, metalness and roughness. Fully +metallic materials have no diffuse reflection and their specular reflection is +tinted by the base color. For fully dielectric materials base color determines +the color of the diffuse reflection; specular reflection is untinted. +Roughness affects how blurry specular reflections are. +*/ class PbrMaterial: public Material { public: @@ -25,6 +34,7 @@ public: private: Property base_color; + Property tint; Property normal; Property metalness; Property roughness; @@ -38,7 +48,6 @@ private: public: PbrMaterial(); -private: static const Texture2D &get_or_create_fresnel_lookup(); protected: @@ -51,6 +60,7 @@ public: void set_base_color(const Color &); void set_base_color_map(const Texture *); + void set_tint(const Color &); void set_normal_map(const Texture *); void set_metalness(float); void set_metalness_map(const Texture *);