recent advances in adap ve sampling and reconstruc on for
play

Recent Advances in Adap.ve Sampling and Reconstruc.on for - PowerPoint PPT Presentation

Recent Advances in Adap.ve Sampling and Reconstruc.on for Monte Carlo Rendering Deriva've Analysis Wojciech Jarosz wjarosz@disneyresearch.com Thursday, July 16, 15 Path tracing -


  1. Recent ¡Advances ¡in ¡Adap.ve ¡Sampling ¡and ¡ Reconstruc.on ¡for ¡Monte ¡Carlo ¡Rendering Deriva've ¡Analysis Wojciech ¡Jarosz wjarosz@disneyresearch.com Thursday, July 16, 15

  2. Path ¡tracing ¡-­‑ ¡diffuse ¡scene 128 ¡paths/pixel 2 Thursday, July 16, 15

  3. Diffuse ¡indirect ¡illumina'on ¡is ¡smooth 3 Thursday, July 16, 15

  4. Diffuse ¡indirect ¡illumina'on ¡is ¡smooth Perfect ¡candidate ¡for ¡sparse ¡sampling ¡and ¡interpola2on 3 Thursday, July 16, 15

  5. Interpolated ¡indirect ¡illumina'on Irradiance ¡Caching [Ward ¡et ¡al. ¡1988] 1M ¡pixels ¡-­‑ ¡4K ¡cache ¡points 4 Thursday, July 16, 15

  6. Irradiance ¡Caching ¡Algorithm [Ward ¡et ¡al. ¡1988] 5 Thursday, July 16, 15

  7. Irradiance ¡Caching ¡Algorithm if at least one cached illumination value near x then [Ward ¡et ¡al. ¡1988] 5 Thursday, July 16, 15

  8. Irradiance ¡Caching ¡Algorithm if at least one cached illumination value near x then Interpolate ¡illumina'on ¡from ¡the ¡cached ¡value(s). [Ward ¡et ¡al. ¡1988] 5 Thursday, July 16, 15

  9. Irradiance ¡Caching ¡Algorithm if at least one cached illumination value near x then Interpolate ¡illumina'on ¡from ¡the ¡cached ¡value(s). else Compute ¡and ¡cache ¡a ¡new ¡illumina'on ¡value ¡at ¡ x . [Ward ¡et ¡al. ¡1988] 5 Thursday, July 16, 15

  10. Irradiance ¡Caching ¡Algorithm if at least one cached illumination value near x then Interpolate ¡illumina'on ¡from ¡the ¡cached ¡value(s). else Compute ¡and ¡cache ¡a ¡new ¡illumina'on ¡value ¡at ¡ x . • Some ¡ques9ons ¡that ¡remain: -­‑ What ¡do ¡we ¡cache? -­‑ What ¡makes ¡a ¡cache ¡point ¡“nearby”? -­‑ How ¡do ¡we ¡interpolate ¡the ¡nearby ¡cached ¡values? [Ward ¡et ¡al. ¡1988] 5 Thursday, July 16, 15

  11. Lamber'an ¡assump'on • Indirect ¡illumina9on ¡on ¡a ¡Lamber9an ¡surface: Z L r ( x , ~ ! r ) = H 2 f r ( x , ~ ! r ) L i ( x , ~ ! i )( ~ ! i ) d ~ ! i , ~ n · ~ ! i Z [Ward ¡et ¡al. ¡1988] 6 Thursday, July 16, 15

  12. Lamber'an ¡assump'on • Indirect ¡illumina9on ¡on ¡a ¡Lamber9an ¡surface: Z L r ( x , ~ ! r ) = H 2 f r ( x , ~ ! r ) L i ( x , ~ ! i )( ~ ! i ) d ~ ! i , ~ n · ~ ! i Z [Ward ¡et ¡al. ¡1988] 6 Thursday, July 16, 15

  13. Lamber'an ¡assump'on • Indirect ¡illumina9on ¡on ¡a ¡Lamber9an ¡surface: Z Z L r ( x , ~ ! r ) = H 2 f r ( x , ~ ! r ) L i ( x , ~ ! i )( ~ ! i ) d ~ ! i , ~ n · ~ ! i H Z Z = ⇢ H 2 L i ( x , ~ ! i )( ~ ! i ) d ~ n · ~ ! i ⇡ | {z } [Ward ¡et ¡al. ¡1988] 6 Thursday, July 16, 15

  14. Lamber'an ¡assump'on • Indirect ¡illumina9on ¡on ¡a ¡Lamber9an ¡surface: Z Z L r ( x , ~ ! r ) = H 2 f r ( x , ~ ! r ) L i ( x , ~ ! i )( ~ ! i ) d ~ ! i , ~ n · ~ ! i H Z Z = ⇢ H 2 L i ( x , ~ ! i )( ~ ! i ) d ~ n · ~ ! i ⇡ H | | {z {z } } Irradiance E ( x , ~ n ) [Ward ¡et ¡al. ¡1988] 6 Thursday, July 16, 15

  15. Lamber'an ¡assump'on • Indirect ¡illumina9on ¡on ¡a ¡Lamber9an ¡surface: Z Z L r ( x , ~ ! r ) = H 2 f r ( x , ~ ! r ) L i ( x , ~ ! i )( ~ ! i ) d ~ ! i , ~ n · ~ ! i H Z Z = ⇢ H 2 L i ( x , ~ ! i )( ~ ! i ) d ~ n · ~ ! i ⇡ H | | | {z {z {z } } } Irradiance E ( x , ~ n ) N n ) ≈ ⇡ X E ( x , ~ L i ( x , ~ ! i,j ) N j =1 [Ward ¡et ¡al. ¡1988] 6 Thursday, July 16, 15

  16. Interpola'ng ¡Irradiance • Irradiance ¡computa9on ¡costly, ¡reuse ¡whenever ¡possible • How ¡far ¡away ¡can ¡we ¡reuse ¡a ¡cached ¡value? [Ward ¡et ¡al. ¡1988] 7 Thursday, July 16, 15

  17. Interpola'ng ¡Irradiance • Irradiance ¡computa9on ¡costly, ¡reuse ¡whenever ¡possible • How ¡far ¡away ¡can ¡we ¡reuse ¡a ¡cached ¡value? E ( x i ) [Ward ¡et ¡al. ¡1988] 7 Thursday, July 16, 15

  18. Interpola'ng ¡Irradiance • Irradiance ¡computa9on ¡costly, ¡reuse ¡whenever ¡possible • How ¡far ¡away ¡can ¡we ¡reuse ¡a ¡cached ¡value? Δ x E ( x i ) E ( x i + Δ x )? [Ward ¡et ¡al. ¡1988] 7 Thursday, July 16, 15

  19. Interpola'ng ¡Irradiance • Irradiance ¡computa9on ¡costly, ¡reuse ¡whenever ¡possible • How ¡far ¡away ¡can ¡we ¡reuse ¡a ¡cached ¡value? Δ x E ( x i ) E ( x i + Δ x )? ✓ @ E ◆ @ x ∆ x + @ E E ( x ) ≈ E ( x i ) + n ∆ ~ n @~ [Ward ¡et ¡al. ¡1988] 7 Thursday, July 16, 15

  20. Interpola'ng ¡Irradiance • Irradiance ¡computa9on ¡costly, ¡reuse ¡whenever ¡possible • How ¡far ¡away ¡can ¡we ¡reuse ¡a ¡cached ¡value? Δ x E ( x i ) E ( x i + Δ x )? error ✓ @ E ◆ @ x ∆ x + @ E E ( x ) ≈ E ( x i ) + n ∆ ~ n @~ [Ward ¡et ¡al. ¡1988] 7 Thursday, July 16, 15

  21. Interpola'ng ¡Irradiance • Irradiance ¡computa9on ¡costly, ¡reuse ¡whenever ¡possible • How ¡far ¡away ¡can ¡we ¡reuse ¡a ¡cached ¡value? Δ x E ( x i ) E ( x i + Δ x )? error ✓ @ E ✓ @ E ◆ ◆ @ x ∆ x + @ E @ x ∆ x + @ E E ( x ) ≈ E ( x i ) + n ∆ ~ n ∆ ~ n n @~ @~ [Ward ¡et ¡al. ¡1988] 7 Thursday, July 16, 15

  22. Interpola'ng ¡Irradiance • To ¡compute ¡valid ¡region, ¡need ¡to ¡es9mate ¡change ¡in ¡ irradiance ✓ @ E ◆ @ x ∆ x + @ E n ∆ ~ n @~ • Consider ¡hypothe9cal, worst-­‑case ¡scene: the ¡“ Split-­‑Sphere ” [Ward ¡et ¡al. ¡1988] 8 Thursday, July 16, 15

  23. Interpola'ng ¡Irradiance • To ¡compute ¡valid ¡region, ¡need ¡to ¡es9mate ¡change ¡in ¡ irradiance � � @ E @ x ∆ x + @ E � � " i . n ∆ ~ n � � @~ � � • Consider ¡hypothe9cal, worst-­‑case ¡scene: the ¡“ Split-­‑Sphere ” [Ward ¡et ¡al. ¡1988] 8 Thursday, July 16, 15

  24. Interpola'ng ¡Irradiance • To ¡compute ¡valid ¡region, ¡need ¡to ¡es9mate ¡change ¡in ¡ irradiance � � @ E @ x ∆ x + @ E � � " i . n ∆ ~ n � � @~ � � • Consider ¡hypothe9cal, worst-­‑case ¡scene: the ¡“ Split-­‑Sphere ” ~ n @ ∂ x @~ ∂ x n [Ward ¡et ¡al. ¡1988] 8 Thursday, July 16, 15

  25. Interpola'ng ¡Irradiance • To ¡compute ¡valid ¡region, ¡need ¡to ¡es9mate ¡change ¡in ¡ irradiance � � @ E @ x ∆ x + @ E � � " i . n ∆ ~ n � � @~ � � • Consider ¡hypothe9cal, worst-­‑case ¡scene: the ¡“ Split-­‑Sphere ” ~ n @ ∂ x @~ ∂ x n [Ward ¡et ¡al. ¡1988] 8 Thursday, July 16, 15

  26. Interpola'ng ¡Irradiance • To ¡compute ¡valid ¡region, ¡need ¡to ¡es9mate ¡change ¡in ¡ irradiance � � @ E @ x ∆ x + @ E � � " i . n ∆ ~ n � � @~ � � • Consider ¡hypothe9cal, worst-­‑case ¡scene: the ¡“ Split-­‑Sphere ” ~ n @ ∂ x @~ ∂ x n [Ward ¡et ¡al. ¡1988] 9 Thursday, July 16, 15

  27. Interpola'ng ¡Irradiance • To ¡compute ¡valid ¡region, ¡need ¡to ¡es9mate ¡change ¡in ¡ irradiance � � @ E @ x ∆ x + @ E � � " i . n ∆ ~ n � � @~ � � • Consider ¡hypothe9cal, worst-­‑case ¡scene: the ¡“ Split-­‑Sphere ” ~ n @ ∂ x @~ ∂ x n [Ward ¡et ¡al. ¡1988] 9 Thursday, July 16, 15

  28. Interpola'ng ¡Irradiance • To ¡compute ¡valid ¡region, ¡need ¡to ¡es9mate ¡change ¡in ¡ irradiance � � @ E @ x ∆ x + @ E � � " i . n ∆ ~ n � � @~ � � • Consider ¡hypothe9cal, worst-­‑case ¡scene: the ¡“ Split-­‑Sphere ” ~ n @ ∂ x @~ ∂ x n [Ward ¡et ¡al. ¡1988] 10 Thursday, July 16, 15

  29. Interpola'ng ¡Irradiance • In ¡the ¡“Split-­‑Sphere” ¡environment ¡the ¡error ¡becomes: � � @ E @ x ∆ x + @ E � � " i . n ∆ ~ n � � @~ � � [Ward ¡et ¡al. ¡1988] 11 Thursday, July 16, 15

  30. Interpola'ng ¡Irradiance • In ¡the ¡“Split-­‑Sphere” ¡environment ¡the ¡error ¡becomes: ✓ 4 ◆ k x � x i k p + 1 � ( ~ n i ) " i . E i n · ~ ⇡ R i [Ward ¡et ¡al. ¡1988] 12 Thursday, July 16, 15

  31. Interpola'ng ¡Irradiance • In ¡the ¡“Split-­‑Sphere” ¡environment ¡the ¡error ¡becomes: orienta2on ¡difference ✓ 4 ◆ k x � x i k p + 1 � ( ~ n i ) " i . E i n · ~ ⇡ R i [Ward ¡et ¡al. ¡1988] 12 Thursday, July 16, 15

  32. Interpola'ng ¡Irradiance • In ¡the ¡“Split-­‑Sphere” ¡environment ¡the ¡error ¡becomes: posi2on ¡difference, ¡rela2ve ¡to orienta2on ¡difference radius ¡of ¡sphere ✓ 4 ◆ k x � x i k p + 1 � ( ~ n i ) " i . E i n · ~ ⇡ R i [Ward ¡et ¡al. ¡1988] 12 Thursday, July 16, 15

  33. Interpola'ng ¡Irradiance • In ¡the ¡“Split-­‑Sphere” ¡environment ¡the ¡error ¡becomes: posi2on ¡difference, ¡rela2ve ¡to orienta2on ¡difference radius ¡of ¡sphere ✓ 4 ◆ k x � x i k p + 1 � ( ~ n i ) " i . E i n · ~ ⇡ R i “average” ¡distance ¡to ¡visible ¡surfaces [Ward ¡et ¡al. ¡1988] 12 Thursday, July 16, 15

  34. Interpola'ng ¡Irradiance • At ¡each ¡ shading ¡loca'on , ¡perform ¡a ¡weighted ¡average ¡of ¡all ¡ cached ¡values ¡which ¡have ¡an ¡error ¡below ¡some ¡threshold. P w i ( x , ~ n ) E i i ∈ S E ( x , ~ n ) ≈ P w i ( x , ~ n ) i ∈ S x [Ward ¡et ¡al. ¡1988] 13 Thursday, July 16, 15

Recommend


More recommend