From df0c511b69a070b73945fbcd8a25a9b14310e030 Mon Sep 17 00:00:00 2001 From: TheNumbat Date: Thu, 5 Nov 2020 11:44:36 -0500 Subject: [PATCH] bvh root idx bbox --- src/student/bvh.inl | 2 +- src/student/pathtracer.cpp | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/student/bvh.inl b/src/student/bvh.inl index 4233bf6..a6be9d8 100644 --- a/src/student/bvh.inl +++ b/src/student/bvh.inl @@ -85,7 +85,7 @@ size_t BVH::new_node(BBox box, size_t start, size_t size, size_t l, s return nodes.size() - 1; } -template BBox BVH::bbox() const { return nodes[0].bbox; } +template BBox BVH::bbox() const { return nodes[root_idx].bbox; } template std::vector BVH::destructure() { nodes.clear(); diff --git a/src/student/pathtracer.cpp b/src/student/pathtracer.cpp index c7f0a41..96d3b3d 100644 --- a/src/student/pathtracer.cpp +++ b/src/student/pathtracer.cpp @@ -50,20 +50,18 @@ Spectrum Pathtracer::trace_ray(const Ray &ray) { Mat4 world_to_object = object_to_world.T(); Vec3 out_dir = world_to_object.rotate(ray.point - hit.position).unit(); - // Debugging: if the normal colors flag is set, return the normal color - if(debug_data.normal_colors) - return Spectrum::direction(hit.normal); - // Now we can compute the rendering equation at this point. // We split it into two stages: sampling lighting (i.e. directly connecting // the current path to each light in the scene), then sampling the BSDF // to create a new path segment. // TODO (PathTracer): Task 5 - // The starter code sets radiance_out to (0.5,0.5,0.5) so that you can test your geometry - // queries before you implement path tracing. You should change this to (0,0,0) and accumulate - // the direct and indirect lighting computed below. - Spectrum radiance_out = Spectrum(0.5f); + // Instead of initializing this value to a constant color, use the direct, + // indirect lighting components calculated in the code below. The starter + // code sets radiance_out to (0.5,0.5,0.5) so that you can test your geometry + // queries before you implement path tracing. + Spectrum radiance_out = + debug_data.normal_colors ? Spectrum::direction(hit.normal) : Spectrum(0.5f); { auto sample_light = [&](const auto &light) { // If the light is discrete (e.g. a point light), then we only need -- GitLab