monte carlo path tracing ii
play

Monte Carlo Path Tracing II CS295, Spring 2017 Shuang Zhao - PowerPoint PPT Presentation

Monte Carlo Path Tracing II CS295, Spring 2017 Shuang Zhao Computer Science Department University of California, Irvine CS295, Spring 2017 Shuang Zhao 1 Announcements PA1 base code updated to fix compilation issues under Mac OS You


  1. Monte Carlo Path Tracing II CS295, Spring 2017 Shuang Zhao Computer Science Department University of California, Irvine CS295, Spring 2017 Shuang Zhao 1

  2. Announcements • PA1 base code updated to fix compilation issues under Mac OS • You do NOT have to update yours if you already had it compiled CS295, Spring 2017 Shuang Zhao 2

  3. Last Lecture • Rendering equation • Describe the distribution of light at equilibrium • Monte Carlo Path Tracing I • An unbiased numerical solution to the rendering equation CS295, Spring 2017 Shuang Zhao 3

  4. Today’s Lecture • Monte Carlo Path Tracing II • BRDF sampling • Multiple importance sampling CS295, Spring 2017 Shuang Zhao 4

  5. Recap: Rendering Equation = + = + CS295, Spring 2017 Shuang Zhao 5

  6. Recap: Rendering Equation (Invariant of radiance along lines) CS295, Spring 2017 Shuang Zhao 6

  7. Recap: Path Tracing (Version 1.0) reflectedRadiance ( x , ω , depth): [ y 1 , pdf] = luminaireSample() Direct ω 1 = normalize( y 1 - x ) illumination r 2 = dot( y 1 - x , y 1 - x ) reflRad = emittedRadiance( y 1 , - ω 1 ) * brdf( x , ω 1 , ω ) * visibility( x , y 1 ) * dot( n x , ω 1 ) * dot( n y , - ω 1 ) / (r 2 * pdf) if depth <= rrDepth: Indirect p = 1.0 illumination else: p = survivalProbability if rand() < p : ω 2 = uniformRandomPSA( n x ) y 2 = RayTrace( x , ω 2 ) reflRad += π * reflectedRadiance( y 2 , - ω 2 , depth + 1) * brdf( x , ω 2 , ω ) / p return reflRad CS295, Spring 2017 Shuang Zhao 7

  8. Path Tracing (Version 1.0) reflectedRadiance ( x , ω , depth): flexible [ y 1 , pdf] = luminaireSample() Direct ω 1 = normalize( y 1 - x ) illumination r 2 = dot( y 1 - x , y 1 - x ) reflRad = emittedRadiance( y 1 , - ω 1 ) * brdf( x , ω 1 , ω ) * visibility( x , y 1 ) * dot( n x , ω 1 ) * dot( n y , - ω 1 ) / (r 2 * pdf) if depth <= rrDepth: Indirect p = 1.0 illumination else: p = survivalProbability if rand() < p : ω 2 = uniformRandomPSA( n x ) inflexible y 2 = RayTrace( x , ω 2 ) reflRad += π * reflectedRadiance( y 2 , - ω 2 , depth + 1) * brdf( x , ω 2 , ω ) / p return reflRad CS295, Spring 2017 Shuang Zhao 8

  9. Fixed Sampling of Incident Direction [Lawrence et al. 2004] Uniform sampling Better sampling CS295, Spring 2017 Shuang Zhao 9

  10. BRDF Sampling Monte Carlo Path Tracing II CS295, Spring 2017 Shuang Zhao 10

  11. Estimating Indirect Illumination MC Integration • Path tracing version 1.1! CS295, Spring 2017 Shuang Zhao 11

  12. Path Tracing (Version 1.1) reflectedRadiance ( x , ω , depth): [ y 1 , pdf] = luminaireSample() Direct ω 1 = normalize( y 1 - x ) illumination r 2 = dot( y 1 - x , y 1 - x ) reflRad = emittedRadiance( y 1 , - ω 1 ) * brdf( x , ω 1 , ω ) * visibility( x , y 1 ) * dot( n x , ω 1 ) * dot( n y , - ω 1 ) / (r 2 * pdf) if depth <= rrDepth: Indirect p = 1.0 illumination else: p = survivalProbability if rand() < p : [ ω 2 , pdf 2 ] = brdfSample( x ) y 2 = RayTrace( x , ω 2 ) reflRad += reflectedRadiance( y 2 , - ω 2 , depth + 1) * brdf( x , ω 2 , ω ) * dot( n x , ω 2 ) / (pdf 2 * p ) return reflRad CS114, Spring 2017 Shuang Zhao 12

  13. Estimating Indirect Illumination MC Integration • Ideally, we want • c is the normalization factor • Then, • Note: this is possible only for some BRDFs (e.g., ideal diffuse, ideal specular) CS295, Spring 2017 Shuang Zhao 13

  14. Sampling Ideal Diffuse BRDF • In this case, ω i is drawn using cosine-weighted sampling (i.e., uniform sampling of projected solid angle) • uniformRandomPSA() from the last lecture! CS295, Spring 2017 Shuang Zhao 14

  15. Sampling Ideal Specular BRDF where • In this case, the sampling of ω i is deterministic : ω i is always set to ω mirrored , and the estimator becomes CS295, Spring 2017 Shuang Zhao 15

  16. Sampling the Phong BRDF • It is hard to sample according to • Instead, sample according to over the hemi- sphere around : CS295, Spring 2017 Shuang Zhao 16

  17. Sampling the Phong BRDF • Obtaining c (the normalization factor) : • To sample θ 1 (inversion method): CS295, Spring 2017 Shuang Zhao 17

  18. Sampling the Phong BRDF • Lastly, where CS295, Spring 2017 Shuang Zhao 18

  19. BRDF Sampling • Also applies to the estimation of the direct illumination: or the full radiance: where CS295, Spring 2017 Shuang Zhao 19

  20. BRDF Sampling • An active research area • Methods specialized to individual models • Ward BRDF [Walter 2005] • Micro-facet models [Walter et al. 2007] • … • General frameworks • Factorization-based sampling [Lawrence et al. 2004] • … CS295, Spring 2017 Shuang Zhao 20

  21. Multiple Importance Sampling Monte Carlo Path Tracing II CS295, Spring 2017 Shuang Zhao 21

  22. Sampling Light Source vs. BRDF • Sampling y on the light source: where and A e is the surface area of all lights • Sampling ω i based on the BRDF at x : where • Which one is better? CS295, Spring 2017 Shuang Zhao 22

  23. Sampling Light Source vs. BRDF • It depends! CS295, Spring 2017 Shuang Zhao 23

  24. What is Going On? • Consider the problem of estimating: • By randomly sampling x from PDF p , we have • Ideally, we would like , but this can be difficult in practice CS295, Spring 2017 Shuang Zhao 24

  25. What is Going On? • Assuming we have and • Then, we should pick p = p 1 if f ( x ) has higher variance and p = p 2 if otherwise (since we want to have low variance) • Can we combine multiple sampling strategies? CS295, Spring 2017 Shuang Zhao 25

  26. Multiple Importance Sampling • To estimate • Assume there are n probability densities p 1 , p 2 , …, p n to sample x . Then, is an unbiased estimator of as long as: • for all x with • whenever CS295, Spring 2017 Shuang Zhao 26

  27. Multiple Importance Sampling • Proof: CS295, Spring 2017 Shuang Zhao 27

  28. Weighting Functions • How to choose the weighting functions w i ( x )? • Method 1: constant • Let for all x • Unfortunately, since if one f ( x i )/ p i ( x i ) has high variance, so will • This is undesirable! CS295, Spring 2017 Shuang Zhao 28

  29. The Balance Heuristic • Method 2: • Then, • It holds that for any unbiased estimator (with the n densities) • In other words, as long as there exists a “good” will also be “good” estimator for , CS295, Spring 2017 Shuang Zhao 29

  30. The Power Heuristic • Method 3: • Then, • It holds that for any unbiased estimator (with the n densities) • Sometimes works better than balance heuristic in rendering! CS295, Spring 2017 Shuang Zhao 30

  31. Example: MIS denotes the indicator function • Consider the problem of evaluating: with two probability densities • f : normal distribution with mean 0 and variance σ 2 • g : uniform distribution between a and b CS295, Spring 2017 Shuang Zhao 31

  32. Example: MIS • σ = 1; a = 1.9, b = 2.0 CS295, Spring 2017 Shuang Zhao 32

  33. Example: MIS • σ = 0.05; a = -3.0, b = 3.0 CS295, Spring 2017 Shuang Zhao 33

  34. Next Lecture • Monte Carlo Path Tracing III • Multiple importance sampling ( con’t ) • Operator formulation of light transport CS295, Spring 2017 Shuang Zhao 34

Recommend


More recommend