From a2d7f5c414a352263c50e4a72987c2df04b86c29 Mon Sep 17 00:00:00 2001 From: hal8174 Date: Thu, 13 Jun 2024 11:50:35 +0200 Subject: [PATCH] Final solution for Assignment 2 --- Assignments/Assignment2.zip | Bin 0 -> 10281 bytes Assignments/Assignment2/Application2.cpp | 9 +++++---- 2 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 Assignments/Assignment2.zip diff --git a/Assignments/Assignment2.zip b/Assignments/Assignment2.zip new file mode 100644 index 0000000000000000000000000000000000000000..fdad9d50ef77e07a3d3d5dce041ebe04f43d4852 GIT binary patch literal 10281 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 literal 0 HcmV?d00001 diff --git a/Assignments/Assignment2/Application2.cpp b/Assignments/Assignment2/Application2.cpp index 2fba96b..e3ae45b 100644 --- a/Assignments/Assignment2/Application2.cpp +++ b/Assignments/Assignment2/Application2.cpp @@ -265,11 +265,11 @@ Vec3fa Application2::renderPixelHeterogeneousNEE(float x, float y, const ISPCCam L += Lw * absorbtion * emissive; Lw *= 1.0 - absorbtion; - ray = Ray(ray.org + t * ray.dir,o,EPS,inf); + ray = Ray(ray.org + t * ray.dir,o,0.0,inf); } else { // printf("volume(%f,%f,%f), t: %f, tfar: %f\n", ray.org.x, ray.org.y, ray.org.z, t, ray.tfar); - ray = Ray(ray.org + t * ray.dir, ray.dir, EPS, inf); + ray = Ray(ray.org + t * ray.dir, ray.dir, 0.0, inf); i--; } @@ -347,6 +347,7 @@ Vec3fa Application2::renderPixelHeterogeneous(float x, float y, const ISPCCamera if (ray.geomID == RTC_INVALID_GEOMETRY_ID) { // printf("here(%f,%f,%f)\n", ray.org.x, ray.org.y, ray.org.z); break; + // return Vec3fa(0.0, 0.0, 10.0); } float r = RandomSampler_get1D(sampler); @@ -381,11 +382,11 @@ Vec3fa Application2::renderPixelHeterogeneous(float x, float y, const ISPCCamera L += Lw * absorbtion * emissive; Lw *= 1.0 - absorbtion; - ray = Ray(ray.org + t * ray.dir,o,EPS,inf); + ray = Ray(ray.org + t * ray.dir,o,0.0,inf); } else { // printf("volume(%f,%f,%f), t: %f, tfar: %f\n", ray.org.x, ray.org.y, ray.org.z, t, ray.tfar); - ray = Ray(ray.org + t * ray.dir, ray.dir, EPS, inf); + ray = Ray(ray.org + t * ray.dir, ray.dir, 0.0, inf); i--; }