diff --git a/src/pe/raytracing/Raytracer.h b/src/pe/raytracing/Raytracer.h index 73e30008f377f9f5bd90fe21b8e740ec05bb92c1..2056c77ab638f5ae1d96260a47447d25d6491d46 100644 --- a/src/pe/raytracing/Raytracer.h +++ b/src/pe/raytracing/Raytracer.h @@ -573,6 +573,10 @@ void Raytracer::generateImage(const size_t timestep, WcTimingTree* tt) { traceRayInGlobalBodyStorage<BodyTypeTuple>(ray, body_closest, t_closest, n_closest); + BodyIntersectionInfo& intersectionInfo = intersectionsBuffer[coordinateToArrayIndex(x, y)]; + intersectionInfo.imageX = uint32_t(x); + intersectionInfo.imageY = uint32_t(y); + if (!realIsIdentical(t_closest, inf) && body_closest != NULL) { Color color = getColor(body_closest, ray, t_closest, n_closest); if (isErrorneousPixel) { @@ -580,18 +584,19 @@ void Raytracer::generateImage(const size_t timestep, WcTimingTree* tt) { isErrorneousPixel = false; } - BodyIntersectionInfo intersectionInfo = { - uint32_t(x), - uint32_t(y), - body_closest->getSystemID(), - t_closest, - color[0], - color[1], - color[2] - }; + intersectionInfo.bodySystemID = body_closest->getSystemID(); + intersectionInfo.t = t_closest; + intersectionInfo.r = color[0]; + intersectionInfo.g = color[1]; + intersectionInfo.b = color[2]; - intersectionsBuffer[coordinateToArrayIndex(x, y)] = intersectionInfo; intersections.push_back(intersectionInfo); + } else { + intersectionInfo.bodySystemID = 0; + intersectionInfo.t = inf; + intersectionInfo.r = backgroundColor_[0]; + intersectionInfo.g = backgroundColor_[1]; + intersectionInfo.b = backgroundColor_[2]; } } }