diff --git a/RayTracer/material/BackgroundMaterial.cpp b/RayTracer/material/BackgroundMaterial.cpp index fa967d03a476559d7b53ec417d50193f6c9922fc..e80bf3629b16e751ea8bb3e7d66d47c081a6cb7c 100644 --- a/RayTracer/material/BackgroundMaterial.cpp +++ b/RayTracer/material/BackgroundMaterial.cpp @@ -10,11 +10,12 @@ BackgroundMaterial::BackgroundMaterial( BackgroundMaterial::BackgroundMaterial(const util::Vec3& albedo) : texture(std::make_shared<Constant>(albedo)) { } -util::Vec3 BackgroundMaterial::albedo(float texel_x, float texel_y) const { +util::Vec3 BackgroundMaterial::albedo(const std::pair<float, float>& uv) const { return util::Vec3(1, 1, 1); } -util::Vec3 BackgroundMaterial::emission(float texel_x, float texel_y) const { - return texture->color(texel_x, texel_y); +util::Vec3 BackgroundMaterial::emission( + const std::pair<float, float>& uv) const { + return texture->color(uv.first, uv.second); } util::Vec3 BackgroundMaterial::scattered_d(const util::Vec3& d, const util::Vec3& n) const { diff --git a/RayTracer/material/BackgroundMaterial.h b/RayTracer/material/BackgroundMaterial.h index c6594c468587c15e08b32527375e58aa393dc3b4..61e17d261c6d68deccb1946a33da6e88c9abe275 100644 --- a/RayTracer/material/BackgroundMaterial.h +++ b/RayTracer/material/BackgroundMaterial.h @@ -8,8 +8,8 @@ class BackgroundMaterial : public Material { BackgroundMaterial(const std::shared_ptr<util::Sampler>& texture); BackgroundMaterial(const util::Vec3& albedo); - util::Vec3 albedo(float texel_x, float texel_y) const override; - util::Vec3 emission(float texel_x, float texel_y) const override; + util::Vec3 albedo(const std::pair<float, float>& uv) const override; + util::Vec3 emission(const std::pair<float, float>& uv) const override; util::Vec3 scattered_d(const util::Vec3& d, const util::Vec3& n) const override; bool scatter(const util::Vec3& d, const util::Vec3& n) const override; diff --git a/RayTracer/material/DiffuseMaterial.cpp b/RayTracer/material/DiffuseMaterial.cpp index ce46f4be1c73f60b046317599a0b78ee3e9a82ec..e24430cd3012d6d1c0d4b13cd76eaeec311555c0 100644 --- a/RayTracer/material/DiffuseMaterial.cpp +++ b/RayTracer/material/DiffuseMaterial.cpp @@ -25,11 +25,11 @@ DiffuseMaterial::DiffuseMaterial(const util::Vec3& color) emission_texture( std::make_shared<Constant>(Constant(util::Vec3(0, 0, 0)))) { } -util::Vec3 DiffuseMaterial::albedo(float texel_x, float texel_y) const { - return albedo_texture->color(texel_x, texel_y); +util::Vec3 DiffuseMaterial::albedo(const std::pair<float, float>& uv) const { + return albedo_texture->color(uv.first, uv.second); } -util::Vec3 DiffuseMaterial::emission(float texel_x, float texel_y) const { - return emission_texture->color(texel_x, texel_y); +util::Vec3 DiffuseMaterial::emission(const std::pair<float, float>& uv) const { + return emission_texture->color(uv.first, uv.second); } util::Vec3 DiffuseMaterial::scattered_d(const util::Vec3& d, const util::Vec3& n) const { diff --git a/RayTracer/material/DiffuseMaterial.h b/RayTracer/material/DiffuseMaterial.h index fe4b5a12a96fb4d3d505a6aa9d2434e8cc815a6d..dcda0b872bb8bea33b0ee85f2e69a25e9b5e6c91 100644 --- a/RayTracer/material/DiffuseMaterial.h +++ b/RayTracer/material/DiffuseMaterial.h @@ -10,8 +10,8 @@ class DiffuseMaterial : public Material { DiffuseMaterial(const std::shared_ptr<util::Sampler>& albedo); DiffuseMaterial(const util::Vec3& color); - util::Vec3 albedo(float texel_x, float texel_y) const override; - util::Vec3 emission(float texel_x, float texel_y) const override; + util::Vec3 albedo(const std::pair<float, float>& uv) const override; + util::Vec3 emission(const std::pair<float, float>& uv) const override; util::Vec3 scattered_d(const util::Vec3& d, const util::Vec3& n) const override; bool scatter(const util::Vec3& d, const util::Vec3& n) const override; diff --git a/RayTracer/material/ReflectiveMaterial.cpp b/RayTracer/material/ReflectiveMaterial.cpp index d32cb33e07e50aeaf396855a90e7c338ac7d0c09..08754c9eff0d410aff934145f523e69b6b04c1fe 100644 --- a/RayTracer/material/ReflectiveMaterial.cpp +++ b/RayTracer/material/ReflectiveMaterial.cpp @@ -27,11 +27,12 @@ ReflectiveMaterial::ReflectiveMaterial(const util::Vec3& color, float clearness) std::make_shared<Constant>(Constant(util::Vec3(0, 0, 0)))), clearness(clearness) { } -util::Vec3 ReflectiveMaterial::albedo(float texel_x, float texel_y) const { - return albedo_texture->color(texel_x, texel_y); +util::Vec3 ReflectiveMaterial::albedo(const std::pair<float, float>& uv) const { + return albedo_texture->color(uv.first, uv.second); } -util::Vec3 ReflectiveMaterial::emission(float texel_x, float texel_y) const { - return emission_texture->color(texel_x, texel_y); +util::Vec3 ReflectiveMaterial::emission( + const std::pair<float, float>& uv) const { + return emission_texture->color(uv.first, uv.second); } util::Vec3 ReflectiveMaterial::scattered_d(const util::Vec3& d, const util::Vec3& n) const { diff --git a/RayTracer/material/ReflectiveMaterial.h b/RayTracer/material/ReflectiveMaterial.h index 8c005e5f58201484e4bd15e0989f65a1785416ac..69c6dcc4e0ddaf2185976ebef0a0ccffcc3795a0 100644 --- a/RayTracer/material/ReflectiveMaterial.h +++ b/RayTracer/material/ReflectiveMaterial.h @@ -12,8 +12,8 @@ class ReflectiveMaterial : public Material { float clearness); ReflectiveMaterial(const util::Vec3& color, float clearness); - util::Vec3 albedo(float texel_x, float texel_y) const override; - util::Vec3 emission(float texel_x, float texel_y) const override; + util::Vec3 albedo(const std::pair<float, float>& uv) const override; + util::Vec3 emission(const std::pair<float, float>& uv) const override; util::Vec3 scattered_d(const util::Vec3& d, const util::Vec3& n) const override; bool scatter(const util::Vec3& d, const util::Vec3& n) const override;