Today Anti-aliasing Surface Parametrization Soft Shadows Global Illumination Path Tracing Radiosity Exercise 2
Sampling Ray Casting is a form of discrete sampling. Rendered Image: Sampling of the ground Truth at regular intervals Signal Frequency? Sampling Frequency? Ground Truth: An Exact Mathematic Representation
Anti-Aliasing Aliasing: A distortion or artifact as a result of sampling. Higher frequency removal Signal Sampled To reproduce the signal fully - Nyquist rate Related problem Moiré
Anti-Aliasing Staircasing Pixels on the boundary
Anti-Aliasing Anti-aliasing - The attempt to reduce or eliminate aliasing artifacts
Uniform Supersampling Instead of sampling one point in every pixel. Sample k 2 times (for some n) in uniform intervals Single Pixel - Single Sample Single Pixel - Multiple Sample Set the pixel color to the average of the k 2 colors sampled
Cast ray through pixel Constructing a ray through a pixel Parameters: Eye point P View direction - towards Up direction Field of view (xfov, yfov) Distance to screen d center of screen right = towards x up right and up define the orientation of the screen. up P c yfov P 0 and d define where it s at. P 0 right
Cast ray through pixel P c = P 0 + towards*d P is the pixel at (x pixel, y pixel ) = (2, 2) Calculate (x screen, y screen ) P = P c + x screen *right + y screen *up P up V = (P - P 0 ) / P - P 0 ray direction to P. V P c right yfov ray = P 0 + t*v P 0
Cast ray through pixel Transforming (x pixel, y pixel ) to (x screen, y screen ) xfov = 2.0 pixel-width = 320 px +x +up P c +right yfov = 2.0 +y pixel-height = 240 px Screen In Object Space Application Window
Uniform Supersampling P c = P 0 + towards*d P is the pixel at (x pixel, y pixel ) = (2.5, 2.5) Pixel coordinates can now have fractions Calculate (x screen, y screen ) P = P c + x screen *right + y screen *up P up V = (P - P 0 ) / P - P 0 ray direction to P. P c right yfov ray = P 0 + t*v V do this k 2 times, average results. P 0
Uniform Supersampling Where should you sample the pixel? 1 sample per pixel ¼ ¾ ¼ ¾ 0 ½ 1 0 0 0 ½ 1 ½ 1 ½ 1 4 sample per pixel 9 sample per pixel
Uniform Supersampling Global uniformity: Distance between Samples is always the same What NOT to do: Two samples in the same point
Uniform Supersampling
Adaptive Supersampling If the difference between adjacent samples is too great, divide the pixel to 4 and cast more rays Smooth pixels need only 4 samples Edges can still be reproduced smoothly Reuse common rays
Stochastic Sampling Uniform sampling often still can t account for frequency issues Sub-divide the pixel to a grid Choose a random point in every cell Makes the interval of sampling non-uniform Reduce aliasing by introducing noise
Questions?
Surface Parameterization How to add a 2D texture to a surface embedded in 3D? (x,y,z)
Surface Parameterization Simple case - rectangular plane u P 3 P 4 v P P 1 u [0,1], v [0,1] 1. Extract (u,v) from P 2. Get the pixel color at (u,v) P = -v * (P3-P1) + u * (P2-P1) Baricentric coordinates Equation P 2
Surface Parameterization Simple case - rectangular plane u P 3 P 4 v P P 1 u [0,1], v [0,1] 1. Extract (u,v) from P 2. Get the pixel color at (u,v) P = -v * (P3-P1) + u * (P2-P1) Baricentric coordinates Equation P 2
Surface Parameterization A Little more complex - Sphere u P v u [0,1], v [0,1] P = (x,y,z) (,,r) u =, v = 1. Extract (u,v) from P 2. Get the pixel color at (u,v) Sphertical Coordinates
Surface Parameterization General Case A Triangle Mesh
Questions?
Area Light So far we ve see only ideal light sources Light from infinity Point Light Spot Light These produce Hard Shadows Point Light Directed Light To Create a realistic Shadow one option is to use a more realistic light source Area Light
Area Light Point light - Hard Shadows Lighs Source Full Shadow Umbra
Area Light Simple area light - simulated using a uniform grid of point lights. Full Shadow Umbra Lighs Source Soft Shadow Penumbra
Area Light Disadvantages of the simple uniform method: Very time consuming If the grid resolution is low, artifacts appear in the shadows.
Area Light Monte-Carlo Area light Light is modeled as a sphere Highest intensity in the middle. Gradually fade out. Shoot n rays to random points in the sphere Average their value.
Monte Carlo vs Las Vegas Two types of randomized, probabilistic methods for constructing an algorithm Results are statistic Has an expectancy E(X) to be correct. Monte Carlo: Has a predictable time complexity. Result may not be correct. Better results the more you run it Las Vegas: Time complexity not guaranteed Always returns the correct answer Time Result Monte Carlo proof E(X) Las Vegas E(X) proof Convert Monte-Carlo to Las-Vegas?
Global Illumination In the real world light is everywhere. Reflects in every direction from every surface onto every surface. Anywhere in the world, light comes from infinite directions around. In the lighting equation we ve used the Ambient intensity to approximate this.
Monte-Carlo Path Tracing Conventional Ray Tracing: Cast rays from eye through each pixel Trace secondary rays to light sources and reflections
Monte-Carlo Path Tracing A generalization of the concept of Monte-Carlo area light Cast rays from eye through each pixel in a hemisphere Cast random rays from the visible point, average contributions
Monte-Carlo Path Tracing Cast rays from eye through each pixel Cast random rays from the visible point, average contributions Recurse
Monte-Carlo Path Tracing Cast rays from eye through each pixel Cast random rays from the visible point Recurse, accumulate contributions
Monte-Carlo Ray Tracing Cast random rays from the visible point Recurse, accumulate contributions Sample light from all points we visited
Monte-Carlo Path Tracing 1 random ray per pixel, 1 level recursion
Monte-Carlo Path Tracing 16 random rays per pixel, 3 level recursion
Monte-Carlo Path Tracing 64 random rays per pixel, 3 level recursion
Monte-Carlo Path Tracing 64 random rays per pixel, 3 level recursion Notice Color Bleed To White ball
Monte-Carlo Path Tracing 16 random rays per pixel 1 level recursion 16 random rays per pixel 100 level recursion
Glossary Ray Casting: Cast rays from eye through each pixel, find first hit Ray Tracing: Cast rays from eye through each pixel, find first hit Recourse- Ray changes course/divides into few rays Accumulate all results. Path Tracing Cast rays from eye through each pixel, find first hit Recourse- Shoot random rays in the reflect hemisphere Accumulate All results 1-3 rays per recursion step 1-100 rays per recursion step
Glossary Direct Illumination Find a interaction between objects and emitters of light How much light from light source X hits this point Ray Tracing Global Illumination Find interaction between objects and complete environment How much light hits this point, Indirect lighting Path Tracing Faked with The Ambient constant in the light equation. Radiosity Photon mapping
Radiosity (simplified) A different approach to Global Illumination Divide the scene into a set of small areas The radiosicy of a patch is the total amount of light emitted from it Calculate all the amount of light a patch receives from all other patches. Calculate the radiosity Iterate.
Radiosity Calculating the amount of light a patch receives Construct a Hemicube on the patch Render the scene on the hemicube Average the color.
Radiosity Rendering on a hemicube
Radiosity First Iteration Initial State Light emitted = Color * Light received
Radiosity 320 th Iteration 32 nd iteration Compute light emissions once, View from any angle!
Radiosity Direct Illumination Radiosity
Radiosity Surface Subdivision Using a uniform mesh? Wasteful. Smooth areas don t need a great level of detail Hierarchical subdivision Areas with large changes get subdivided.
Ray Tracing exercise Pair up!