CS4620/5620: Lecture 36

CS4620/5620: Lecture 36

CS4620/5620: Lecture 36 Ray Tracing (Shading and Sampling) Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 1 (with previous instructors James/Marschner) Announcements • PA3A due Tuesday night • PPA3 out Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 2 (with previous instructors James/Marschner) Shading • Compute light reflected toward camera • Inputs: – eye direction – light direction (for each of many lights) l n – surface normal v – surface parameters (color, shininess, …) Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 3 (with previous instructors James/Marschner) Mirror reflection • Consider perfectly shiny surface – there isn’t only a highlight – instead there’s a reflection of other objects • Can render this using recursive ray tracing – to find out mirror reflection color, ask what color is seen from surface point in reflection direction – already computing reflection direction for Phong… • “Glazed” material has mirror reflection and direct – where Lm is evaluated by tracing a new ray Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 4 (with previous instructors James/Marschner) Diffuse + mirror reflection (glazed) (glazed material on floor) Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 5 (with previous instructors James/Marschner) Snell’s Law • Tells us where the refracted ray goes – a.k.a. transmission vector • Computation – ratio of sines is ratio of in-plane components – project to surface; scale by eta ratio; recompute normal- direction component – total internal reflection Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 6 (with previous instructors James/Marschner) Computing the Transmission Vector, t Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 7 (with previous instructors James/Marschner) Computing the Transmission Vector, t Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 8 (with previous instructors James/Marschner) Ray tracing dielectrics • Like a simple mirror surface, use recursive ray tracing • But we need two rays – One reflects off the surface (same as mirror ray) – The other crosses the surface (computed using Snell’s law) • Doesn’t always exist (total internal reflection) • Splitting into two rays, recursively, creates a ray tree – Very many rays are traced per viewing ray – Ways to prune the tree • Limit on ray depth • Limit on ray attenuation Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 9 (with previous instructors James/Marschner) Whitted Ray Tracing Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 10 (with previous instructors James/Marschner) Specular reflection • Smooth surfaces of pure materials have ideal specular reflection (said this before) – Metals (conductors) and dielectrics (insulators) behave differently • Reflectance (fraction of light reflected) depends on angle metal dielectric Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 11 (with previous instructors James/Marschner) Specular reflection from metal • Reflectance does depend on angle Aluminum – but not much – safely ignored in basic rendering Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 12 (with previous instructors James/Marschner) Specular reflection from glass/water • Dependence on angle is dramatic! Glass – about 4% at normal incidence – 100% at grazing – remaining light is transmitted • Important for Perfect transmission at Brewster’s angle proper appearance Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 13 (with previous instructors James/Marschner) Brewster’s Angle Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 14 (with previous instructors James/Marschner) Fresnel reflection • Black glazed sphere – reflection from glass surface – transmitted ray is discarded Constant reflectance Fresnel reflectance Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 15 (with previous instructors James/Marschner) Fresnel’s formulas • They predict how much light reflects from a smooth interface between two materials – usually one material is empty space – R is the fraction that is reflected – (1 – R) is the fraction that is transmitted Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 16 (with previous instructors James/Marschner) Schlick’s approximation • For graphics, a quick hack to get close with less computation: • R0 is easy to compute: Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 17 (with previous instructors James/Marschner) Fresnel reflection [Mike Hill & Gaain Kwan | Stanford cs348 competition 2001] | Stanford Hill & GaainKwan [Mike Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 18 (with previous instructors James/Marschner) Hmm, ... how do we render beer? Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 19 (with previous instructors James/Marschner) Beer's Law! Light-carrying ray intensity I is attenuated with distance traveled x according to Therefore, the attenuated per-channel intensity is Evaluated on a per-channel basis, e.g., the color of white light after traveling unit distance is ) Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 20 (with previous instructors James/Marschner) Not just for beer... [Josh Wills | 2003 UCSD Rendering Competition] Wills| 2003 UCSD Rendering [Josh Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 21 (with previous instructors James/Marschner) Shader for Transparent Objects (pp. 306-7) Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 22 (with previous instructors James/Marschner) Basic ray traced image [Glassner 89] [Glassner Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 23 (with previous instructors James/Marschner) Basic ray tracing • Basic ray tracer: one sample for everything – one ray per pixel – one shadow ray for every point light – one reflection ray per intersection • one refraction ray (if necessary) per intersection • Many advanced methods build on the basic ray tracing paradigm Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 24 (with previous instructors James/Marschner) Discontinuities in basic RT • Perfectly sharp object silhouettes in image – leads to aliasing problems (stair steps) • Perfectly sharp shadow edges – everything looks like it’s in direct sun • Perfectly clear mirror reflections – reflective surfaces are all highly polished • Perfect focus at all distances – camera always has an infinitely tiny aperture • Perfectly frozen instant in time (in animation) – motion is frozen as if by strobe light Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 25 (with previous instructors James/Marschner) Antialiasing in ray tracing aliased image Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 26 (with previous instructors James/Marschner) Antialiasing in ray tracing aliased image one sample per pixel Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 27 (with previous instructors James/Marschner) Antialiasing in ray tracing antialiased image four samples per pixel Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 28 (with previous instructors James/Marschner) Antialiasing in ray tracing one sample/pixel 9 samples/pixel Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 29 (with previous instructors James/Marschner) Details of supersampling • For image coordinates with integer pixel centers: // one sample per pixel // ns^2 samples per pixel for iy = 0 to (ny-1) by 1 for iy = 0 to (ny-1) by 1 for ix = 0 to (nx-1) by 1 { for ix = 0 to (nx-1) by 1 { ray = camera.getRay(ix, iy); Color sum = 0; image.set(ix, iy, trace(ray)); for dx = -(ns-1)/2 to (ns-1)/2 by 1 } for dy = -(ns-1)/2 to (ns-1)/2 by 1 { x = ix + dx / ns; y = iy + dy / ns; ray = camera.getRay(x, y); sum += trace(ray); } image.set(ix, iy, sum / (ns*ns)); } Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 30 (with previous instructors James/Marschner) Soft shadows Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 31 (with previous instructors James/Marschner) Cause of soft shadows point lights cast hard shadows Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 32 (with previous instructors James/Marschner) Cause of soft shadows area lights cast soft shadows Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 33 (with previous instructors James/Marschner) Creating soft shadows • For area lights: use many shadow rays – and each shadow ray gets a different point on the light • Choosing samples – general principle: start with uniform in square Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 34 (with previous instructors James/Marschner) Creating soft shadows Cornell CS4620/5620 Fall 2012 • Lecture 36 © 2012 Kavita Bala • 35 (with previous instructors James/Marschner) .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    18 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us