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 ¡-‑ ¡diffuse ¡scene 128 ¡paths/pixel 2 Thursday, July 16, 15
Diffuse ¡indirect ¡illumina'on ¡is ¡smooth 3 Thursday, July 16, 15
Diffuse ¡indirect ¡illumina'on ¡is ¡smooth Perfect ¡candidate ¡for ¡sparse ¡sampling ¡and ¡interpola2on 3 Thursday, July 16, 15
Interpolated ¡indirect ¡illumina'on Irradiance ¡Caching [Ward ¡et ¡al. ¡1988] 1M ¡pixels ¡-‑ ¡4K ¡cache ¡points 4 Thursday, July 16, 15
Irradiance ¡Caching ¡Algorithm [Ward ¡et ¡al. ¡1988] 5 Thursday, July 16, 15
Irradiance ¡Caching ¡Algorithm if at least one cached illumination value near x then [Ward ¡et ¡al. ¡1988] 5 Thursday, July 16, 15
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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