summaryrefslogtreecommitdiff
path: root/material_reflective.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'material_reflective.cpp')
-rw-r--r--material_reflective.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/material_reflective.cpp b/material_reflective.cpp
index aa0d361..6cffcf3 100644
--- a/material_reflective.cpp
+++ b/material_reflective.cpp
@@ -5,6 +5,7 @@
#include "vec.h"
#include "material.h"
#include "material_reflective.h"
+#include "tracelog.h"
// perfectly-smooth reflective
template<>
@@ -15,7 +16,16 @@ bool material_reflective_<false>::scatter(ray3d &r, const object &hit_obj, doubl
r.source(hit_point);
r.direction(reflected);
r.decay(albedo);
- return dot(reflected, nv) > 0;
+ const auto alive = dot(reflected, nv) > 0;
+#ifdef LOG_TRACE
+ if (!alive) {
+ TRACELOG(" absorbed (perfectly smooth material) (reflected: [%-10f,%-10f,%-10f], nv: [%-10f,%-10f,%-10f])\n",
+ reflected.x, reflected.y, reflected.z, nv.x, nv.y, nv.z);
+ } else {
+ TRACELOG(" reflected (perfectly smooth material)\n");
+ }
+#endif
+ return alive;
}
// fuzzy reflective
@@ -27,5 +37,14 @@ bool material_reflective_<true>::scatter(ray3d &r, const object &hit_obj, double
r.source(hit_point);
r.direction(reflected.unit_vec());
r.decay(albedo);
- return dot(reflected, nv) > 0;
+ const auto alive = dot(reflected, nv) > 0;
+#ifdef LOG_TRACE
+ if (!alive) {
+ TRACELOG(" absorbed (fuzzy reflective material) (reflected: [%-10f,%-10f,%-10f], nv: [%-10f,%-10f,%-10f])\n",
+ reflected.x, reflected.y, reflected.z, nv.x, nv.y, nv.z);
+ } else {
+ TRACELOG(" reflected (fuzzy reflective material)\n");
+ }
+#endif
+ return alive;
} \ No newline at end of file