Presentation on theme: "IIIT Hyderabad Hybrid Ray Tracing and Path Tracing of Bezier Surfaces using a mixed hierarchy Rohit Nigam, P. J. Narayanan CVIT, IIIT Hyderabad, Hyderabad,"— Presentation transcript:
IIIT Hyderabad Hybrid Ray Tracing and Path Tracing of Bezier Surfaces using a mixed hierarchy Rohit Nigam, P. J. Narayanan CVIT, IIIT Hyderabad, Hyderabad, India
IIIT Hyderabad Representing a Scene f>0 f<0 f=0 Triangular MeshImplicit Surface Parametric Surface
IIIT Hyderabad Parametric Surface: Motivation Provide compact and effective representation. Remain curved and smooth at arbitrary level of zooming. Memory efficient, in comparison with triangular mesh.
IIIT Hyderabad Bezier Surfaces Bezier Surfaces are the most basic form of parametric surfaces A Bezier Surface can be described as: Q(u,v) = [U][M][P][M] T [V] T where [U] = [u 3 u 2 u 1] and [V] = [v 3 v 2 v 1], 0 ≤ u,v ≤ 1 [M] is the Bezier Basis Matrix [P] is the set of 16 Control Points defining the patch
IIIT Hyderabad Rendering Bezier Surfaces Tessellation based approches –Eisenacher et al.(2009) : View Dependent Adaptive Subdivision Direct Ray Tracing –Geimer et al.(2005) : Newton Iteration –Pabst et al.(2006) : Bezier Clipping + Newton Iteration
IIIT Hyderabad Ray Tracing Bezier Surface Constructing an Accelaration Structure Bounding Volume Hierarchy(BVH)
IIIT Hyderabad Ray Tracing Bezier Surface Ray Traversal through BVH 0123456789 Ray List Outputs Potential Ray-Patch intersections list Initial parameter values
IIIT Hyderabad Ray Tracing Bezier Surface Newton Iteration Picture Courtesy : http://steadyserverpages.com
IIIT Hyderabad Geimer, Abert Approach Based on the flatness criteria, each patch is divided into subpatches. BVH for original surfaces –Bounding boxes of subpatches at leaf nodes. For each potential intersection –Generate initial values for Newton Iteration BVH Nodes 1 2 3 sp1 sp2sp1sp2sp1sp2Subpatches at Leaf Original Curve Subdivided Linear Curve Patch1P2 P3
IIIT Hyderabad Limitation of the Model for GPUs GPU Access time: –High for global memory –Comparatively less for shared memory and registers When subdividing based on flatness criteria, we need to –Store subpatches starting index –Store total number of subpatches –Store initial [u,v] pair for each potential intersection. Thus more global memory operations result in lower throughput. Need to check every subpatch at leaf node
IIIT Hyderabad Our Approach Create a mixed hierarchy, consisting of two hierarchical structures. –The top level BVH tree is constructed from the bounding boxes of original patches. –Leaf nodes represent the original Bezier Surfaces. –Each Patch is divided into fixed size subpatches, hierarchically, using De Casteljau algorithm. –Make subtree for each patch from bounding boxes of the subdivided patches.
IIIT Hyderabad Mixed Hierarchy Structure Newton Iteration applied to original patches –No memory required to store subpatches Fixed depth subtree –Utilize constant degree of bezier surfaces –Utilize shared memory –Apply early termination at subtree level –Leads to tighter bounds –A subdivision depth of 6 was found empirically sufficient.
IIIT Hyderabad Mixed Hierarchy Structure Newton Iteration applied on original patches. –No memory required to store subpatches. Fixed depth makes it possible utilize shared memory. A subtree at lower level leads to early termination at this stage, reducing the (Ray, Bounding Box) intersections. Subdivision also leads to tighter bounds, which further reduces the potential (Ray,Patch) intersections. A subdivision depth of 6 was found empirically sufficient for our scenes.
IIIT Hyderabad GPU Traversal of Mixed Hierarchy Structure A ‘traverse’ kernel traverses the first level of the BVH. –Lists out Potential (Ray,Patch) intersections. –We make use of atomic operations, to provide scalability. ‘Recheck’ kernel parallely processes the generated (ray,patch) list. –This leads to further pruning of the list with tighter subpatch bounding boxes. –We make use of ‘t’ values computed here, to not traverse subpatch nodes with higher values. –This leads to reduced computation and in cases of false positive, a little less accurate initial values. –Lists out the reduced potential (Ray,Patch) intersections. –Generates the initial values for each intersection.
IIIT Hyderabad Hybrid Ray Tracing Start Preprocessing rayTraceGPUrayTraceCPU GPUCPU Point and Normal Ray List Generate Secondary Rays
IIIT Hyderabad Hybrid Ray Tracing Divide the Ray list between CPU and GPU GPU algorithm comprises of three kernels: Traverse : Generate Potential Ray-Patch Intersections Recheck : Further prune intersections and get initial values Newton : Apply Newton iteration to get hit-point CPU stage comprises of: 1. Divide CPU Raylist into 2c threads, where c is number of cores. 2. Intersect with main BVH 3. If intersects, intersect with 2 nd level subtree. 4. Apply Newton iteration to get hit-point
IIIT Hyderabad Results Teapot Model Fps : 64 Bigguy Model Fps : 28.6 Killeroo Model Fps : 19.2 2 Killeroos Fps : 10.6 9 Bigguys Fps : 5.2 System Specs GTX 580 + i7 920 1024x1024
IIIT Hyderabad Path Tracing We extend our ray tracing approach to Global Illumination effects. We use Cook’s approach of Monte Carlo based Stochastic Sampling, to sample the image at appropriate non-uniformly spaced points. Each pixel is sampled for a user defined samples per pixel We apply our data parallel approach to this massive ray list to generate the desired effects.
IIIT Hyderabad Path Tracing Bigguy in a box: 400 spp, 512x512 resolution Rendered in 28.5 minutes
IIIT Hyderabad Path Tracing Bigguy in a box: 1000 spp, 512x512 resolution Rendered in 28.5 minutes
IIIT Hyderabad Path Tracing Bigguy in a box: 3000 spp, 512x512 resolution Rendered in 28.5 minutes
IIIT Hyderabad Path Tracing Bigguy in a box: 5000 spp, 512x512 resolution Rendered in 28.5 minutes
IIIT Hyderabad Path Tracing Bigguy in a box: 10000 spp, 512x512 resolution Rendered in 28.5 minutes
IIIT Hyderabad Conclusion A mixed hierarchy model is proposed to speed up Ray Tracing process. GPU benefits greatly from fixed depth subtree. A hybrid model is proposed, to fully utilize compute power of CPU and GPU. We demonstrate the capability of our method by producing Global Illumination effects for Bezier patches.
Hybrid Ray Tracing Divide the Ray list between CPU and GPU Ratio decided based on compute capabilities GPU algorithm comprises of three kernels: Traverse : Generate Potential Ray-Patch Intersections Recheck : Further prune intersections and get initial values Newton : Apply Newton iteration to get hit-point CPU stage comprises of: 1.Divide CPU Raylist into 2c threads, where c is number of cores. 2.Intersection with main BVH 3.If intersects, further intersection with 2 nd level subtree. 4.Finally, apply Newton iteration and generate hit-point CPU benefits from early ray termination.
IIIT Hyderabad Newton Iteration We represent a ray as intersection of two planes, (n 1,d 1 ) and (n 2,d 2 ) The ray patch intersection equation becomes Q(u,v) represents the point on the patch. We use Newton Iteration to solve for (u,v) Here J is the inverse Jacobian matrix of R.