From 501f94f0c0fc6a234caa6ff9a24314b43e538ef0 Mon Sep 17 00:00:00 2001 From: Yoel <s73017@beuth-hochschule.de> Date: Mon, 29 Mar 2021 17:46:07 +0200 Subject: [PATCH] Reflective Refactor --- RayTracer/material/ReflectiveMaterial.cpp | 12 ++++++------ RayTracer/material/ReflectiveMaterial.h | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/RayTracer/material/ReflectiveMaterial.cpp b/RayTracer/material/ReflectiveMaterial.cpp index 08754c9..1a46176 100644 --- a/RayTracer/material/ReflectiveMaterial.cpp +++ b/RayTracer/material/ReflectiveMaterial.cpp @@ -11,20 +11,20 @@ ReflectiveMaterial::ReflectiveMaterial( const std::shared_ptr<util::Sampler>& albedo_texture, const std::shared_ptr<util::Sampler>& emission_texture, float clearness) : albedo_texture(albedo_texture), - emission_texture(emission_texture), + emission_profile({emission_texture}), clearness(clearness) { } ReflectiveMaterial::ReflectiveMaterial( const std::shared_ptr<util::Sampler>& albedo_texture, float clearness) : albedo_texture(albedo_texture), - emission_texture( - std::make_shared<Constant>(Constant(util::Vec3(0, 0, 0)))), + emission_profile( + {std::make_shared<Constant>(Constant(util::Vec3(0, 0, 0)))}), clearness(clearness) { } ReflectiveMaterial::ReflectiveMaterial(const util::Vec3& color, float clearness) : albedo_texture(std::make_shared<Constant>(Constant(color))), - emission_texture( - std::make_shared<Constant>(Constant(util::Vec3(0, 0, 0)))), + emission_profile( + {std::make_shared<Constant>(Constant(util::Vec3(0, 0, 0)))}), clearness(clearness) { } util::Vec3 ReflectiveMaterial::albedo(const std::pair<float, float>& uv) const { @@ -32,7 +32,7 @@ util::Vec3 ReflectiveMaterial::albedo(const std::pair<float, float>& uv) const { } util::Vec3 ReflectiveMaterial::emission( const std::pair<float, float>& uv) const { - return emission_texture->color(uv.first, uv.second); + return emission_profile.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 69c6dcc..fab8f78 100644 --- a/RayTracer/material/ReflectiveMaterial.h +++ b/RayTracer/material/ReflectiveMaterial.h @@ -1,5 +1,6 @@ #pragma once +#include "../tools/EmissionProfile.h" #include "Material.h" namespace material { @@ -24,7 +25,7 @@ class ReflectiveMaterial : public Material { private: std::shared_ptr<util::Sampler> albedo_texture; - std::shared_ptr<util::Sampler> emission_texture; + util::EmissionProfile emission_profile; float clearness; }; } // namespace material -- GitLab