1 / 49

Fast Global-Illumination on Dynamic Height Fields

Derek Nowrouzezahrai University of Toronto. Fast Global-Illumination on Dynamic Height Fields. John Snyder Microsoft Research. Related Work. static geometry [Sloan02; Ng04; …] dynamic geometry [Bunnell05, Ren06, Sloan07, Ritschel08]. [Sloan&Cohen00]. Related Work.

bill
Download Presentation

Fast Global-Illumination on Dynamic Height Fields

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. Derek Nowrouzezahrai University of Toronto Fast Global-Illumination on Dynamic Height Fields John Snyder Microsoft Research

  2. Related Work • static geometry [Sloan02; Ng04; …] • dynamic geometry [Bunnell05, Ren06, Sloan07, Ritschel08]

  3. [Sloan&Cohen00] Related Work • screen-space shading [Shanmugam07;Ritschel09…] • ignores view-occluded blockers • horizon mapping [Max88; …] • precomputation for hard shadows on static geometry [Dimitrov08]

  4. Related Work • fast soft-shadowing on dynamic height fields [SN08]

  5. Goals • all of [SN08]as well as • dynamic indirect illumination • glossy effects (direct and indirect)

  6. Goals [SN08] Our results

  7. Goals • unified formulation for direct- and indirect-illumination • diffuse and glossy bounces • environmental + directional lighting • dynamic geometry (not precomputed) • real-time performance • simple implementation • limitation: geometry is a height field • applications: • terrain rendering (flight simulators, games, mapping/navigation) • data visualization

  8. Summary of Main Ideas • create height and shading pyramids • sample from pyramid levels • pre-filter data • approximate visibility & incident radiance w/ multi-resolution • compute visibility and radiance at discrete azimuthal directions • determine final spherical visibility and incident radiance

  9. Azimuthal Swaths [SN08] • for smaller area (key) light sources: • restrict azimuthal extent and use m = 3 • get sharper shadows • acts as a geometric mask • only sample where necessary • env lights and incident radiance: • complete swath and use m = 32

  10. Definitions and Notation blocking angle: (t) angle p makes at t along  incident radiance: u(t) incident radiance at t towards p along  u(t) (t) Sample and u at all points talong direction .

  11. Calculating the Max Blocking Angle max

  12. Calculating the Max Blocking Angle t

  13. Calculating the Max Blocking Angle t

  14. Calculating the Max Blocking Angle t

  15. Calculating the Max Blocking Angle t

  16. Calculating the Max Blocking Angle t

  17. Calculating the Max Blocking Angle t

  18. Calculating the Max Blocking Angle t

  19. Calculating the Max Blocking Angle t

  20. Calculating the Max Blocking Angle max t

  21. Calculating the Incident Radiance  Which points on the height field contribute indirect radiance?

  22. Calculating the Incident Radiance  Which points on the height field contribute indirect radiance?

  23. Calculating the Incident Radiance  Which points on the height field contribute indirect radiance?

  24. Calculating the Incident Radiance  Which points on the height field contribute indirect radiance?

  25. Calculating the Incident Radiance  Which points on the height field contribute indirect radiance?

  26. Calculating the Incident Radiance  Which points on the height field contribute indirect radiance?

  27. Calculating the Incident Radiance  Which points on the height field contribute indirect radiance?

  28. Calculating the Incident Radiance  Which points on the height field contribute indirect radiance?

  29. Calculating the Incident Radiance  Which points on the height field contribute indirect radiance?

  30. Calculating the Incident Radiance  Which points on the height field contribute indirect radiance?

  31. Calculating the Incident Radiance  Which points on the height field contribute indirect radiance? The set of points with monotonically increasing blocking angles. We call this the casting set.

  32. Brute Force Sampling – Pitfall… Problem: aliasing – need many samples in t. Solution: prefilter data, apply multi-scale sampling.

  33. Multi-Resolution Height Sampling height pyramid level i sampling distance for level i τ τ τ τ i-1 i-2 i-3 i Sample coarser levels further from x. fi fi-1 fi-2 fi-3

  34. Multi-Resolution Radiance Sampling multi-scale incident radiance samples τ τ τ τ radiance pyramid (for the previous bounce) i-2 i-1 i-3 i blocking angle at Sample coarser levels further from x. ui ui-1 ui-2 ui-3

  35. Summary of Main Ideas • approximate visibility & incident radiance w/ multi-resolution • compute visibility and radiance at discrete azimuthal directions • determine final spherical visibility and incident radiance • analytic visibility and incident radiance • use normalized Legendre polynomials (NLPs)

  36. Analytic Occlusion Elevation Function σ • we start with the binary occlusion function: 0 1 • and represent it analytically in the Normalized Legendre Polynomial (NLP) basis:

  37. Analytic Visibility and IR • can represent visibility and incident radiance in NLP with = max + + v() 1 max 1 - • visibility  binary function with 1 transition from 0 to 1 @ max as increases 1 = 0 u() • incident radiance piece-wise constant, RGB function of elevation

  38. Summary of Main Ideas • approximate visibility & incident radiance w/ multi-resolution • compute visibility and radiance at discrete azimuthal directions • determine final spherical visibility and incident radiance • NLPSH blending & projection • fast shading pipeline

  39. From Sampled NLP to Full SH • given (2 x m) NLP vectors • need full spherical functions (represented in SH) • interpolate between azimuthal samples + • project resulting spherical function into SH • requires only 1 pre-computed matrix! • matrix acts on NLP coefficients at edges of each swath • rotate & sum across swaths for final SH • All operations performed in a single GPGPU shader. See • supplemental material for full source code.

  40. N x f f ( ( N R ) ) x x Global Illumination Shading with SH • at each shading point: compute m azimuthal visibility + incident radiance NLP vectors interpolate & project into SH. Rotate & sum across directions R or x BRDF: clamped cosine and/or Phong lobe or external lighting environment

  41. Global Illumination Shading with SH Direct Illumination: BRDF x Visibility SH Product and take inner product with lighting Indirect Illumination: BRDF take inner product with Incident Radiance

  42. Comparison to Ground Truth m = 32 ground truth

  43. Memory Usage • we typically sub-sample visibility & IR • shade with full-resolution geometry & normals

  44. Measured Performance

  45. Results

  46. Results

  47. Conclusions • multi-resolution sampling of: • visibility • incident radiance • compact, analytic representation of: • elevation-only functions • SH interpolation and projection operators • simple GPU implementation • real-time up to 512x512 dynamic HFs • can sub-sample visibility and incident radiance • performance independent of geometric content

  48. Future Work • combine with dynamic shadow casters • via [Ren06;Sloan07] (sphere set blocker approximation) • apply to image-space global illumination frameworks • generalize geometry • local height field displacements • tiled height field representations

  49. Thanks! Any questions? We acknowledge the helpful suggestions of the anonymous reviewers.

More Related