Download presentation
Presentation is loading. Please wait.
Published byConner Slott Modified over 9 years ago
1
Physically Based Real-time Ray Tracing Ryan Overbeck
2
Overview Ray tracing –Broadest success at solving physically based rendering tasks. –But is slower than Z-Buffer (for primary visibility) Real-time Ray Tracing –Recent algorithmic improvements make real-time ray tracing possible –Most of these algorithmic improvements have only been demonstrated for primary visibility w. point light shadows Physically Based Ray Tracing –Uses Path Tracing / Monte-Carlo ray tracing for physical effects –Consistent algorithmic improvements over the years –Very Slow Currently Real-time and Physically Based ray tracing algorithms don’t work well together
3
Real-time Ray Tracing Ray Packets: Shoot 4 or 4x4 (or more) rays at a time –Neighboring rays take similar paths through the scene –Use SIMD (ie. SSE) instructions to perform one instruction on 4 floating point values at once –Use interval arithmetic to use a single test to represent the entire packet Geometry Proxies: Frustum Traversal, LCTS… –Use bounding geometry to represent a larger group of rays (usually 16x16 – 128x128) Miscellaneous Improvements –Improved Acceleration Structures, –Geometry Intersection tests, –Multi-threading for multi-core architectures, –…
4
Physically Based Ray Tracing Effects –Image anti-aliasing, Motion Blur –Complex Lighting (soft shadows, hard shadows, environment lighting, ambient lighting, inter-reflections…) –Complex Materials (perfect reflection, glossy reflection, subsurface scattering,…) –Film / Lens effects (depth of field, bloom, …) Tools –Intelligent sampling distributions (Stratified Sampling, Importance Sampling, Low discrepancy sampling, Poisson Disc Sampling, …) –Adaptive / Interpolated Sampling –Image / Film processing (filters, tone mapping,…)
5
My Goals Long Term: –Design algorithms to marry real-time ray tracing with physically based ray tracing Short Term: –Build a Framework within which I can experiment Where to start? –MLRT – fastest real-time ray tracer »Would need to make it more general »Highly optimized code very difficult to modify –PBRT – Most general Free physically based ray tracer »Would need to make it fast »Very nice design: easy to modify
6
Progress Started overhaul of PBRT –Tightened up kd-tree traversal code –Added accelerations for ray vs. triangle intersection –Parallelized PBRT -- multi-core processors Tile image space (usually 64x64 tiles) statically assign tiles to threads –Added 4-ray packets for primary rays Shoot 4 rays at a time Use SIMD SSE to accelerate ray traversal
7
Test Setup 512x512 images 1 sample/pixel PBRT low discrepancy sampling for primary samples 2x2 PBRT box filter for image reconstruction 3.0GHz Pentium 4 (2 cores)
8
Test Setup Scenes Sponza (66454 Triangles) Sibenik (80479 Triangles) Buddha (1087720 Triangles)
9
Results SponzaSibenikBuddha 1 rays/ 1 thread 2.778s3.266s3.054s 1 rays/ 2 threads 2.327s2.532s3.489s 1 rays/ 4 threads 2.361s2.534s4.384s 4 rays/ 1 thread 1.055s1.041s1.684s 4 rays/ 2 threads 0.835s0.775s1.656s 4 rays/ 4 threads 0.776s0.819s1.514s
10
Next Steps Tighten up samplers and image filtering –These two are adding ~.3 s to 512x512 render time (almost as much as ray casting) Larger ray packets (esp. 4x4) Add Frustum Traversal Move to secondary effects –This will mark the beginning of new research territory
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.