From a62e5eadc5d10a6a54e5e0ed0550ac19423dce8b Mon Sep 17 00:00:00 2001 From: vonhyou Date: Tue, 19 Mar 2024 23:31:34 -0400 Subject: [PATCH] add dummy global illum --- src/RayTracer.cc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/RayTracer.cc b/src/RayTracer.cc index 3d0e669..2953b37 100644 --- a/src/RayTracer.cc +++ b/src/RayTracer.cc @@ -3,6 +3,7 @@ #include "Output.h" #include "Parser.h" #include "Progress.h" +#include "Random.h" #include "Ray.h" #include @@ -150,11 +151,22 @@ void writeColor(int i, const Vector3f &color) { Output::current->b(i, color.z()); } -Vector3f trace(Ray r, int bounce, float prob) {} +Vector3f trace(Ray r, int bounce, float prob) { + float dice = utils::Random::get(); + if (bounce && (dice > prob)) { + return Vector3f(1, 0, 1).array() * trace(r, bounce - 1, prob).array(); + } + + return Vector3f(1, 1, 1); +} utils::Optional trace(Ray r) { Vector3f color = trace(r, Scene::current->maxBounce(), Scene::current->probTerminate()); + + if (color != Vector3f::Zero()) + return utils::Optional(color); + return utils::Optional::nullopt; }