400 likes | 583 Views
Week 10 - Wednesday. CS361. Last time. What did we talk about last time? Shadow volumes and shadow mapping Ambient occlusion. Questions?. Project 3. Assignment 4. Student Lecture: Reflections. Reflections. Environment mapping. We already talked about reflections!
E N D
Week 10 - Wednesday CS361
Last time • What did we talk about last time? • Shadow volumes and shadow mapping • Ambient occlusion
Environment mapping • We already talked about reflections! • Environment mapping was our solution • But it only works for distant objects
Planar reflections • The simplest reflections to deal with are planar reflections • Reflections off of a flat surface like a mirror • An ideal reflector follows the law of reflection • Angle of incidence is the angle of reflection • Reputedly discovered by Hero of Alexandria between 10 and 70 AD • Vector form: where is the reflected vector, is the incoming vector, is the surface normal viewer n angle of incidence angle of reflection reflector
Reflection rendering • The reflected object can be copied, moved to reflection space and rendered there • Lighting must also be reflected • Or the viewpoint can be reflected
Transparency • Reflector must be partially transparent so that the reflected scene can be viewed • The degree of transparency acts simulates the reflectivity factor • Care must be taken when setting up back face culling for the reflection pass • Also, the scene may be rendered where there is no reflector
Hiding incorrect reflections • This problem can by solved by using the stencil buffer • The stencil buffer is set to areas where a reflector is present • Then the reflector scene is rendered with stenciling on
Hiding things behind the mirror • Objects behind the mirror should not be rendered • A user defined clipping plane can solve this problem • Create a clipping plane and place it on the same plane as the mirror
Visual improvements • Reflections can be enhanced by blurring them or fading them to black as the viewer moves away • Objects can be rendered to a texture with a Z-buffer • The Z-buffer can be used to blur or darken objects that are further away • Frosted glass can also be created by blurring
Curved Reflections • Ray tracing can be used to create general reflections • Environment mapping can be used for recursive reflections in curved surfaces • To do so, render the scene repeatedly in 6 directions for each reflective object
Transmittance • How much light gets through your material? • That's transmittance • If your samples are of equal thickness, you can apply a color filter
Beer-Lambert Law • The Beer-Lambert law says how much light gets through an object of varying thickness • Transmittance is: where is the absorption coefficient, c is the concentration of the material and d is the thickness d
What is refraction? • It's a property of waves (not just light) • Describes the way the path of waves is bent when it changes medium
What causes refraction? • Refraction and diffraction results of the Huygens–Fresnel principle • Each point of a medium disturbed by a wave becomes a point of propagation for the disturbance
Principle of Least Time • Another way of looking at refraction is through the Fermat's Principle of Least Time • The path taken between two points by a ray of light is the path that can be traversed in the smallest amount of time • The light actually bends to spend less time in a slower material
Snell's Law • Snell's Law allows us to calculate the amount of refraction
Total internal reflection • If the angle of refraction is greater than the critical angle, the light will be reflected back into the initial medium
Exotic effects • If the material has different refractive indices for different polarizations, two images will appear offset from each other • Birefringence • The delta between the refractive indices of different polarizations determines how much the light will be offset • Modern metamaterials exist with a negative refractive index • In those cases, light is refracted on the same side of the normal as the incidence
It’s burning! • Light is focused by reflective or refractive surfaces • A caustic is the curve or surface of concentrated light • The name comes from the Greek for burning Reflective: Refractive:
Image space rendering • First: • The scene is rendered from the view of light • Track the diversion of light and see which locations are hit • Store the result in an image with Z-buffer values called a photon buffer • Second: • Treat each location that received light as a point object called a splat • Transform these to eye viewpoint and render them to a caustic map • Third: • Project the map onto the screen and combine with the shadow map
Object Space Rendering • Look at each generator triangle • Those that are specular or refractive • Each vertex on each generator triangle has a normal • Create a caustic volume like a shadow volume except that the sides are warped by either reflection or refraction • For receiver pixels in the volume, intensity is computed
Subsurface scattering • Subsurface scattering occurs when light enters an object, bounces around, and exits at a different point • If the exit point is close to the entrance point (in the same pixel), we can use a BRDF • If it spans a larger distance, we need an algorithm to track photon propagation
Subsurface scattering • Examples • Pearlescent paint • Human skin • Which matters • Causes • Foreign Particles (pearls) • Discontinuities (air bubbles) • Density variations • Structural changes • We need to know how long light has traveled through the object • Tracking individual photons is impossible, so all algorithms will be statistical
Blurring normals and lighting • Subsurface scattering does not affect specular reflection • We often use normal maps to add detail to specular reflection characteristics • Some work suggests that this same normal map should be ignored for diffuse terms • Or the normalscan be blurred further since surface direction appears to change slowly if light from other directions is exiting diffusely • More complex models render the diffuse lighting onto a texture and then selectively blur R, G, and B components for more realism This texture space diffusion technique was used in The Matrix Reloaded for rendering skin
Depth map techniques • We could cast rays into objects to see where they come out, but it's expensive • An alternative is to use depth maps to record how far the light travels through the object which determines how colored by the object it is • Refraction when the light enters the object is usually ignored • Only exiting refraction is computed
Next time… • Meets on Thursday • Radiosity • Ray Tracing • Precomputed lighting • Precomputed occlusion • Precomputed radiance transfer
Reminders • Assignment 4 is due tomorrow! • Thursday, March 28 by midnight • Keep working on Project 3 • Keep reading Chapter 9