X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmaterials%2Fpbrmaterial.cpp;h=c5d849c1cfcc6030a5caa5ff430907db439d9462;hb=7a5d84b06d0217c5edad5d9f4ef51404de0cb911;hp=ad36159a6b12c744213d51cfa2605385e8e5d048;hpb=6353307898cd397e2bcde13e2448a8a678a60004;p=libs%2Fgl.git diff --git a/source/materials/pbrmaterial.cpp b/source/materials/pbrmaterial.cpp index ad36159a..c5d849c1 100644 --- a/source/materials/pbrmaterial.cpp +++ b/source/materials/pbrmaterial.cpp @@ -36,7 +36,7 @@ const Texture2D &PbrMaterial::get_or_create_fresnel_lookup() { Resources &resources = Resources::get_global(); - static const string name = "_pbr_fresnel_lookup.tex2d"; + static const string name = "_pbr_fresnel_lookup.tex"; Texture2D *fresnel_lookup = resources.find(name); if(fresnel_lookup) return *fresnel_lookup; @@ -55,9 +55,11 @@ const Texture2D &PbrMaterial::get_or_create_fresnel_lookup() Framebuffer fresnel_lookup_fbo((COLOR_ATTACHMENT,RG8)); fresnel_lookup_fbo.attach(COLOR_ATTACHMENT, *fresnel_lookup); Renderer renderer; + renderer.begin(); renderer.set_framebuffer(&fresnel_lookup_fbo); renderer.set_shader_program(&shprog, &shdata); mesh.draw(renderer); + renderer.end(); return *fresnel_lookup; } @@ -114,6 +116,12 @@ void PbrMaterial::set_base_color_map(const Texture *tex) base_color.texture = tex; } +void PbrMaterial::set_tint(const Color &color) +{ + tint.value = color; + shdata.uniform("pbr_material.tint", color); +} + void PbrMaterial::set_normal_map(const Texture *tex) { normal.texture = tex; @@ -160,12 +168,6 @@ void PbrMaterial::set_emission_map(const Texture *tex) DataFile::Loader::ActionMap PbrMaterial::Loader::shared_actions; -PbrMaterial::Loader::Loader(PbrMaterial &m): - DerivedObjectLoader >(m) -{ - set_actions(shared_actions); -} - PbrMaterial::Loader::Loader(PbrMaterial &m, Collection &c): DerivedObjectLoader >(m, c) { @@ -181,6 +183,7 @@ void PbrMaterial::Loader::init_actions() add_property("roughness", &PbrMaterial::set_roughness, &PbrMaterial::set_roughness_map); add_property("occlusion", &PbrMaterial::set_occlusion_map); add_property("emission", &PbrMaterial::set_emission, &PbrMaterial::set_emission_map, false); + add_property("tint", &PbrMaterial::set_tint, 0, true); } } // namespace GL