diff --git a/RayTracer/material/BackgroundMaterial.cpp b/RayTracer/material/BackgroundMaterial.cpp index e8226660ee09402ad75831b7f9f6264b106e3cc7..22f7c2dd9e7509864b31047adc9a698f4491a866 100644 --- a/RayTracer/material/BackgroundMaterial.cpp +++ b/RayTracer/material/BackgroundMaterial.cpp @@ -20,7 +20,15 @@ util::Vec3 BackgroundMaterial::scattered_d(const util::Vec3& d, const util::Vec3& n) const { return util::Vec3(0, 0, 0); } -bool BackgroundMaterial::scatter() const { +bool BackgroundMaterial::scatter(const util::Vec3& d, + const util::Vec3& n) const { return false; } + +float BackgroundMaterial::calculateLightMultiplier(const util::Vec3& d_in, + const util::Vec3& d_out, + const util::Vec3& n) const { + // Background should not be able to receive any light + return 0; +} } // namespace material \ No newline at end of file diff --git a/RayTracer/material/BackgroundMaterial.h b/RayTracer/material/BackgroundMaterial.h index ec7561311385bdb0a886e10a90d77f15b652b830..c6594c468587c15e08b32527375e58aa393dc3b4 100644 --- a/RayTracer/material/BackgroundMaterial.h +++ b/RayTracer/material/BackgroundMaterial.h @@ -12,7 +12,11 @@ class BackgroundMaterial : public Material { util::Vec3 emission(float texel_x, float texel_y) const override; util::Vec3 scattered_d(const util::Vec3& d, const util::Vec3& n) const override; - bool scatter() const override; + bool scatter(const util::Vec3& d, const util::Vec3& n) const override; + + float calculateLightMultiplier(const util::Vec3& d_in, + const util::Vec3& d_out, + const util::Vec3& n) const override; private: std::shared_ptr<util::Sampler> texture;