Font Size: a A A

Research And Implementation Of Real-time Ray Tracing Based On Directcompute

Posted on:2015-06-19Degree:MasterType:Thesis
Country:ChinaCandidate:X L DuFull Text:PDF
GTID:2298330431488491Subject:Computer application technology
Abstract/Summary:PDF Full Text Request
Ray tracing algorithm is a core rendering algorithms in computer graphics, andplays a very important role in realistic graphics rendering. Ray tracing algorithm hasbeen widely applied in the field of offline rendering for its highly realistic rendering,and as people demand higher and higher realism in interactive systems, more and moreresearchers begin to study real-time ray tracing rendering algorithms. However, with thecorresponding high-realistic graphics, ray tracing requires huge amount of computationand time overhead. Recently a hot topic in ray tracing algorithm is to improve its speedby acceleration structures and parallel computing power in GPU.The parallelism of light rays in ray tracing algorithm makes it suitable to takeadvantage of hardware-level parallelism of GPU to improve the speed. Rapiddevelopment of GPGPU has taken it easy to program on GPU. As the latest GPGPUtechnology, threading model and memory model of DirectCompute enable developers todirectly control the distribution of threads. The support for DirectX from NVIDIA andAMD graphics cards makes DirectCompute have great development potential.Acceleration structure is the key to improve the speed of ray tracing algorithm, andits core is how to divide a scene. After introducing the dissolution of uniform grid andSAH of KD-Tree and BVH, based on algorithms in PBRT, this paper implements thecreation of three Acceleration structures on CPU and traversal on GPU. The paperimproves the data structure of node and traversal algorithms to resolve the problem thatdata on CPU cannot be copied and delivered directly to GPU.According to the basic principles of ray tracing, Whitted ray tracing algorithm canbe divided into three stages: generating primary light, intersecting and calculating color.Taking into account the loading of scene model, a ray tracer includes five parts: loadingof scene model, creating acceleration structures, generating primary light, intersectingand calculating color. The first two parts are implemented on CPU, the others are onGPU. On this basis, this article use object-oriented programming to achieve a completeray tracing renderer.Results of executing the ray tracing renderer shows that, when using accelerationstructures such as uniform grid and BVH, DirectCompute-based ray tracing algorithmcan achieve real-time rendering of common models. Meanwhile, BVH is simple and can adapt to the uneven distribution of scene primitives, so it can be used as the firstchoice for acceleration structure in GPU-based ray tracing.
Keywords/Search Tags:ray tracing, DirectCompute, BVH, uniform grid, KD-Tree
PDF Full Text Request
Related items