360 likes | 494 Views
Computer Graphics. Lecture 14 Illumination II – Global Models. Global Illumination. Extends the Local Illumination Model to include: Reflection (one object in another) Refraction (Snell’s Law) Transparency (better model) Shadows (at point, check each light source)
E N D
Computer Graphics Lecture 14 Illumination II – Global Models
Global Illumination • Extends the Local Illumination Model to include: • Reflection (one object in another) • Refraction (Snell’s Law) • Transparency (better model) • Shadows (at point, check each light source) • Antialiasing (usually means supersampling) Lecture Notes #14
Wireframe view of a test scene. Orthographic view from above Lecture Notes #14
Test Scene. High quality rendering of test scene. • Note : • Mirror and chrome teapot. • Shadows on floor. • Shiny floor. Lecture Notes #14
Locally illuminated test scene. Ambient term only Lecture Notes #14
Locally illuminated test scene. Phong shading. Ambient and Diffuse terms only • Notes : • Highlight on wall from light is in the wrong place; screen space interpolation. • We cannot illuminate the lights with the light sources – wrong side ! Lecture Notes #14
Locally illuminated test scene. Phong shading. Ambient, diffuse and Specular terms. Lecture Notes #14
Locally illuminated test scene. Flat shading. Note : Mach bands. Lecture Notes #14
Locally illuminated test scene. Gouraud shading. Ambient, diffuse and Specular terms. Note: artefacts on wall. Lecture Notes #14
Solution to Gouraud artefacts. Gouraud shading. Re-triangulated mesh. Lecture Notes #14
Comparison. Flat Gouraud Phong Coarser mesh Lecture Notes #14
Use Local illumination. • No. • In our test scene, we can’t represent : • Mirror • Chrome teapot. • Shiny floor • Shadows with local illumination. Lecture Notes #14
Kajiya’s Rendering Equation. • Viewer is at point x, looking toward point x. • I(x,x) determines amount of light arriving at x from x • g(x,x) is a geometry term, = 0 when x is occluded, otherwise = attenuation factor 1/r2 (or 1/(s+k)) • (x,x) is the amount of light emitted from x to x. • (x,x,x) is the fraction of light reflected and scattered off x to point x from point x • The integral S is over all such points (x") on all surfaces. Lecture Notes #14
Global illumination. • Two methods : • View dependent methods. • Calculate the view from the camera with global illumination. • Recursive ray-tracing. • View independent methods. • Solve lighting for the entire scene. • Radiosity solution. Lecture Notes #14
View dependent methods. • Loop round the pixels….. • Good for lighting effects which have a strong dependence on view location : • Specular highlights. • Reflections from curved surfaces. • Only a small number of objects need to be considered at the same time. • Poor when many objects need to be considered • E.g diffuse interactions (eg. colour bleeding). Lecture Notes #14
View independent methods. • Loop round the scene… • Good when many (all) objects need to be considered at same time. • Diffuse inter-reflections. • Poor when shading has strong dependence on view location. • Specular reflection. Lecture Notes #14
Scene Eyepoint Window Recall : Ray casting. • Involves projecting an imaginary ray from the centre of projection (the viewers eye) through the centre of each pixel into the scene. • The first object the ray intersects determines the shade. Lecture Notes #14
Whitted’s algorithm. • Fire off secondary rays from surface that ray intersects. • Towards Light Source(s) : shadow rays. L (shadow feelers) • In the reflection direction : reflection rays, R • In a direction dictated by Snell’s Law : transmitted rays, T Lecture Notes #14
Recursive ray tree. • Reflection and Transmission Rays spawn other rays. • Shadow rays test only for occlusion. • The complete set of rays is called a Ray Tree. Light Source ray determines colour of current object. Viewpoint Lecture Notes #14
Recursive ray tree. • Reflection and Transmission Rays spawn other rays. • Shadow rays test only for occlusion. • The complete set of rays is called a Ray Tree. Lecture Notes #14
Test Scene. Ray tree depth 1. Note only ambient shade on mirror and teapot Lecture Notes #14
Test Scene. Ray tree depth 2. Note only ambient shade on reflection of mirror and teapot. Lecture Notes #14
Test Scene. Ray tree depth 3. Note only ambient shade on reflection of mirror in teapot. Lecture Notes #14
Test Scene. Ray tree depth 4. Note ambient shade on reflection of teapot in reflection of mirror in teapot. Lecture Notes #14
Test Scene. Ray tree depth 5. Lecture Notes #14
Test Scene. Ray tree depth 6. Lecture Notes #14
Test Scene. Ray tree depth 7. Lecture Notes #14
When to stop ? • Need to know when to stop the recursion. • Can define a fixed depth. • Hall introduced adaptive tree depth control. • Calculate maximum contribution of a ray to a pixels final value. • Multiply contribution of ray’s ancestors down the tree. • Stop when below some threshold, perhaps stack overflow. • May miss major contribution this way (culled bright pt) Lecture Notes #14
Adaptive tree depth control. 0.3 Viewpoint 0.2 Lecture Notes #14
Adaptive tree depth control. 0.3 0.3 * 0.2 Viewpoint 0.2 * 0.2 0.2 Lecture Notes #14
Global vs. Local illumination. • In both an object hit by a ray, if lit by a light source, is illuminated by a local illumination model, i.e with specular, diffuse & ambient terms. • Global: a reflected ray, a shadow feeler, and a transmission ray (if appropriate) are also cast into the scene. • Phong term only reflects light source. • Need to adjust local illumination terms to normalise total light values. • Inconsistent if local and global specular terms used together as local term spreads light source, global term does not. Lecture Notes #14
Increased reflectivity Phong specular term is held constant Increased transmissivity Lecture Notes #14
Incorrect result. • Effect of not normalising reflection and transmission – light appears to be created. • Reflection & transmission = 100% Lecture Notes #14
Problems with Ray-tracing. • A serious problem with Ray tracing is rays are traced from the eye. • Refraction is not physically correct. • Shadow rays are cast only to light sources • Lights reflected in mirrors do not cast shadows • Shadows of transparent objects don’t exhibit refraction. • Still need local illumination for diffuse shading. Lecture Notes #14
Speeding up Ray Tracing • Ray tracing is slow, not real-time. • Use appropriate extents for objects. • Ray tracing is inherently parallel. • Use item buffers – z-ordered lists, store closest object per pixel. • Use light buffer – z-ordered list per light ray used for shadowing. Lecture Notes #14
Recommended Reading • Foley at al. Chapter 16, sections 16.11, 16.12 and 16.12.5. • Introductory text Chapter 14 sections 14.6 and 14.7. • Most graphics texts cover recursive ray tracing. Lecture Notes #14