From 845010a5d762f0a9f754d4ac382ffde58f4cfc8d Mon Sep 17 00:00:00 2001 From: BowenBao Date: Sat, 8 Oct 2016 14:09:26 -0400 Subject: [PATCH 1/8] Basic --- scenes/cornell.txt | 32 ++ src/CMakeLists.txt | 1 + src/intersections.h | 86 +++--- src/main.cpp | 2 + src/pathtrace.cu | 705 ++++++++++++++++++++++++++++++++++++-------- src/sceneStructs.h | 2 + 6 files changed, 663 insertions(+), 165 deletions(-) diff --git a/scenes/cornell.txt b/scenes/cornell.txt index 83ff820..e88bb6a 100644 --- a/scenes/cornell.txt +++ b/scenes/cornell.txt @@ -48,6 +48,16 @@ REFR 0 REFRIOR 0 EMITTANCE 0 +// Glass +MATERIAL 5 +RGB 1 1 1 +SPECEX 0 +SPECRGB 0 0 0 +REFL 0 +REFR 1 +REFRIOR 0 +EMITTANCE 0 + // Camera CAMERA RES 800 800 @@ -115,3 +125,25 @@ material 4 TRANS -1 4 -1 ROTAT 0 0 0 SCALE 3 3 3 + +// Sphere 2 +OBJECT 7 +sphere +material 1 +TRANS 1 6 -1.5 +ROTAT 0 0 0 +SCALE 3 3 3 + +// Left wall light +OBJECT 8 +cube +material 0 +TRANS -5 5 0 +SCALE .3 3 3 + +// Right wall light +OBJECT 9 +cube +material 0 +TRANS 5 5 0 +SCALE .3 3 3 \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a1cb3fb..cd9bd2f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -11,6 +11,7 @@ set(SOURCE_FILES "scene.cpp" "scene.h" "sceneStructs.h" + "stream.cu" "preview.h" "preview.cpp" "utilities.cpp" diff --git a/src/intersections.h b/src/intersections.h index 6f23872..16eb939 100644 --- a/src/intersections.h +++ b/src/intersections.h @@ -57,7 +57,7 @@ __host__ __device__ float boxIntersectionTest(Geom box, Ray r, glm::vec3 tmax_n; for (int xyz = 0; xyz < 3; ++xyz) { float qdxyz = q.direction[xyz]; - /*if (glm::abs(qdxyz) > 0.00001f)*/ { + /* if (glm::abs(qdxyz) > 0.00001f) */{ float t1 = (-0.5f - q.origin[xyz]) / qdxyz; float t2 = (+0.5f - q.origin[xyz]) / qdxyz; float ta = glm::min(t1, t2); @@ -100,45 +100,47 @@ __host__ __device__ float boxIntersectionTest(Geom box, Ray r, * @return Ray parameter `t` value. -1 if no intersection. */ __host__ __device__ float sphereIntersectionTest(Geom sphere, Ray r, - glm::vec3 &intersectionPoint, glm::vec3 &normal, bool &outside) { - float radius = .5; - - glm::vec3 ro = multiplyMV(sphere.inverseTransform, glm::vec4(r.origin, 1.0f)); - glm::vec3 rd = glm::normalize(multiplyMV(sphere.inverseTransform, glm::vec4(r.direction, 0.0f))); - - Ray rt; - rt.origin = ro; - rt.direction = rd; - - float vDotDirection = glm::dot(rt.origin, rt.direction); - float radicand = vDotDirection * vDotDirection - (glm::dot(rt.origin, rt.origin) - powf(radius, 2)); - if (radicand < 0) { - return -1; - } - - float squareRoot = sqrt(radicand); - float firstTerm = -vDotDirection; - float t1 = firstTerm + squareRoot; - float t2 = firstTerm - squareRoot; - - float t = 0; - if (t1 < 0 && t2 < 0) { - return -1; - } else if (t1 > 0 && t2 > 0) { - t = min(t1, t2); - outside = true; - } else { - t = max(t1, t2); - outside = false; - } - - glm::vec3 objspaceIntersection = getPointOnRay(rt, t); - - intersectionPoint = multiplyMV(sphere.transform, glm::vec4(objspaceIntersection, 1.f)); - normal = glm::normalize(multiplyMV(sphere.invTranspose, glm::vec4(objspaceIntersection, 0.f))); - if (!outside) { - normal = -normal; - } - - return glm::length(r.origin - intersectionPoint); + glm::vec3 &intersectionPoint, glm::vec3 &normal, bool &outside) { + float radius = .5; + + glm::vec3 ro = multiplyMV(sphere.inverseTransform, glm::vec4(r.origin, 1.0f)); + glm::vec3 rd = glm::normalize(multiplyMV(sphere.inverseTransform, glm::vec4(r.direction, 0.0f))); + + Ray rt; + rt.origin = ro; + rt.direction = rd; + + float vDotDirection = glm::dot(rt.origin, rt.direction); + float radicand = vDotDirection * vDotDirection - (glm::dot(rt.origin, rt.origin) - powf(radius, 2)); + if (radicand < 0) { + return -1; + } + + float squareRoot = sqrt(radicand); + float firstTerm = -vDotDirection; + float t1 = firstTerm + squareRoot; + float t2 = firstTerm - squareRoot; + + float t = 0; + if (t1 < 0 && t2 < 0) { + return -1; + } + else if (t1 > 0 && t2 > 0) { + t = min(t1, t2); + outside = true; + } + else { + t = max(t1, t2); + outside = false; + } + + glm::vec3 objspaceIntersection = getPointOnRay(rt, t); + + intersectionPoint = multiplyMV(sphere.transform, glm::vec4(objspaceIntersection, 1.f)); + normal = glm::normalize(multiplyMV(sphere.invTranspose, glm::vec4(objspaceIntersection, 0.f))); + if (!outside) { + normal = -normal; + } + + return glm::length(r.origin - intersectionPoint); } diff --git a/src/main.cpp b/src/main.cpp index fe8e85e..757cd32 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -72,6 +72,8 @@ int main(int argc, char** argv) { // GLFW main loop mainLoop(); + cin.get(); + return 0; } diff --git a/src/pathtrace.cu b/src/pathtrace.cu index c1ec122..f6b9f28 100644 --- a/src/pathtrace.cu +++ b/src/pathtrace.cu @@ -44,6 +44,252 @@ thrust::default_random_engine makeSeededRandomEngine(int iter, int index, int de return thrust::default_random_engine(h); } +inline int ilog2(int x) { + int lg = 0; + while (x >>= 1) { + ++lg; + } + return lg; +} + +inline int ilog2ceil(int x) { + return ilog2(x - 1) + 1; +} + +// stream compaction +namespace StreamCompaction { + namespace Common { + __global__ void kernMapToBoolean(int n, int *bools, const PathSegment *idata); + + __global__ void kernScatter(int n, int *odata, + const int *idata, const int *bools, const int *indices); + + /** + * Maps an array to an array of 0s and 1s for stream compaction. Elements + * which map to 0 will be removed, and elements which map to 1 will be kept. + */ + __global__ void kernMapToBoolean(int n, int *bools, const PathSegment *idata, bool compactOnes) { + // TODO + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) return; + int flagValue = 0; + if (compactOnes) flagValue = 1; + if (idata[index].remainingBounces > 0) bools[index] = flagValue; + else bools[index] = 1 - flagValue; + } + + /** + * Performs scatter on an array. That is, for each element in idata, + * if bools[idx] == 1, it copies idata[idx] to odata[indices[idx]]. + */ + __global__ void kernScatter(int n, PathSegment *odata, + const PathSegment *idata, const int *bools, const int *indices) { + // TODO + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) return; + if (bools[index] == 1) + { + odata[indices[index]] = idata[index]; + } + } + + + __global__ void kernScanUpSweep(int N, int interval, int *data) + { + // up sweep + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + int real_index = index * interval * 2; + if (real_index >= N) return; + int cur_index = real_index + 2 * interval - 1; + int last_index = real_index + interval - 1; + if (cur_index >= N) return; + + data[cur_index] = data[last_index] + data[cur_index]; + } + + __global__ void kernScanDownSweep(int N, int interval, int *data) + { + // down seep + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + int real_index = index * interval * 2; + if (real_index >= N) return; + int last_index = real_index + interval - 1; + int cur_index = real_index + 2 * interval - 1; + if (cur_index >= N) return; + int tmp = data[last_index]; + data[last_index] = data[cur_index]; + data[cur_index] += tmp; + } + + __global__ void kernMapDigitToBoolean(int N, int digit, int *odata, const int *idata) + { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= N) return; + int mask = 1 << digit; + if ((idata[index] & mask) == 0) + { + if (digit != 31) odata[index] = 0; + else odata[index] = 1; + } + else + { + if (digit != 31) odata[index] = 1; + else odata[index] = 0; + } + } + + __global__ void kernFlipBoolean(int N, int *odata, const int *idata) + { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= N) return; + if (idata[index] == 0) + { + odata[index] = 1; + } + else + { + odata[index] = 0; + } + } + + __global__ void kernSortOneRound(int N, int *bools, int *indices_zero, int *indices_one, int maxFalse, + int *odata, const int *idata) + { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= N) return; + if (bools[index] == 0) + { + // false; + odata[indices_zero[index]] = idata[index]; + } + else + { + odata[indices_one[index] + maxFalse] = idata[index]; + } + } + + /** + * Performs prefix-sum (aka scan) on idata, storing the result into odata. + */ + float scan(int n, int *odata, const int *idata, int blockSize) { + // record time + float diff(0); + cudaEvent_t start, end; + cudaEventCreate(&start); + cudaEventCreate(&end); + cudaEventRecord(start, 0); + + int loop_times = ilog2ceil(n); + int totalNum = 1; + for (int i = 0; i < loop_times; ++i) + { + totalNum *= 2; + } + int interval = 1; + //printf("total looptimes: %d, total num %d\n", loop_times, totalNum); + + int *tmp_data; + cudaMalloc((void**)&tmp_data, totalNum * sizeof(int)); + cudaMemset(tmp_data, 0, totalNum); + cudaMemcpy(tmp_data, idata, n * sizeof(int), cudaMemcpyHostToDevice); + + + // up sweep + for (int i = 0; i < loop_times; ++i) + { + dim3 fullBlocksPerGrid((totalNum / (interval * 2) + blockSize - 1) / blockSize); + kernScanUpSweep << > >(totalNum, interval, tmp_data); + interval *= 2; + } + + // down sweep + cudaMemset(&tmp_data[totalNum - 1], 0, sizeof(int)); + + for (int i = 0; i < loop_times; ++i) + { + dim3 fullBlocksPerGrid((totalNum / interval + blockSize - 1) / blockSize); + interval /= 2; + kernScanDownSweep << > >(totalNum, interval, tmp_data); + } + + cudaMemcpy(odata, tmp_data, n*sizeof(int), cudaMemcpyDeviceToHost); + cudaFree(tmp_data); + + cudaEventRecord(end, 0); + cudaEventSynchronize(start); + cudaEventSynchronize(end); + cudaEventElapsedTime(&diff, start, end); + + //printf("GPU scan took %fms\n", diff); + return diff; + } + + /** + * Performs stream compaction on idata, storing the result into odata. + * All zeroes are discarded. + * + * @param n The number of elements in idata. + * @param odata The array into which to store elements. + * @param idata The array of elements to compact. + * @returns The number of elements remaining after compaction. + */ + int pathCompact(int n, PathSegment *odata, const PathSegment *idata, double &time, int blockSize, bool compactOnes) { + // record time + float diff(0); + cudaEvent_t start, end; + cudaEventCreate(&start); + cudaEventCreate(&end); + cudaEventRecord(start, 0); + + dim3 fullBlocksPerGrid((n + blockSize - 1) / blockSize); + + int *indices_cuda; + int *bools_cuda; + + int *indices = new int[n]; + int *bools = new int[n]; + + cudaMalloc((void**)&indices_cuda, n * sizeof(int)); + cudaMalloc((void**)&bools_cuda, n * sizeof(int)); + + Common::kernMapToBoolean << > >(n, bools_cuda, idata, compactOnes); + + cudaMemcpy(bools, bools_cuda, n * sizeof(int), cudaMemcpyDeviceToHost); + + scan(n, indices, bools, blockSize); + + cudaMemcpy(indices_cuda, indices, n * sizeof(int), cudaMemcpyHostToDevice); + + Common::kernScatter << > >(n, odata, idata, bools_cuda, indices_cuda); + + int remain_elem; + cudaMemcpy(&remain_elem, &indices_cuda[n - 1], sizeof(int), cudaMemcpyDeviceToHost); + remain_elem += bools[n - 1]; + + delete[] bools; + delete[] indices; + + cudaFree(indices_cuda); + cudaFree(bools_cuda); + + cudaEventRecord(end, 0); + cudaEventSynchronize(start); + cudaEventSynchronize(end); + cudaEventElapsedTime(&diff, start, end); + + //printf("GPU compact took %fms\n", diff); + + time = diff; + return remain_elem; + } + + + } +} + + + + //Kernel that writes the image to the OpenGL PBO directly. __global__ void sendImageToPBO(uchar4* pbo, glm::ivec2 resolution, int iter, glm::vec3* image) { @@ -73,6 +319,7 @@ static Geom * dev_geoms = NULL; static Material * dev_materials = NULL; static PathSegment * dev_paths = NULL; static ShadeableIntersection * dev_intersections = NULL; +static ShadeableIntersection * dev_intersections_cache = NULL; // TODO: static variables for device memory, any extra info you need, etc // ... @@ -95,6 +342,9 @@ void pathtraceInit(Scene *scene) { cudaMalloc(&dev_intersections, pixelcount * sizeof(ShadeableIntersection)); cudaMemset(dev_intersections, 0, pixelcount * sizeof(ShadeableIntersection)); + cudaMalloc(&dev_intersections_cache, pixelcount * sizeof(ShadeableIntersection)); + cudaMemset(dev_intersections_cache, 0, pixelcount * sizeof(ShadeableIntersection)); + // TODO: initialize any extra device memeory you need checkCUDAError("pathtraceInit"); @@ -106,6 +356,7 @@ void pathtraceFree() { cudaFree(dev_geoms); cudaFree(dev_materials); cudaFree(dev_intersections); + cudaFree(dev_intersections_cache); // TODO: clean up any extra device memory you created checkCUDAError("pathtraceFree"); @@ -129,7 +380,7 @@ __global__ void generateRayFromCamera(Camera cam, int iter, int traceDepth, Path PathSegment & segment = pathSegments[index]; segment.ray.origin = cam.position; - segment.color = glm::vec3(1.0f, 1.0f, 1.0f); + segment.color = glm::vec3(1.0f, 1.0f, 1.0f); // TODO: implement antialiasing by jittering the ray segment.ray.direction = glm::normalize(cam.view @@ -221,48 +472,138 @@ __global__ void computeIntersections( // Note that this shader does NOT do a BSDF evaluation! // Your shaders should handle that - this can allow techniques such as // bump mapping. -__global__ void shadeFakeMaterial ( - int iter - , int num_paths +__global__ void shadeFakeMaterial( + int iter + , int num_paths , ShadeableIntersection * shadeableIntersections , PathSegment * pathSegments , Material * materials ) { - int idx = blockIdx.x * blockDim.x + threadIdx.x; - if (idx < num_paths) - { - ShadeableIntersection intersection = shadeableIntersections[idx]; - if (intersection.t > 0.0f) { // if the intersection exists... - // Set up the RNG - // LOOK: this is how you use thrust's RNG! Please look at - // makeSeededRandomEngine as well. - thrust::default_random_engine rng = makeSeededRandomEngine(iter, idx, 0); - thrust::uniform_real_distribution u01(0, 1); - - Material material = materials[intersection.materialId]; - glm::vec3 materialColor = material.color; - - // If the material indicates that the object was a light, "light" the ray - if (material.emittance > 0.0f) { - pathSegments[idx].color *= (materialColor * material.emittance); - } - // Otherwise, do some pseudo-lighting computation. This is actually more - // like what you would expect from shading in a rasterizer like OpenGL. - // TODO: replace this! you should be able to start with basically a one-liner - else { - float lightTerm = glm::dot(intersection.surfaceNormal, glm::vec3(0.0f, 1.0f, 0.0f)); - pathSegments[idx].color *= (materialColor * lightTerm) * 0.3f + ((1.0f - intersection.t * 0.02f) * materialColor) * 0.7f; - pathSegments[idx].color *= u01(rng); // apply some noise because why not - } - // If there was no intersection, color the ray black. - // Lots of renderers use 4 channel color, RGBA, where A = alpha, often - // used for opacity, in which case they can indicate "no opacity". - // This can be useful for post-processing and image compositing. - } else { - pathSegments[idx].color = glm::vec3(0.0f); - } - } + int idx = blockIdx.x * blockDim.x + threadIdx.x; + if (idx < num_paths) + { + ShadeableIntersection intersection = shadeableIntersections[idx]; + if (intersection.t > 0.0f) { // if the intersection exists... + // Set up the RNG + // LOOK: this is how you use thrust's RNG! Please look at + // makeSeededRandomEngine as well. + thrust::default_random_engine rng = makeSeededRandomEngine(iter, idx, 0); + thrust::uniform_real_distribution u01(0, 1); + + Material material = materials[intersection.materialId]; + glm::vec3 materialColor = material.color; + + // If the material indicates that the object was a light, "light" the ray + if (material.emittance > 0.0f) { + pathSegments[idx].color *= (materialColor * material.emittance); + } + // Otherwise, do some pseudo-lighting computation. This is actually more + // like what you would expect from shading in a rasterizer like OpenGL. + // TODO: replace this! you should be able to start with basically a one-liner + else { + float lightTerm = glm::dot(intersection.surfaceNormal, glm::vec3(0.0f, 1.0f, 0.0f)); + pathSegments[idx].color *= (materialColor * lightTerm) * 0.3f + ((1.0f - intersection.t * 0.02f) * materialColor) * 0.7f; + pathSegments[idx].color *= u01(rng); // apply some noise because why not + } + // If there was no intersection, color the ray black. + // Lots of renderers use 4 channel color, RGBA, where A = alpha, often + // used for opacity, in which case they can indicate "no opacity". + // This can be useful for post-processing and image compositing. + } + else { + pathSegments[idx].color = glm::vec3(0.0f); + } + } +} + + +__global__ void shadeRealMaterial( + int iter, + int num_paths, + ShadeableIntersection *shadeableIntersections, + PathSegment *pathSegments, + Material *materials) +{ + int idx = blockIdx.x * blockDim.x + threadIdx.x; + if (idx >= num_paths) return; + if (pathSegments[idx].remainingBounces <= 0) return; + ShadeableIntersection intersection = shadeableIntersections[idx]; + if (intersection.t > 0.0f) + { + thrust::default_random_engine rng = makeSeededRandomEngine(iter, idx, 0); + thrust::uniform_real_distribution u01(0, 1); + + Material material = materials[intersection.materialId]; + glm::vec3 materialColor = material.color; + + if (material.emittance > 0.0f) + { + // Object is light + pathSegments[idx].color *= materialColor *material.emittance; + pathSegments[idx].remainingBounces = 0; + } + else + { + //float lightTerm = glm::dot(intersection.surfaceNormal, glm::vec3(0.0f, 0.5f, 0.0f)); + //pathSegments[idx].color *= (materialColor * lightTerm) * 0.3f + ((1.0f - intersection.t * 0.02f) * materialColor) * 0.7f; + //pathSegments[idx].color *= u01(rng); // apply some noise because why not + pathSegments[idx].color *= materialColor; + // BSDF + if (material.hasReflective) + { + // ideal reflection + glm::vec3 new_direction = glm::reflect(pathSegments[idx].ray.direction, intersection.surfaceNormal); + glm::vec3 new_origin = pathSegments[idx].ray.direction * intersection.t + pathSegments[idx].ray.origin + EPSILON * new_direction; + //pathSegments[idx].ray.direction - + //2 * glm::dot(intersection.surfaceNormal, pathSegments[idx].ray.direction) * intersection.surfaceNormal; + + //if (idx == 3000) + //{ + // printf("test light origin %f,%f,%f direction %f,%f,%f to new origin %f,%f,%f direction %f,%f,%f\n", + // pathSegments[idx].ray.origin.x, pathSegments[idx].ray.origin.y, pathSegments[idx].ray.origin.z, + // pathSegments[idx].ray.direction.x, pathSegments[idx].ray.direction.y, pathSegments[idx].ray.direction.z, + // new_origin.x, new_origin.y, new_origin.z, + // new_direction.x, new_direction.y, new_direction.z + // ); + //} + + pathSegments[idx].ray.direction = new_direction; + pathSegments[idx].ray.origin = new_origin; + + } + else if (material.hasRefractive) + { + // snell's law + // currently use diffuse. + glm::vec3 new_direction = calculateRandomDirectionInHemisphere(intersection.surfaceNormal, + rng); + glm::vec3 new_origin = pathSegments[idx].ray.direction * intersection.t + pathSegments[idx].ray.origin + EPSILON * new_direction; + + pathSegments[idx].ray.direction = new_direction; + pathSegments[idx].ray.origin = new_origin; + } + else + { + // diffuse + glm::vec3 new_direction = calculateRandomDirectionInHemisphere(intersection.surfaceNormal, + rng); + glm::vec3 new_origin = pathSegments[idx].ray.direction * intersection.t + pathSegments[idx].ray.origin + EPSILON * new_direction; + + pathSegments[idx].ray.direction = new_direction; + pathSegments[idx].ray.origin = new_origin; + + } + pathSegments[idx].remainingBounces--; + } + } + else + { + // hit nothing + pathSegments[idx].color = glm::vec3(0.0f); + pathSegments[idx].remainingBounces = 0; + } + } // Add the current iteration's output to the overall image @@ -277,117 +618,235 @@ __global__ void finalGather(int nPaths, glm::vec3 * image, PathSegment * iterati } } +struct PathRemainingBounceZeroTest +{ + __host__ __device__ + bool operator()(const PathSegment& a) + { + return a.remainingBounces <= 0; + } +}; + +struct PathRemainingBounceNonZeroTest +{ + __host__ __device__ + bool operator()(const PathSegment& a) + { + return a.remainingBounces > 0; + } +}; + + /** * Wrapper for the __global__ call that sets up the kernel calls and does a ton * of memory management */ void pathtrace(uchar4 *pbo, int frame, int iter) { - const int traceDepth = hst_scene->state.traceDepth; - const Camera &cam = hst_scene->state.camera; - const int pixelcount = cam.resolution.x * cam.resolution.y; + const int traceDepth = hst_scene->state.traceDepth; + printf("Trace depth : %d\n", traceDepth); + const Camera &cam = hst_scene->state.camera; + const int pixelcount = cam.resolution.x * cam.resolution.y; // 2D block for generating ray from camera - const dim3 blockSize2d(8, 8); - const dim3 blocksPerGrid2d( - (cam.resolution.x + blockSize2d.x - 1) / blockSize2d.x, - (cam.resolution.y + blockSize2d.y - 1) / blockSize2d.y); + const dim3 blockSize2d(8, 8); + const dim3 blocksPerGrid2d( + (cam.resolution.x + blockSize2d.x - 1) / blockSize2d.x, + (cam.resolution.y + blockSize2d.y - 1) / blockSize2d.y); // 1D block for path tracing const int blockSize1d = 128; - /////////////////////////////////////////////////////////////////////////// - - // Recap: - // * Initialize array of path rays (using rays that come out of the camera) - // * You can pass the Camera object to that kernel. - // * Each path ray must carry at minimum a (ray, color) pair, - // * where color starts as the multiplicative identity, white = (1, 1, 1). - // * This has already been done for you. - // * For each depth: - // * Compute an intersection in the scene for each path ray. - // A very naive version of this has been implemented for you, but feel - // free to add more primitives and/or a better algorithm. - // Currently, intersection distance is recorded as a parametric distance, - // t, or a "distance along the ray." t = -1.0 indicates no intersection. - // * Color is attenuated (multiplied) by reflections off of any object - // * TODO: Stream compact away all of the terminated paths. - // You may use either your implementation or `thrust::remove_if` or its - // cousins. - // * Note that you can't really use a 2D kernel launch any more - switch - // to 1D. - // * TODO: Shade the rays that intersected something or didn't bottom out. - // That is, color the ray by performing a color computation according - // to the shader, then generate a new ray to continue the ray path. - // We recommend just updating the ray's PathSegment in place. - // Note that this step may come before or after stream compaction, - // since some shaders you write may also cause a path to terminate. - // * Finally, add this iteration's results to the image. This has been done - // for you. - - // TODO: perform one iteration of path tracing - - generateRayFromCamera <<>>(cam, iter, traceDepth, dev_paths); + /////////////////////////////////////////////////////////////////////////// + + // Recap: + // * Initialize array of path rays (using rays that come out of the camera) + // * You can pass the Camera object to that kernel. + // * Each path ray must carry at minimum a (ray, color) pair, + // * where color starts as the multiplicative identity, white = (1, 1, 1). + // * This has already been done for you. + // * For each depth: + // * Compute an intersection in the scene for each path ray. + // A very naive version of this has been implemented for you, but feel + // free to add more primitives and/or a better algorithm. + // Currently, intersection distance is recorded as a parametric distance, + // t, or a "distance along the ray." t = -1.0 indicates no intersection. + // * Color is attenuated (multiplied) by reflections off of any object + // * TODO: Stream compact away all of the terminated paths. + // You may use either your implementation or `thrust::remove_if` or its + // cousins. + // * Note that you can't really use a 2D kernel launch any more - switch + // to 1D. + // * TODO: Shade the rays that intersected something or didn't bottom out. + // That is, color the ray by performing a color computation according + // to the shader, then generate a new ray to continue the ray path. + // We recommend just updating the ray's PathSegment in place. + // Note that this step may come before or after stream compaction, + // since some shaders you write may also cause a path to terminate. + // * Finally, add this iteration's results to the image. This has been done + // for you. + + // TODO: perform one iteration of path tracing + + generateRayFromCamera << > >(cam, iter, traceDepth, dev_paths); checkCUDAError("generate camera ray"); int depth = 0; PathSegment* dev_path_end = dev_paths + pixelcount; int num_paths = dev_path_end - dev_paths; + //PathSegment *tmp_segment = new PathSegment[pixelcount]; + //PathSegment *tmp_segment_end = tmp_segment + pixelcount; + + PathSegment *tmp_segment; + cudaMalloc(&tmp_segment, pixelcount * sizeof(PathSegment)); + PathSegment *tmp_segment_end = tmp_segment + pixelcount; + // --- PathSegment Tracing Stage --- // Shoot ray into scene, bounce between objects, push shading chunks - bool iterationComplete = false; + bool iterationComplete = false; + bool firstBounce = FIRST_BOUNCE_CACHE; while (!iterationComplete) { + num_paths = dev_path_end - dev_paths; + printf("New iteration: %d paths left\n", num_paths); + + // clean shading chunks + cudaMemset(dev_intersections, 0, num_paths * sizeof(ShadeableIntersection)); + + // tracing + dim3 numblocksPathSegmentTracing = (num_paths + blockSize1d - 1) / blockSize1d; + + if (!firstBounce) + { + computeIntersections << > > ( + depth + , num_paths + , dev_paths + , dev_geoms + , hst_scene->geoms.size() + , dev_intersections + ); + checkCUDAError("trace one bounce"); + cudaDeviceSynchronize(); + depth++; + printf("Compute intersection \n"); + } + else if (iter == 1) + { + // first bounce of first iteration, construct cache. + computeIntersections << < numblocksPathSegmentTracing, blockSize1d >> > ( + depth, + num_paths, + dev_paths, + dev_geoms, + hst_scene->geoms.size(), + dev_intersections_cache); + checkCUDAError("trace one bounce"); + cudaDeviceSynchronize(); + depth++; + printf("Compute first bounce intersection \n"); + } - // clean shading chunks - cudaMemset(dev_intersections, 0, pixelcount * sizeof(ShadeableIntersection)); - - // tracing - dim3 numblocksPathSegmentTracing = (num_paths + blockSize1d - 1) / blockSize1d; - computeIntersections <<>> ( - depth - , num_paths - , dev_paths - , dev_geoms - , hst_scene->geoms.size() - , dev_intersections - ); - checkCUDAError("trace one bounce"); - cudaDeviceSynchronize(); - depth++; - - - // TODO: - // --- Shading Stage --- - // Shade path segments based on intersections and generate new rays by - // evaluating the BSDF. - // Start off with just a big kernel that handles all the different - // materials you have in the scenefile. - // TODO: compare between directly shading the path segments and shading - // path segments that have been reshuffled to be contiguous in memory. - - shadeFakeMaterial<<>> ( - iter, - num_paths, - dev_intersections, - dev_paths, - dev_materials - ); - iterationComplete = true; // TODO: should be based off stream compaction results. + // TODO: + // --- Shading Stage --- + // Shade path segments based on intersections and generate new rays by + // evaluating the BSDF. + // Start off with just a big kernel that handles all the different + // materials you have in the scenefile. + // TODO: compare between directly shading the path segments and shading + // path segments that have been reshuffled to be contiguous in memory. + + if (firstBounce) + { + shadeRealMaterial << > >( + iter, + num_paths, + dev_intersections_cache, + dev_paths, + dev_materials); + checkCUDAError("shade one bounce"); + printf("Shade one bounce using cache complete\n"); + } + else + { + shadeRealMaterial << > >( + iter, + num_paths, + dev_intersections, + dev_paths, + dev_materials); + checkCUDAError("shade one bounce"); + printf("Shade one bounce complete\n"); + } + + // stream compaction + //cudaMemcpy(tmp_segment, dev_paths, num_paths * sizeof(PathSegment), cudaMemcpyDeviceToDevice); + + double time; + // first compact ones with remaining bounces. + int nonZeroCount = StreamCompaction::Common::pathCompact(num_paths, tmp_segment, dev_paths, time, blockSize1d, true); + // dev_path_end should be the start point of 0 on the original dev_paths. + dev_path_end = dev_paths + nonZeroCount; + // tmp_segment_end should be the start point of 0 on tmp_segment. + tmp_segment_end = tmp_segment + nonZeroCount; + // now we have 1s on tmp_segment to tmp_segment_end. we need to compact 0 as well. + int zeroCount = StreamCompaction::Common::pathCompact(num_paths, tmp_segment_end, dev_paths, time, blockSize1d, false); + // now we have 0s as well, copy both back to dev_paths. + cudaMemcpy(dev_paths, tmp_segment, nonZeroCount * sizeof(PathSegment), cudaMemcpyDeviceToDevice); + cudaMemcpy(dev_path_end, tmp_segment_end, zeroCount * sizeof(PathSegment), cudaMemcpyDeviceToDevice); + checkCUDAError("Stream compaction."); + + // thurst implementation + // Do stream compaction on dev_paths to remove finished rays. + //cudaMemcpy(tmp_segment, dev_paths, num_paths * sizeof(PathSegment), cudaMemcpyDeviceToHost); + //printf("cuda memcpy complete. pixel count:%d\n", num_paths); + + //// rearrange dev_paths to put the ones with bounces left to the front. + //tmp_segment_end = thrust::partition(tmp_segment, tmp_segment_end, PathRemainingBounceNonZeroTest()); + //printf("thrust partition complete. non-zero number: %d\n", tmp_segment_end - tmp_segment); + + //cudaMemcpy(dev_paths, tmp_segment, num_paths * sizeof(PathSegment), cudaMemcpyHostToDevice); + //dev_path_end = dev_paths + (tmp_segment_end - tmp_segment); + //printf("cuda memcpy back complete %d path left\n", dev_path_end - dev_paths); + + //checkCUDAError("thrust stream compaction"); + + if (dev_path_end <= dev_paths) + { + iterationComplete = true; // TODO: should be based off stream compaction results. + printf("Complete one iteration..."); + } + + firstBounce = false; } - // Assemble this iteration and apply it to the image - dim3 numBlocksPixels = (pixelcount + blockSize1d - 1) / blockSize1d; - finalGather<<>>(num_paths, dev_image, dev_paths); + // check path + //cudaMemcpy(tmp_segment, dev_paths, pixelcount * sizeof(PathSegment), cudaMemcpyDeviceToHost); + //printf("color of some pixel %f %f %f\n", tmp_segment[0].color.r, tmp_segment[0].color.g, tmp_segment[0].color.b); + //printf("color of some pixel %f %f %f\n", tmp_segment[1].color.r, tmp_segment[1].color.g, tmp_segment[1].color.b); + //printf("color of some pixel %f %f %f\n", tmp_segment[50000].color.r, tmp_segment[50000].color.g, tmp_segment[50000].color.b); - /////////////////////////////////////////////////////////////////////////// - // Send results to OpenGL buffer for rendering - sendImageToPBO<<>>(pbo, cam.resolution, iter, dev_image); + // Assemble this iteration and apply it to the image + dim3 numBlocksPixels = (pixelcount + blockSize1d - 1) / blockSize1d; + finalGather << > >(pixelcount, dev_image, dev_paths); - // Retrieve image from GPU - cudaMemcpy(hst_scene->state.image.data(), dev_image, - pixelcount * sizeof(glm::vec3), cudaMemcpyDeviceToHost); + /////////////////////////////////////////////////////////////////////////// - checkCUDAError("pathtrace"); + // Send results to OpenGL buffer for rendering + sendImageToPBO << > >(pbo, cam.resolution, iter, dev_image); + + // Retrieve image from GPU + cudaMemcpy(hst_scene->state.image.data(), dev_image, + pixelcount * sizeof(glm::vec3), cudaMemcpyDeviceToHost); + + cudaFree(tmp_segment); + checkCUDAError("pathtrace"); } + + + + + + + diff --git a/src/sceneStructs.h b/src/sceneStructs.h index b38b820..047d420 100644 --- a/src/sceneStructs.h +++ b/src/sceneStructs.h @@ -7,6 +7,8 @@ #define BACKGROUND_COLOR (glm::vec3(0.0f)) +#define FIRST_BOUNCE_CACHE 1 + enum GeomType { SPHERE, CUBE, From fbae3ae45fe228a50cfa9f9b1a85068cc978e519 Mon Sep 17 00:00:00 2001 From: BowenBao Date: Sat, 8 Oct 2016 16:30:45 -0400 Subject: [PATCH 2/8] glass --- scenes/cornell.txt | 25 +++++++++++--- src/pathtrace.cu | 84 +++++++++++++++++++++++++++++++++++++++------- src/sceneStructs.h | 1 + src/utilities.h | 3 ++ 4 files changed, 96 insertions(+), 17 deletions(-) diff --git a/scenes/cornell.txt b/scenes/cornell.txt index e88bb6a..e3fbdaa 100644 --- a/scenes/cornell.txt +++ b/scenes/cornell.txt @@ -50,12 +50,12 @@ EMITTANCE 0 // Glass MATERIAL 5 -RGB 1 1 1 -SPECEX 0 -SPECRGB 0 0 0 +RGB .85 .85 .85 +SPECEX 1 +SPECRGB 1 1 1 REFL 0 REFR 1 -REFRIOR 0 +REFRIOR 2.2 EMITTANCE 0 // Camera @@ -146,4 +146,19 @@ OBJECT 9 cube material 0 TRANS 5 5 0 -SCALE .3 3 3 \ No newline at end of file +SCALE .3 3 3 + +// glass cube +OBJECT 10 +cube +material 5 +TRANS 3 3 4 +ROTAT 2 10 7 +SCALE 1 1 1 + +// glass cube 2 +OBJECT 11 +cube +material 5 +TRANS 1.2 5.5 3 +SCALE 1.5 1 1 \ No newline at end of file diff --git a/src/pathtrace.cu b/src/pathtrace.cu index f6b9f28..b2da438 100644 --- a/src/pathtrace.cu +++ b/src/pathtrace.cu @@ -362,6 +362,32 @@ void pathtraceFree() { checkCUDAError("pathtraceFree"); } +__host__ __device__ float getFresnelCoef(const glm::vec3& direction, const glm::vec3 materialNorm) +{ + //float NdotI = glm::dot(direction, materialNorm); + //float etai = 1, etat = 1.5; + + //glm::vec3 norm = materialNorm; + + //if (NdotI < 0) + //{ + // NdotI = -NdotI; + //} + //else + //{ + // norm = -norm; + // float tmp = etai; + // etai = etat; + // etat = tmp; + //} + + //float eta = etai / etat; + + float r0 = glm::pow((GLASS_AIR_RATIO - 1.0f) / (GLASS_AIR_RATIO + 1.0f), 2); + return r0 + (1.0f - r0) * glm::pow(1.0f - glm::dot(materialNorm, -direction), 5); +} + + /** * Generate PathSegments with rays from the camera through the screen into the * scene, which is the first bounce of rays. @@ -387,6 +413,7 @@ __global__ void generateRayFromCamera(Camera cam, int iter, int traceDepth, Path - cam.right * cam.pixelLength.x * ((float)x - (float)cam.resolution.x * 0.5f) - cam.up * cam.pixelLength.y * ((float)y - (float)cam.resolution.y * 0.5f) ); + segment.ray.outside = true; segment.pixelIndex = index; segment.remainingBounces = traceDepth; @@ -417,7 +444,7 @@ __global__ void computeIntersections( glm::vec3 normal; float t_min = FLT_MAX; int hit_geom_index = -1; - bool outside = true; + //bool outside = true; glm::vec3 tmp_intersect; glm::vec3 tmp_normal; @@ -430,11 +457,11 @@ __global__ void computeIntersections( if (geom.type == CUBE) { - t = boxIntersectionTest(geom, pathSegment.ray, tmp_intersect, tmp_normal, outside); + t = boxIntersectionTest(geom, pathSegment.ray, tmp_intersect, tmp_normal, pathSegment.ray.outside); } else if (geom.type == SPHERE) { - t = sphereIntersectionTest(geom, pathSegment.ray, tmp_intersect, tmp_normal, outside); + t = sphereIntersectionTest(geom, pathSegment.ray, tmp_intersect, tmp_normal, pathSegment.ray.outside); } // TODO: add more intersection tests here... triangle? metaball? CSG? @@ -549,6 +576,7 @@ __global__ void shadeRealMaterial( //pathSegments[idx].color *= (materialColor * lightTerm) * 0.3f + ((1.0f - intersection.t * 0.02f) * materialColor) * 0.7f; //pathSegments[idx].color *= u01(rng); // apply some noise because why not pathSegments[idx].color *= materialColor; + // BSDF if (material.hasReflective) { @@ -574,14 +602,47 @@ __global__ void shadeRealMaterial( } else if (material.hasRefractive) { - // snell's law - // currently use diffuse. - glm::vec3 new_direction = calculateRandomDirectionInHemisphere(intersection.surfaceNormal, - rng); - glm::vec3 new_origin = pathSegments[idx].ray.direction * intersection.t + pathSegments[idx].ray.origin + EPSILON * new_direction; - - pathSegments[idx].ray.direction = new_direction; - pathSegments[idx].ray.origin = new_origin; + float cosi = glm::dot(pathSegments[idx].ray.direction, intersection.surfaceNormal); + float etai = 1, etat = 1.5; + glm::vec3 n = intersection.surfaceNormal; + if (cosi < 0) + { + cosi = -cosi; + } + else + { + float tmp = etai; + etai = etat; + etat = tmp; + } + + float eta = etai / etat; + float k = 1 - eta * eta * (1 - cosi * cosi); + + if (k < 0) + { + // reflection + glm::vec3 new_direction = glm::reflect(pathSegments[idx].ray.direction, intersection.surfaceNormal); + glm::vec3 new_origin = pathSegments[idx].ray.direction * intersection.t + pathSegments[idx].ray.origin + EPSILON * new_direction; + + pathSegments[idx].ray.direction = new_direction; + pathSegments[idx].ray.origin = new_origin; + } + else + { + // refraction + glm::vec3 new_direction = (eta * cosi - glm::sqrt(k)) * n + pathSegments[idx].ray.direction * eta; + glm::vec3 new_origin = pathSegments[idx].ray.direction * intersection.t + pathSegments[idx].ray.origin + EPSILON_GLASS * new_direction; + + //printf("refraction light origin %f,%f,%f direction %f,%f,%f to new origin %f,%f,%f direction %f,%f,%f\n", + // pathSegments[idx].ray.origin.x, pathSegments[idx].ray.origin.y, pathSegments[idx].ray.origin.z, + // pathSegments[idx].ray.direction.x, pathSegments[idx].ray.direction.y, pathSegments[idx].ray.direction.z, + // new_origin.x, new_origin.y, new_origin.z, + // new_direction.x, new_direction.y, new_direction.z + // ); + pathSegments[idx].ray.direction = new_direction; + pathSegments[idx].ray.origin = new_origin; + } } else { @@ -592,7 +653,6 @@ __global__ void shadeRealMaterial( pathSegments[idx].ray.direction = new_direction; pathSegments[idx].ray.origin = new_origin; - } pathSegments[idx].remainingBounces--; } diff --git a/src/sceneStructs.h b/src/sceneStructs.h index 047d420..ed6c1f1 100644 --- a/src/sceneStructs.h +++ b/src/sceneStructs.h @@ -17,6 +17,7 @@ enum GeomType { struct Ray { glm::vec3 origin; glm::vec3 direction; + bool outside; }; struct Geom { diff --git a/src/utilities.h b/src/utilities.h index abb4f27..e0fbe56 100644 --- a/src/utilities.h +++ b/src/utilities.h @@ -13,6 +13,9 @@ #define TWO_PI 6.2831853071795864769252867665590057683943f #define SQRT_OF_ONE_THIRD 0.5773502691896257645091487805019574556476f #define EPSILON 0.00001f +#define EPSILON_GLASS 0.001f +#define GLASS_AIR_RATIO 1.5f +#define AIR_GLASS_RATIO 0.66666666666666666666666666666666f namespace utilityCore { extern float clamp(float f, float min, float max); From e7df073810894915e5278e87798040d322e80285 Mon Sep 17 00:00:00 2001 From: BowenBao Date: Sat, 8 Oct 2016 17:10:45 -0400 Subject: [PATCH 3/8] antialiasing --- scenes/cornell.txt | 9 ++++++++- src/pathtrace.cu | 16 ++++++++++++++-- src/sceneStructs.h | 3 ++- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/scenes/cornell.txt b/scenes/cornell.txt index e3fbdaa..a56dac5 100644 --- a/scenes/cornell.txt +++ b/scenes/cornell.txt @@ -161,4 +161,11 @@ OBJECT 11 cube material 5 TRANS 1.2 5.5 3 -SCALE 1.5 1 1 \ No newline at end of file +SCALE 1.5 1 1 + +// glass cube 3 +OBJECT 12 +cube +material 5 +TRANS -3.49 .01 -3.49 +SCALE 3 3 3 \ No newline at end of file diff --git a/src/pathtrace.cu b/src/pathtrace.cu index b2da438..0d4283f 100644 --- a/src/pathtrace.cu +++ b/src/pathtrace.cu @@ -403,15 +403,27 @@ __global__ void generateRayFromCamera(Camera cam, int iter, int traceDepth, Path if (x < cam.resolution.x && y < cam.resolution.y) { int index = x + (y * cam.resolution.x); + + thrust::default_random_engine rng = makeSeededRandomEngine(iter, index, 0); + thrust::uniform_real_distribution u01(0, 1); + PathSegment & segment = pathSegments[index]; segment.ray.origin = cam.position; segment.color = glm::vec3(1.0f, 1.0f, 1.0f); // TODO: implement antialiasing by jittering the ray + float x_anti = x; + float y_anti = y; + if (ANTIALIASING && !FIRST_BOUNCE_CACHE) + { + x_anti += u01(rng) / 2; + y_anti += u01(rng) / 2; + } + segment.ray.direction = glm::normalize(cam.view - - cam.right * cam.pixelLength.x * ((float)x - (float)cam.resolution.x * 0.5f) - - cam.up * cam.pixelLength.y * ((float)y - (float)cam.resolution.y * 0.5f) + - cam.right * cam.pixelLength.x * ((float)x_anti - (float)cam.resolution.x * 0.5f) + - cam.up * cam.pixelLength.y * ((float)y_anti - (float)cam.resolution.y * 0.5f) ); segment.ray.outside = true; diff --git a/src/sceneStructs.h b/src/sceneStructs.h index ed6c1f1..18d4444 100644 --- a/src/sceneStructs.h +++ b/src/sceneStructs.h @@ -7,7 +7,8 @@ #define BACKGROUND_COLOR (glm::vec3(0.0f)) -#define FIRST_BOUNCE_CACHE 1 +#define FIRST_BOUNCE_CACHE 0 +#define ANTIALIASING 1 enum GeomType { SPHERE, From 1f049a528bd417a4685a6e3d087fad5097f0724e Mon Sep 17 00:00:00 2001 From: BowenBao Date: Sat, 8 Oct 2016 21:20:40 -0400 Subject: [PATCH 4/8] direct lighting --- scenes/cornell.txt | 11 +++- src/pathtrace.cu | 159 +++++++++++++++++++++++++-------------------- src/sceneStructs.h | 2 + 3 files changed, 99 insertions(+), 73 deletions(-) diff --git a/scenes/cornell.txt b/scenes/cornell.txt index a56dac5..bcfd6bb 100644 --- a/scenes/cornell.txt +++ b/scenes/cornell.txt @@ -134,6 +134,7 @@ TRANS 1 6 -1.5 ROTAT 0 0 0 SCALE 3 3 3 + // Left wall light OBJECT 8 cube @@ -168,4 +169,12 @@ OBJECT 12 cube material 5 TRANS -3.49 .01 -3.49 -SCALE 3 3 3 \ No newline at end of file +SCALE 3 3 3 + +// Sphere 3 +//OBJECT 13 +//sphere +//material 5 +//TRANS -4.249 9.249 -4.249 +//ROTAT 0 0 0 +//SCALE 1.5 1.5 1.5 \ No newline at end of file diff --git a/src/pathtrace.cu b/src/pathtrace.cu index 0d4283f..91a4829 100644 --- a/src/pathtrace.cu +++ b/src/pathtrace.cu @@ -74,8 +74,16 @@ namespace StreamCompaction { if (index >= n) return; int flagValue = 0; if (compactOnes) flagValue = 1; - if (idata[index].remainingBounces > 0) bools[index] = flagValue; - else bools[index] = 1 - flagValue; + if (DIRECT_LIGHTING) + { + if (!idata[index].bounceCompleted) bools[index] = flagValue; + else bools[index] = 1 - flagValue; + } + else + { + if (idata[index].remainingBounces > 0) bools[index] = flagValue; + else bools[index] = 1 - flagValue; + } } /** @@ -429,6 +437,7 @@ __global__ void generateRayFromCamera(Camera cam, int iter, int traceDepth, Path segment.pixelIndex = index; segment.remainingBounces = traceDepth; + segment.bounceCompleted = false; } } @@ -502,56 +511,29 @@ __global__ void computeIntersections( } } -// LOOK: "fake" shader demonstrating what you might do with the info in -// a ShadeableIntersection, as well as how to use thrust's random number -// generator. Observe that since the thrust random number generator basically -// adds "noise" to the iteration, the image should start off noisy and get -// cleaner as more iterations are computed. -// -// Note that this shader does NOT do a BSDF evaluation! -// Your shaders should handle that - this can allow techniques such as -// bump mapping. -__global__ void shadeFakeMaterial( - int iter - , int num_paths - , ShadeableIntersection * shadeableIntersections - , PathSegment * pathSegments - , Material * materials - ) +__global__ void computeDirectLighting(int iter, int num_paths, PathSegment *dev_paths, const Geom &dev_geoms) { int idx = blockIdx.x * blockDim.x + threadIdx.x; - if (idx < num_paths) + if (idx >= num_paths) return; + + glm::vec3 lightPoint = dev_geoms.translation; + dev_paths[idx].ray.direction = glm::normalize(lightPoint - dev_paths[idx].ray.origin); +} + +__global__ void shadeDirectLightingMaterial(int iter, int num_paths, + ShadeableIntersection *shadeableIntersections, PathSegment *pathSegment, Material *materials) +{ + int idx = blockIdx.x * blockDim.x + threadIdx.x; + if (idx >= num_paths) return; + ShadeableIntersection intersection = shadeableIntersections[idx]; + if (intersection.t > 0.0f) { - ShadeableIntersection intersection = shadeableIntersections[idx]; - if (intersection.t > 0.0f) { // if the intersection exists... - // Set up the RNG - // LOOK: this is how you use thrust's RNG! Please look at - // makeSeededRandomEngine as well. - thrust::default_random_engine rng = makeSeededRandomEngine(iter, idx, 0); - thrust::uniform_real_distribution u01(0, 1); - - Material material = materials[intersection.materialId]; - glm::vec3 materialColor = material.color; - - // If the material indicates that the object was a light, "light" the ray - if (material.emittance > 0.0f) { - pathSegments[idx].color *= (materialColor * material.emittance); - } - // Otherwise, do some pseudo-lighting computation. This is actually more - // like what you would expect from shading in a rasterizer like OpenGL. - // TODO: replace this! you should be able to start with basically a one-liner - else { - float lightTerm = glm::dot(intersection.surfaceNormal, glm::vec3(0.0f, 1.0f, 0.0f)); - pathSegments[idx].color *= (materialColor * lightTerm) * 0.3f + ((1.0f - intersection.t * 0.02f) * materialColor) * 0.7f; - pathSegments[idx].color *= u01(rng); // apply some noise because why not - } - // If there was no intersection, color the ray black. - // Lots of renderers use 4 channel color, RGBA, where A = alpha, often - // used for opacity, in which case they can indicate "no opacity". - // This can be useful for post-processing and image compositing. - } - else { - pathSegments[idx].color = glm::vec3(0.0f); + Material material = materials[intersection.materialId]; + if (material.emittance > 0.0f) + { + // hit light object + pathSegment[idx].color *= material.color * material.emittance; + pathSegment[idx].bounceCompleted = true; } } } @@ -581,6 +563,7 @@ __global__ void shadeRealMaterial( // Object is light pathSegments[idx].color *= materialColor *material.emittance; pathSegments[idx].remainingBounces = 0; + pathSegments[idx].bounceCompleted = true; } else { @@ -674,6 +657,7 @@ __global__ void shadeRealMaterial( // hit nothing pathSegments[idx].color = glm::vec3(0.0f); pathSegments[idx].remainingBounces = 0; + pathSegments[idx].bounceCompleted = true; } } @@ -718,6 +702,7 @@ void pathtrace(uchar4 *pbo, int frame, int iter) { printf("Trace depth : %d\n", traceDepth); const Camera &cam = hst_scene->state.camera; const int pixelcount = cam.resolution.x * cam.resolution.y; + const int maxDepth = hst_scene->state.traceDepth; // 2D block for generating ray from camera const dim3 blockSize2d(8, 8); @@ -868,37 +853,67 @@ void pathtrace(uchar4 *pbo, int frame, int iter) { cudaMemcpy(dev_path_end, tmp_segment_end, zeroCount * sizeof(PathSegment), cudaMemcpyDeviceToDevice); checkCUDAError("Stream compaction."); - // thurst implementation - // Do stream compaction on dev_paths to remove finished rays. - //cudaMemcpy(tmp_segment, dev_paths, num_paths * sizeof(PathSegment), cudaMemcpyDeviceToHost); - //printf("cuda memcpy complete. pixel count:%d\n", num_paths); - - //// rearrange dev_paths to put the ones with bounces left to the front. - //tmp_segment_end = thrust::partition(tmp_segment, tmp_segment_end, PathRemainingBounceNonZeroTest()); - //printf("thrust partition complete. non-zero number: %d\n", tmp_segment_end - tmp_segment); - - //cudaMemcpy(dev_paths, tmp_segment, num_paths * sizeof(PathSegment), cudaMemcpyHostToDevice); - //dev_path_end = dev_paths + (tmp_segment_end - tmp_segment); - //printf("cuda memcpy back complete %d path left\n", dev_path_end - dev_paths); + if (DIRECT_LIGHTING) + { + // check depth against maxDepth + if (depth >= maxDepth) + { + num_paths = dev_path_end - dev_paths; + dim3 numblocksPathSegmentTracing = (num_paths + blockSize1d - 1) / blockSize1d; + // pick one light source + int geomIdx = 0; + for (auto geom : hst_scene->geoms) + { + if (hst_scene->materials[geom.materialid].emittance > 0) + { + break; + } + geomIdx++; + } - //checkCUDAError("thrust stream compaction"); + if (geomIdx >= hst_scene->geoms.size()) + { + // no light source found. + iterationComplete = true; + break; + } - if (dev_path_end <= dev_paths) + // apply direct lighting. Update final ray direction. + computeDirectLighting<<>>(iter, num_paths, dev_paths, dev_geoms[geomIdx]); + // compute intersection. + // clean shading chunks + cudaMemset(dev_intersections, 0, num_paths * sizeof(ShadeableIntersection)); + computeIntersections << > > ( + depth + , num_paths + , dev_paths + , dev_geoms + , hst_scene->geoms.size() + , dev_intersections + ); + checkCUDAError("trace direct lighting bounce"); + cudaDeviceSynchronize(); + depth++; + printf("Compute direct lighting intersection \n"); + shadeDirectLightingMaterial<<>>(iter, num_paths, dev_intersections, dev_paths, dev_materials); + checkCUDAError("shade direct lighting bounce"); + printf("Shade direct lighting bounce using complete\n"); + + iterationComplete = true; + } + } + else { - iterationComplete = true; // TODO: should be based off stream compaction results. - printf("Complete one iteration..."); + if (dev_path_end <= dev_paths) + { + iterationComplete = true; + printf("Complete one iteration..."); + } } firstBounce = false; } - // check path - //cudaMemcpy(tmp_segment, dev_paths, pixelcount * sizeof(PathSegment), cudaMemcpyDeviceToHost); - //printf("color of some pixel %f %f %f\n", tmp_segment[0].color.r, tmp_segment[0].color.g, tmp_segment[0].color.b); - //printf("color of some pixel %f %f %f\n", tmp_segment[1].color.r, tmp_segment[1].color.g, tmp_segment[1].color.b); - //printf("color of some pixel %f %f %f\n", tmp_segment[50000].color.r, tmp_segment[50000].color.g, tmp_segment[50000].color.b); - - // Assemble this iteration and apply it to the image dim3 numBlocksPixels = (pixelcount + blockSize1d - 1) / blockSize1d; finalGather << > >(pixelcount, dev_image, dev_paths); diff --git a/src/sceneStructs.h b/src/sceneStructs.h index 18d4444..7dc0f7d 100644 --- a/src/sceneStructs.h +++ b/src/sceneStructs.h @@ -9,6 +9,7 @@ #define FIRST_BOUNCE_CACHE 0 #define ANTIALIASING 1 +#define DIRECT_LIGHTING 1 enum GeomType { SPHERE, @@ -68,6 +69,7 @@ struct PathSegment { glm::vec3 color; int pixelIndex; int remainingBounces; + bool bounceCompleted; }; // Use with a corresponding PathSegment to do: From b1113dd871cf73ef5a0c5a46a9ab63c3e10f16aa Mon Sep 17 00:00:00 2001 From: BowenBao Date: Sun, 9 Oct 2016 18:48:48 -0400 Subject: [PATCH 5/8] readme & cleanup remove unused code comments --- README.md | 49 +++++++++- img/antialiasing.png | Bin 0 -> 112633 bytes img/cornell_5000_1000.png | Bin 0 -> 1030017 bytes img/cornell_dl_5000_1000.png | Bin 0 -> 1134596 bytes img/cornell_final.png | Bin 0 -> 1276879 bytes img/cornell_glass.png | Bin 0 -> 1242971 bytes img/overhead.png | Bin 0 -> 17659 bytes img/process_time.png | Bin 0 -> 7003 bytes scenes/cornell.txt | 57 +---------- scenes/cornell_custom.txt | 180 +++++++++++++++++++++++++++++++++++ src/main.cpp | 12 +++ src/pathtrace.cu | 82 ++++++---------- src/sceneStructs.h | 3 - src/stream.cu | 0 src/utilities.h | 6 ++ 15 files changed, 271 insertions(+), 118 deletions(-) create mode 100644 img/antialiasing.png create mode 100644 img/cornell_5000_1000.png create mode 100644 img/cornell_dl_5000_1000.png create mode 100644 img/cornell_final.png create mode 100644 img/cornell_glass.png create mode 100644 img/overhead.png create mode 100644 img/process_time.png create mode 100644 scenes/cornell_custom.txt create mode 100644 src/stream.cu diff --git a/README.md b/README.md index 110697c..16d74a9 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,50 @@ CUDA Path Tracer **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 3** -* (TODO) YOUR NAME HERE -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) +* Bowen Bao +* Tested on: Windows 10, i7-6700K @ 4.00GHz 32GB, GTX 1080 8192MB (Personal Computer) -### (TODO: Your README) +## Overview -*DO NOT* leave the README to the last minute! It is a crucial part of the -project, and we will not be able to grade you without a good README. +Here's the list of features of this project: +1. Core Features: + * Shading kernel with BSDF evaluation. + * Path continuation/termination using Stream Compaction. + * First bounce intersection cache. +2. Extra Features: + * Refraction with Frensel effects using Schlick's approximation. + * Stochastic Sampled Antialiasing. + * Direct lighting. + +![](/img/cornell_final.png) + +## Instruction to Run + +You can change the setup of the program in file utilities.h, where First bounce caching, antialiasing and direct lighting are all toggleable(note that since first bounce caching and antialiasing are conflicting features, only antialiasing is active if both are set to be true). + +## Performance Analysis +### Performance of different implementation + +![](/img/process_time.png) + +Here's the test result for each of the methods. The tests are run with the block size of 128. The average process time of each iteration is shown in the graph. We could observe that the total number of iterations doesn't affect the average performance very much. We could also observe that by using stream compaction, the average process time actually increases. + +![](/img/overhead.png) + +This might due to that in this scenario, the overhead in our case here is mostly on cpu instead of gpu. Adding stream compaction is putting more pressure on the cpu side, since it has to copy the data from device to host and start the stream compaction procedure. Adding stream compaction may be more useful for higher resolution rendering, where the computation on the gpu side becomes the bottleneck. + +## Extra Credits +### Refraction with Frensel effects using Schlick's approximation. +In this part I extended the shader to deal with refraction rays. The final effect can be viewed in the following graph. I followed the algorithm of http://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-shading/reflection-refraction-fresnel in my implementation. As we could observe in the graph, we have both reflection and refraction for the glass material. +![](/img/cornell_glass.png) + +### Stochastic Sampled Antialiasing. +I followed the algorithms in http://paulbourke.net/miscellaneous/aliasing/ when implementing the antialiasing feature. Observe in the following graph that we achieved much better effects with same performance. +![](/img/antialiasing.png) + +### Direct lighting. +Most of the rays are wasted in our previous implementation, as they didn't contribute any color information as they hadn't hit the light source in their "last" bounce. With direct lighting however, we tried to make use of that information by adding an additional bounce at the end to reach the light source and record the color. Following are the comparison of rendering with and without direct lighting. At the same time, we are also comparing how the number of iterations affect the final result. +![](/img/cornell_dl_5000_1000.png) +![](/img/cornell_5000_1000.png) +As we could see in the graph, rendering with direct lighting achieves a brighter image under the same iteration. It also achieves a cleaner image much faster than rendering without direct lighting. diff --git a/img/antialiasing.png b/img/antialiasing.png new file mode 100644 index 0000000000000000000000000000000000000000..bb7fd1d1d882216b42ed93fc12b73e6d4fb4e74a GIT binary patch literal 112633 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