220 likes | 382 Views
Iteration Solution of the Global Illumination Problem. L ászló Szirmay-Kalos. Solution by iteration. Expansion uses independent samples no resuse of visibility and illumination information Iteration may use the complete previous information L n = L e + t L n-1 pixel = M L n.
E N D
Iteration Solution of the Global Illumination Problem László Szirmay-Kalos
Solution by iteration • Expansion uses independent samples • no resuse of visibility and illumination information • Iteration may use the complete previous information • Ln= Le+ tLn-1 • pixel =MLn
Storage of the temporary radiance: finite elements • FEM: • Projecting to an adjoint base: L(p)Lj bj (p) p=(x,w) Lj(n) bj (p) = Lje bj (p) + tLj(n-1) bj (p) Li(n) = Lie+ Lj(n-1) <tbj , bi’>
FEM iteration L(n) = Le+ RL(n-1) • Matrix form: • Jacobi iteration • Complexity: O(steps · 1 step) = O(c · N 2) • Other iteration methods: • Gauss-Seidel iteration: O(c · N 2) • Southwell iteration: O(N· N) • Successive overrelaxation: O(c · N 2)
Problems of classical iteration • storage complexity of the finite-element representation • 4 variate radiance: very many basis functions • error accumulation • L/(1-q), qcontraction • The error is due to the drastic simplifications of the form-factor computation
Stochastic iteration • Use instantiations of random operator t* • Ln= Le+ t *nLn-1 • which behaves as the real operator in average • E[t *nL] = tL
Example: x = 0.1 x + 1.8Solution by stochastic iteration • Random transport operator: • xn = T n xn + 1.8, T is r.v. in [ 0, 0.2] • n: 1 2 3 4 5 • Tnsequence: 0 0.1 0.2 0.15 0.05 • xnsequence: 0 1.8 1.91 2.18 2.13 1.9 • Not convergent! • Averaging: 1.8 1.85 1.9 2.04 1.96
Iteration with a single ray Transfer the whole power from x into w selected with probability:L(x,w) cos 1 F1 w 3 x Le(x,w) x w F3 F2 x 2 w
Making it convergent Ln= Le+ t *nLn-1 n=MLnis not convergent pixel=(ML1+ ML2+...+ MLm)/m
Stochastic iteration with FEMDiffuse case • Projected transport operator: • directional integral of the transport operator • surface integral of the projection • Alternatives: • both explicitely: classical iteration, stochastic radiosity • surface integral explicitely: transillumination radiosity • both implicitely: stochastic ray-radiosity
Stochastic radiosity Selects a single (a few) patch with the probability of its relative power and transfers all power from here P = Pe + HP Random transport operator: H* P|i = Hij F Expected value: E[H*P|i ]= j Hij F Pi/F = H P|i
Transillumination radiosity Selects a single (a few) directions and transfers all power into these directions Projected rendering equation: L= Le+ RL Transport operator: Rij =<tbj ,bi’>= fi /Ai Aibj(h(x,-w’)) cos’ dxdw’ Random transport operator: Rij*= 4fi /Ai Ai bj(h(x,-w’)) cos’dx
Ai bj(h(x,-w’)) cos’dx ’ A(i,j,’) Ai Aj Transillumination plane A(i,j,’)= projected area of path j, which is visible from path i in direction ’
Stochastic ray radiosity Selects a single (a few) rays (points+dirs) with a probability proportional to the power cos/area and transfers all power by these rays P = Pe + HP Random transport operator: if y and w are selected: H* P|i = fibi(h(y,w)) F Expected value of the random transport operator: E[H*P|i ]= j fi Aj bi(h(y,w)) F cos/dy/Aj Pj/F =j fi /Aj Aj bi(h(y,w)) cos dyPj = H P|i
Stochastic iteration for the non-diffuse case • Ln= Le+ t*nLn-1 • Reduce the storage requirements of the finite-element representation • Search t* which require L not everywhere • Ln (pn+1)= Le (pn+1)+t*n (p n+1,p n) Ln-1 (p n)
Stochastic integration • Projected transport operator: • directional integral of the transport operator • directional-surface integrals of the projection • Alternatives: • all integrals explicitely: classical iteration • all integrals implicitely: iteration with a single ray • directional integral of the transport operator implicitely, integral of the projection explicitely
Ray-bundle based iteration pixel e L Storage requirement: 1 variable per patch
Finite elements for the positional variation • FEM: • Projected rendering equation: • L(w’)= Le(w’)+ F(w’,w)A(w’)L(w’)dw’ • Random transport operator: • Select a global direction w’ randomly: • t* L(w’) = 4F(w’,w)A(w’)L(w’) L(x,w)Lj (w) bj (x)
Ray-bundle iteration Generate the first random direction w1 FOR each patch i L[i] = Le(w1) FOR m = 1 TO M Reflect incoming radiance L to the eye and add contribution/M to Image Generate random global direction wm+1 L= Le(wm+1)+ 4 F(wm,wm+1)A(wm)L(wm) ENDFOR Display Image
Ray-bundle images 60k patches 300 iterations 30 mins 60k patches 600 iterations 45 mins 10k patches 500 iterations 9 mins
Can we use quasi-Monte Carlo samples in iteration? 1/(M-1) t*(pi)t*(pi-1) Let2Le 1/(M-1) f(pi,pi-1) f(x,y) dxdy pi must be infinite-distribution sequence!
Future improvements ? • Problem formulation • Monte-Carlo integral • Expansion versus iteration • Same accuracy with fewer samples • importance sampling • very uniform sequences, stratification • Making the samples cheaper • fast visibility computations • global methods: coherence principle