diff --git a/RayTracer/shape/TriangleMesh.cpp b/RayTracer/shape/TriangleMesh.cpp
index 73148c7457ab5631044f3a757e0d8637db680a6f..2e8d17be49c955df6ec98c572045e0d65af00c18 100644
--- a/RayTracer/shape/TriangleMesh.cpp
+++ b/RayTracer/shape/TriangleMesh.cpp
@@ -28,6 +28,7 @@ std::optional<cam::Hit> TriangleMesh::intersect(const cam::Ray& r) const {
 }
 std::optional<cam::Hit> TriangleMesh::intersect(size_t i,
                                                 const cam::Ray& r) const {
+	if (!hierarchy[i].bb.intersects(r)) return std::nullopt;
 	std::array<cam::Hit, 3> hits = {
 	    cam::Hit(util::Vec3(0), util::Vec3(0),
 	             std::numeric_limits<float>::infinity(), nullptr),