aboutsummaryrefslogtreecommitdiff
path: root/src/utils/raytracerutils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/raytracerutils.cpp')
-rw-r--r--src/utils/raytracerutils.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/utils/raytracerutils.cpp b/src/utils/raytracerutils.cpp
new file mode 100644
index 0000000..bdb49a4
--- /dev/null
+++ b/src/utils/raytracerutils.cpp
@@ -0,0 +1,21 @@
+//
+// Created by Michael Foiani on 11/4/23.
+//
+
+#include "raytracer/raytracer.h"
+
+// Helper function to convert illumination to RGBA, applying some form of tone-mapping (e.g. clamping) in the process
+RGBA RayTracer::toRGBA(const glm::vec4 &illumination) {
+ // Task 1
+ return RGBA
+ {
+ (std::uint8_t) (255 * std::clamp(illumination.r, 0.f, 1.f)),
+ (std::uint8_t) (255 * std::clamp(illumination.g, 0.f, 1.f)),
+ (std::uint8_t) (255 * std::clamp(illumination.b, 0.f, 1.f)),
+ (std::uint8_t) (255 * std::clamp(illumination.b, 0.f, 1.f))
+ };
+}
+
+bool RayTracer::floatEquals(float a, float b, float epsilon) {
+ return std::abs(a - b) <= epsilon;
+} \ No newline at end of file