1 / 40

PRT Summary

PRT Summary. Motivation for Precomputed Transfer. better light integration and light transport dynamic, area lights shadowing interreflections in real-time. area light. point light. area lighting, no shadows. area lighting, shadows. Precomputed Radiance Transfer (PRT).

liam
Download Presentation

PRT Summary

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. PRT Summary

  2. Motivation for Precomputed Transfer • better light integration and light transport • dynamic, area lights • shadowing • interreflections • in real-time area light point light area lighting, no shadows area lighting, shadows

  3. Precomputed Radiance Transfer (PRT) represent lighting using spherical harmonics low frequency = few coefficients n=4 n=9 n=25 n=676 original

  4. . . . . . . Tabulating PRT Lighting Basis i LightingBasis i+1 illuminate store coefs on surface LightingBasis i+2 PRT is a linear operator (matrix) per surface point maps incident lighting to exit radiance

  5. Self-Transfer Results (Diffuse) No Shadows/Inter Shadows Shadows+Inter

  6. Self-Transfer Results (Glossy) No Shadows/Inter Shadows Shadows+Inter

  7. PRT Terminology

  8. PRT Terminology

  9. PRT Terminology

  10. PRT Terminology

  11. PRT as a Linear Operator • l : light vector (in source basis) • Mp : source-to-exit transfer matrix • ep: exit radiance vector (in exit basis) • y(vp) : exit basis evaluated in direction vp • ep(vp) : exit radiance in direction vp

  12. PRT Special Case: Diffuse Objects transfer vector rather than matrix [PRT02] SH [Xi03] Directional [Ng03] Haar [Ashikhmin02] Steerable • independent of view (constant exit basis) • matrix is row vector • previous work uses different light bases • image relighting

  13. PRT Special Case: Surface Light Fields transfer vector rather than matrix [Miller98] [Nishino99] [Wood00] [Chen02] [Matusik02] • frozen lighting environment • matrix is column vector

  14. Factoring PRT (BRDFs) • Tp: source → transferred incident radiance • Rp : rotate to local frame • B: integrate against BRDF [Westin92] • y(vp) •ep: evaluate exit radiance at vp

  15. Hemispherical Projection • exit radiance is defined over hemisphere, not sphere • spherical harmonics not orthogonal over hemisphere • how to project hemispherical functions using SH? • naïve projection assumes “underside” is zero • least squares projection minimizes approximation error • see appendix

  16. Factoring PRT (BRDFs)

  17. Extending PRT to BSSRDFs • already handled by original equation • use [Jensen02], only multiple scattering (matrix with only 1 row) • mix with “conventional” BRDF

  18. Problems With PRT • Big matrices at each surface point • 25-vectors for diffuse, x3 for spectral • 25x25-matrices for glossy • at ~50,000 vertices • Slows glossy rendering (4hz) • Frozen View/Light can increase performance • Not as GPU friendly • Limits diffuse lighting order • Only very soft shadows

  19. Compression Goals • Decode efficiently • As much on the GPU as possible • Render compressed representation directly • Increase rendering performance • Make non-diffuse case practical • Reduce memory consumption • Not just on disk

  20. Compression Example Surface is curve, signal is normal

  21. CompressionExample Signal Space

  22. VQ Cluster normals

  23. VQ Replace samples with cluster mean

  24. PCA Replace samples with mean + linear combination

  25. CPCA Compute a linear subspace in each cluster

  26. CPCA • Clusters with low dimensional affine models • How should clustering be done? • Static PCA • VQ, followed by one-time per-cluster PCA • optimizes for piecewise-constant reconstruction • Iterative PCA • PCA in the inner loop, slower to compute • optimizes for piecewise-affine reconstruction

  27. Static vs. Iterative

  28. Related Work • VQ+PCA [Kambhatla94] (static) • VQPCA [Khambhatla97] (iterative) • Mixture PC [Dony95] (iterative) • More sophisticated models exist • [Brand03], [Roweis02] • Mapping to current GPUs is challenging • Variable storage per vertex • Partitioning is more difficult (or requires more passes)

  29. Equal Rendering Cost VQ PCA CPCA

  30. Rendering with CPCA

  31. Rendering with CPCA Constant per cluster – precompute on the CPU Rendering is a dot product Compute linear combination of vectors Only depends on # rows of M

  32. Non-Local Viewer • Assume: • vp constant across object (distant viewer) Rendering independent of view & light orders - linear combination of colors

  33. + = + Rendering

  34. 2 2 1 3 2 2 2 2 2 2 2 2 1 3 2 2 2 1 Overdraw • faces belong to 1-3 clusters • OD = 1  face drawn once • OD = 2  face drawn 2x • OD = 3  face drawn 3x • coherence optimization: • reclassification • superclustering

  35. Texture Constants Exit Rad. GPU Dataflow Vertices Vertex Shader PixelShader

  36. Demo

  37. Results All examples have 25x25 matrices, 256 clusters, 8 PCA vectors

  38. Conclusions CPCA • works in “signal space”, not “surface space” • uses affine subspace per-cluster • compresses PRT well • is used directly without “blowing out” signal • requires small, uniform state storage • provides • faster rendering • higher-frequency lighting

  39. Future Work • time-dependent and parameterized geometry • higher-frequency lighting • combination with bi-scale rendering • better signal continuity

  40. Questions? • DirectX SDK for PRT available soon. • Jason Mitchell, Hugues Hoppe, Jason Sandlin, David Kirk • Stanford, MPI for models

More Related