1 / 61

High-Quality Parallel Depth-of-Field Using Line Samples

High-Quality Parallel Depth-of-Field Using Line Samples. Stanley Tzeng , Anjul Patney , Andrew Davidson , Mohamed S. Ebeida , Scott A. Mitchell , John D. Owens University of California, Davis Sandia National Laboratories. Depth of Field is Beautiful. Pixar’s Toy Story 3. The Problem.

floria
Download Presentation

High-Quality Parallel Depth-of-Field Using Line Samples

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. High-Quality Parallel Depth-of-Field Using Line Samples Stanley Tzeng, Anjul Patney, Andrew Davidson,Mohamed S. Ebeida, Scott A. Mitchell,John D. Owens University of California, DavisSandia National Laboratories

  2. Depth of Field is Beautiful Pixar’s Toy Story 3

  3. The Problem Good noise-reducing Depth-of-Field effects takes a lot of point samples!

  4. The Problem Good noise-reducing Depth-of-Field effects takes a lot of point samples!

  5. The Problem Good noise-reducing Depth-of-Field effects takes a lot of point samples!

  6. The Problem Good noise-reducing Depth-of-Field effects takes a lot of point samples!

  7. This Talk • Instead of point samples, use line samples! • Heavier compute per sample, but need fewer samples for good results • A tiled line sampling renderer for graphics hardware • How to make line sampling work within tight memory constraints?

  8. Line Samples A dimensional extension of point samples Gribel et al. : High-Quality Spatio-Temporal Rendering using Semi-Analytical Visibility  Jones and Perry: Antialiasing with Line Samples

  9. Point Samples in a pixel Scene primitive Pixel

  10. Point Samples in a pixel Shoot samples Pixel

  11. Point Samples in a pixel Intersect & Generate colored samples Pixel

  12. Point Samples in a pixel Composite Pixel

  13. Line Samples in a pixel Pixel

  14. Line Samples in a pixel Shoot samples Pixel

  15. Line Samples in a pixel Intersect & Generate colored line segments Pixel

  16. Line Samples in a pixel Composite Pixel

  17. Side Note Samples can be in any arbitrary orientation. Pixel

  18. Depth of Field Sampling • Point Sampling: Generate 4D point samples in (x,y,u,v) space. • Point on screen (x,y) + • Point on lens (u,v) • Line Sampling: Fix a point in screen space (x,y), sample along the lens in (u,v) space.

  19. How to Sample Along the Lens? Grid Pinwheel • Good area coverage • Uneven line lengths • Even Line Lengths • Bias towards center

  20. How to Sample Along the Lens? Pinwheel • Even Line Lengths • Bias towards center Reweigh the samples obtained

  21. Line Samples for DoF v Step 1: Project scene geometry from screen space to lens space. y u x

  22. Line Samples for DoF v Step 2: Sample the lens using a wagonwheel pattern y u x

  23. Line Samples for DoF v Step 3: Record intersected segments y u x

  24. Line Samples for DoF v Step 4: Composite segments to pixel color y u x

  25. Line Samples using DoF

  26. Line Samples using DoF

  27. Line Samples using DoF

  28. Line Samples using DoF

  29. Comparison Point Samples Line Samples

  30. Comparison Point Samples Line Samples Metric of Comparison!

  31. Line Sampling on the GPU What’s really important to us: • Easy parallel processing • Bounded memory requirements • Shared memory is limited • Games require fixed storage

  32. Parallel Implementation: 2 Kernels Intersect line samples with scene geometry, & generate line segments Global Line Segment Buffer Composite and filter segments into final pixels

  33. Parallel Implementation: 2 Kernels Intersect line samples with scene geometry, & generate line segments Problem Occurs Here! Global Line Segment Buffer Composite and filter segments into final pixels

  34. Problem 800 x 600 x 16 x 16 x 24 width height # line samples # line segments Bytes per segment

  35. Binning Shared Memory Global Memory Split screen into tiles – use shared memory instead of global memory Combine the two kernels into one

  36. New Problem ? Line Segment Buffer Line Segments New problem: Shared memory is small.

  37. Solution: Keep only the important line segments! Line Segments Line Segments

  38. Heuristics Green Segment Occluded Green Segment Too Small Only keep segments that contribute the most to the color of the sample

  39. Heuristics Green Segment Occluded Blue Segment Merged Green Segment Too Small Only keep segments that contribute the most to the color of the sample

  40. Heuristics Rules: Discard if segment is too short Discard if segment is occluded Merge if segments are similar A small amount of shared memory = small tiles Another Problem!

  41. Bins Overflow 4x4 bins, 256 max triangles

  42. Bins Overflow 4x4 bins, 512 max triangles

  43. Bins Overflow 4x4 bins, 1024 max triangles

  44. Bins Overflow Overflow because of depth Overflow because of large CoC.

  45. Bins Overflow Overflow because of depth Overflow because of large CoC.

  46. Bins Overflow Overflow because of depth Overflow because of large CoC.

  47. Bins Overflow Overflow because of depth Overflow because of large CoC.

  48. Level of Detail Close and blurred Low detail Close and sharp High detail Far and blurred Low detail

  49. Level of Detail • c / a says, in additional to a traditional LoD scheme: • If object is close but very blurred – choose lower LoD • If object is far but still sharp – choose higher LoD No LoD Ground Truth LoD 1/3 as many triangles, and 1.6 x improvement in speed

  50. Final System Structure

More Related