Presentation on theme: "Insu Yu (Research Fellow) James Tompkin (Research Engineer & T.A.) ( me with questions)"— Presentation transcript:
Insu Yu (Research Fellow) firstname.lastname@example.org James Tompkin (Research Engineer & T.A.) email@example.com@cs.ucl.ac.uk (email me with questions) Monte Carlo Path Tracing Coursework Notes Insu Yu 2006, James Tompkin 2010
What you need to do (in brief) 1. Shoot many rays through each pixel with stratified, jittered sampling. 2. Modify the direct lighting calculations to add support for area light sources. 3. Add support for sampling a BRDF. 4. Add support for evaluating the BRDFs at a surface point. 5. Put it all together to form paths that sample all the integrals; pixels, direct lighting and BRDFs. 6. Add importance sampling OR unbiased path termination (Russian roulette). 7. Make your own scenes.
Simple Stochastic Path Tracing Radiance for each ray (eye to pixel in view plane) is calculated by The integral cam be evaluated using Monte Carlo integration by generating N random direction ψ i on hemisphere Ω x distributed according to some probability density function P(x)
Part 1: Stratified Jittered sampling Function: LitScene::renderPixel, SimpleCamera::StratifiedRandomRay Generate N x N stratified Sample per pixel at (i,j) Generate random variable λ 1 & λ 2 to index stratified sample Generate Ray: COP to sampled position at (i+ λ 1,j+ λ 2 ) Radiance = Total Radiance / N_RAYS_PER_PIXEL Remember to change N_RAYS_PER_PIXEL = 1 to 1, 64, 256, 1024 rays, etc.
Part 2: Direct Lighting Area light source sampling
Part 2: Direct Lighting Example: Spherical Light sampling Samples the sphere over the solid angle as seen from a point Find direction toward sphere in polar coordinates : Transform local to world coordinates with U,V,N. Find intersection point (x): Reference: Section 3.2 'Sampling Spherical Luminaries in "Monte Carlo Techniques for Direct Lighting Calculations," ACM Transactions on Graphics, 1996
Part 2: Direct Lighting Polygon Light sampling Function: Polygon::TriangularSampling, Polygon::RectangularSampling Sampling Rectangular Luminaries The uniform random sampled are given by: Sampling Triangular Luminaries Use barycentric coordinates of triangles. The uniform random sampled are given by: Sampling Polygon Luminaries Up to you! Reference: Section 3.3 'Sampling Planar Luminaires in "Monte Carlo Techniques for Direct Lighting Calculations," ACM Transactions on Graphics, 1996
Part 3,4,5: Lambertian Reflection Model Function: lambertianBRDF::reflection, lambertianBRDF::brdf
Part 3,4,5: Modified Phong Reflection Model Function: phongBRDF::reflection, phongBRDF::brdf
Reading Lafortune and Willems Using the Modified Phong Reflectance Model for Physically-based Rendering will help.
Try to demonstrate advantages and disadvantages of path tracing in your scenes. What limitations exist? Which types of scene require more sampling to reduce noise? Part 6: Importance Sampling/Russian Roulette Part 7: D.I.Y. scenes Look up the references on the webpage for these techniques to read more about them. Reading Avro and Kirks Particle Transport and Image Synthesis is a good place to start.
General Tips Use the paper references! They contain valuable background information which will help you understand the problem. Dutres Global Illumination Compendium is named precisely. A simple screenshot function exists in mainray.cpp for automating capture to.bmp. You can use it for your documentation. screenshot(int windowWidth, int windowHeight, char* filename) Any other questions, e-mail firstname.lastname@example.org