Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 445 / 645 Introduction to Computer Graphics Lecture 16 Lighting Lighting.

Similar presentations


Presentation on theme: "CS 445 / 645 Introduction to Computer Graphics Lecture 16 Lighting Lighting."— Presentation transcript:

1 CS 445 / 645 Introduction to Computer Graphics Lecture 16 Lighting Lighting

2 Review We have a model for determining the brightness (radiance) of a ray rooted at a point on a surface and oriented towards the cameraDirect illumination only –Ambient term –Diffuse term –Specular term We have a model for determining the brightness (radiance) of a ray rooted at a point on a surface and oriented towards the cameraDirect illumination only –Ambient term –Diffuse term –Specular term

3 Combining Everything Simple analytic model: diffuse reflection +diffuse reflection + specular reflection +specular reflection + emission +emission + “ambient”“ambient” Simple analytic model: diffuse reflection +diffuse reflection + specular reflection +specular reflection + emission +emission + “ambient”“ambient” Surface

4 The Final Combined Equation Single light source: N L R V Viewer  

5 What influences these terms? Influencing factors Light positionLight position Sample point positionSample point position Camera positionCamera position Surface angle with respect to light vectorSurface angle with respect to light vector Surface angle with respect to camera vectorSurface angle with respect to camera vector Influencing factors Light positionLight position Sample point positionSample point position Camera positionCamera position Surface angle with respect to light vectorSurface angle with respect to light vector Surface angle with respect to camera vectorSurface angle with respect to camera vector

6 Direct illumination questions Camera moves from one position to anotherCamera moves from one position to another –Angle between light and surface unchanged –Angle between camera and surface changes A tracking camera follows object as it moves in sceneA tracking camera follows object as it moves in scene –Angle between light and surface changes –Angle between camera and surface unchanged An object moves from on position to anotherAn object moves from on position to another –Both angles have changed Camera moves from one position to anotherCamera moves from one position to another –Angle between light and surface unchanged –Angle between camera and surface changes A tracking camera follows object as it moves in sceneA tracking camera follows object as it moves in scene –Angle between light and surface changes –Angle between camera and surface unchanged An object moves from on position to anotherAn object moves from on position to another –Both angles have changed

7 Provides a way to measure radiance at a point in a specific direction What points?What points? –Vertices  What do you do for points between vertices? Provides a way to measure radiance at a point in a specific direction What points?What points? –Vertices  What do you do for points between vertices? Direct Illumination This becomes a problem of “shading” and we’ll discuss it later

8 Provides a way to measure radiance at a point in a specific direction What points?What points? –Other points to sample? Provides a way to measure radiance at a point in a specific direction What points?What points? –Other points to sample? Direct Illumination This is a form of ray casting. We’ll talk about it next

9 Direct Illumination Provides a way to measure radiance at a point in a specific direction What points?What points? What directions?What directions? –Towards the camera –No secondary effects Provides a way to measure radiance at a point in a specific direction What points?What points? What directions?What directions? –Towards the camera –No secondary effects

10 Overview Direct (Local) Illumination Emission at light sourcesEmission at light sources Scattering at surfacesScattering at surfaces Global illumination ShadowsShadows RefractionsRefractions Inter-object reflectionsInter-object reflections Direct (Local) Illumination Emission at light sourcesEmission at light sources Scattering at surfacesScattering at surfaces Global illumination ShadowsShadows RefractionsRefractions Inter-object reflectionsInter-object reflections Direct Illumination

11 Global Illumination We’ve glossed over how light really works And we will continue to do so… One step better Global Illumination The notion that a point is illuminated by more than light from local lights; it is illuminated by all the emitters and reflectors in the global sceneThe notion that a point is illuminated by more than light from local lights; it is illuminated by all the emitters and reflectors in the global scene We’ve glossed over how light really works And we will continue to do so… One step better Global Illumination The notion that a point is illuminated by more than light from local lights; it is illuminated by all the emitters and reflectors in the global sceneThe notion that a point is illuminated by more than light from local lights; it is illuminated by all the emitters and reflectors in the global scene

12 The ‘Rendering Equation’ Jim Kajiya (Current head of Microsoft Research) developed this in 1986 I(x, x’) = total intensity from point x’ to x g(x, x’) = 0 when x/x’ are occluded = 1/d 2 otherwise (d = distance between x and x’)  (x, x’) = intensity emitted by x’ to x  (x, x’,x’’) = intensity of light reflected from x’’ to x through x’ S = all points on all surfaces Jim Kajiya (Current head of Microsoft Research) developed this in 1986 I(x, x’) = total intensity from point x’ to x g(x, x’) = 0 when x/x’ are occluded = 1/d 2 otherwise (d = distance between x and x’)  (x, x’) = intensity emitted by x’ to x  (x, x’,x’’) = intensity of light reflected from x’’ to x through x’ S = all points on all surfaces

13 x'x' xx g(x, x') 1 or 1/d 2 depending on visibility

14 x'x' xx  (x, x') emissivityemissivity

15 x'x' xx  (x', x'')  (x, x', x'')

16 The ‘Rendering Equation’ The light that hits x from x’ is the direct illumination from x’ and all the light reflected by x’ from all x’’ To implement: Must handle recursion effectivelyMust handle recursion effectively Must support diffuse and specular lightMust support diffuse and specular light Must model object shadowingMust model object shadowing The light that hits x from x’ is the direct illumination from x’ and all the light reflected by x’ from all x’’ To implement: Must handle recursion effectivelyMust handle recursion effectively Must support diffuse and specular lightMust support diffuse and specular light Must model object shadowingMust model object shadowing

17 The ‘Rendering Equation’ What’s really hard about computing this? The integral… How can one compute  (x, x') for all points x and x'?How can one compute  (x, x') for all points x and x'? Approximate!!!Approximate!!! What’s really hard about computing this? The integral… How can one compute  (x, x') for all points x and x'?How can one compute  (x, x') for all points x and x'? Approximate!!!Approximate!!!

18 Approximating the Rendering Equation Don’t integrate over all points, just a subset Ray TracingRay Tracing –Considered a Monte Carlo approximation  Monte Carlo == Random “sampling” of real answer Consider pulling colored balls from an urn to approximate the ratio of its contents Don’t integrate over all points, just a subset Ray TracingRay Tracing –Considered a Monte Carlo approximation  Monte Carlo == Random “sampling” of real answer Consider pulling colored balls from an urn to approximate the ratio of its contents by Gilles Tran

19 Approximating the Rendering Equation Group “all points” into sets and consider all sets RadiosityRadiosity –Considered a finite- element approximation  What are the models that approximate light transfer from one finite element to another? Consider electing the President from the sum of the states rather than the sum of all people Group “all points” into sets and consider all sets RadiosityRadiosity –Considered a finite- element approximation  What are the models that approximate light transfer from one finite element to another? Consider electing the President from the sum of the states rather than the sum of all people

20 Ray Casting A simple form of Ray Tracing View plane Eye position Simplest method is ray casting Simplest method is ray casting Rays through view plane

21 Ray Casting To create each sample … Construct ray from eye position through view planeConstruct ray from eye position through view plane Find first surface intersected by ray through pixelFind first surface intersected by ray through pixel Compute color sample based on surface radianceCompute color sample based on surface radiance To create each sample … Construct ray from eye position through view planeConstruct ray from eye position through view plane Find first surface intersected by ray through pixelFind first surface intersected by ray through pixel Compute color sample based on surface radianceCompute color sample based on surface radiance

22 Ray Casting For each sample … Construct ray from eye position through view planeConstruct ray from eye position through view plane Find first surface intersected by ray through pixelFind first surface intersected by ray through pixel Compute color sample based on surface radianceCompute color sample based on surface radiance For each sample … Construct ray from eye position through view planeConstruct ray from eye position through view plane Find first surface intersected by ray through pixelFind first surface intersected by ray through pixel Compute color sample based on surface radianceCompute color sample based on surface radiance Samples on view plane Eye position Rays through view plane

23 Ray Casting Simple implementation: Image RayCast(Camera camera, Scene scene, int width, int height) { Image image = new Image(width, height); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Ray ray = ConstructRayThroughPixel(camera, i, j); Intersection hit = FindIntersection(ray, scene); image[i][j] = GetColor(hit); } return image; } Image RayCast(Camera camera, Scene scene, int width, int height) { Image image = new Image(width, height); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Ray ray = ConstructRayThroughPixel(camera, i, j); Intersection hit = FindIntersection(ray, scene); image[i][j] = GetColor(hit); } return image; }

24 Ray Casting Simple implementation: Image RayCast(Camera camera, Scene scene, int width, int height) { Image image = new Image(width, height); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Ray ray = ConstructRayThroughPixel(camera, i, j); Intersection hit = FindIntersection(ray, scene); image[i][j] = GetColor(hit); } return image; } Image RayCast(Camera camera, Scene scene, int width, int height) { Image image = new Image(width, height); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Ray ray = ConstructRayThroughPixel(camera, i, j); Intersection hit = FindIntersection(ray, scene); image[i][j] = GetColor(hit); } return image; }

25 Constructing Ray Through a Pixel right back Up direction P0P0 towards View Plane P V Ray: P = P 0 + tV

26 Constructing Ray Through a Pixel 2D Example d  towards P0P0 right right = towards x up  = frustum half-angle d = distance to view plane P1 = P 0 + d*towards – d*tan(  )*right P2 = P 0 + d*towards + d*tan(  )*right P1 P2 2*d*tan(  P P = P1 + (i/width + 0.5) * (P2 - P1) = P1 + (i/width + 0.5) * 2*d*tan (  )*right V = (P - P 0 ) / ||P - P 0 || V Ray: P = P 0 + tV

27 Ray Casting Simple implementation: Image RayCast(Camera camera, Scene scene, int width, int height) { Image image = new Image(width, height); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Ray ray = ConstructRayThroughPixel(camera, i, j); Intersection hit = FindIntersection(ray, scene); image[i][j] = GetColor(hit); } return image; } Image RayCast(Camera camera, Scene scene, int width, int height) { Image image = new Image(width, height); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Ray ray = ConstructRayThroughPixel(camera, i, j); Intersection hit = FindIntersection(ray, scene); image[i][j] = GetColor(hit); } return image; }

28 Ray-Scene Intersection Intersections with geometric primitives SphereSphere TriangleTriangle Groups of primitives (scene)Groups of primitives (scene) Intersections with geometric primitives SphereSphere TriangleTriangle Groups of primitives (scene)Groups of primitives (scene)

29 Ray-Sphere Intersection Ray: P = P 0 + tV Sphere: |P - C| 2 - r 2 = 0 P0P0 V C P r P’

30 Ray-Sphere Intersection Ray: P = P 0 + tV Sphere: |P - C| 2 - r 2 = 0 Substituting for P, we get: |P 0 + tV - C| 2 - r 2 = 0 Solve quadratic equation: at 2 + bt + c = 0 where: a = |V| 2 = 1 b = 2 V (P 0 - C) c = |P 0 - C| 2 - r 2 P = P 0 + tV P0P0 V C P r P’ If ray direction is normalized!

31 Ray-Sphere Intersection P0P0 V C P r N = (P - C) / ||P - C|| N Need normal vector at intersection for lighting calculations

32 Ray-Scene Intersection Intersections with geometric primitives SphereSphere »Triangle Groups of primitives (scene)Groups of primitives (scene) Intersections with geometric primitives SphereSphere »Triangle Groups of primitives (scene)Groups of primitives (scene)

33 Ray-Triangle Intersection First, intersect ray with plane Then, check if point is inside triangle First, intersect ray with plane Then, check if point is inside triangle P P0P0 V

34 Ray-Plane Intersection Ray: P = P 0 + tV Plane: P N + d = 0 Substituting for P, we get: (P 0 + tV) N + d = 0 Solution: t = -(P 0 N + d) / (V N) N P P0P0 VP = P 0 + tV

35 Ray-Triangle Intersectio Check if point is inside triangle parametrically P P0P0 Compute  P =  (T 2 -T 1 ) +  (T 3 -T 1 ) Check if point inside triangle. 0   1 and 0   1  V   T1T1 T2T2 T3T3

36 Other Ray-Primitive Intersections Cone, cylinder, ellipsoid: Similar to sphereSimilar to sphereBox Intersect 3 front-facing planes, return closestIntersect 3 front-facing planes, return closest Convex polygon Same as triangle (check point-in-polygon algebraically)Same as triangle (check point-in-polygon algebraically) Concave polygon Same plane intersectionSame plane intersection More complex point-in-polygon testMore complex point-in-polygon test Cone, cylinder, ellipsoid: Similar to sphereSimilar to sphereBox Intersect 3 front-facing planes, return closestIntersect 3 front-facing planes, return closest Convex polygon Same as triangle (check point-in-polygon algebraically)Same as triangle (check point-in-polygon algebraically) Concave polygon Same plane intersectionSame plane intersection More complex point-in-polygon testMore complex point-in-polygon test

37 Ray Casting – direct illumination Trace primary rays from camera Direct illumination from unblocked lights onlyDirect illumination from unblocked lights only Trace primary rays from camera Direct illumination from unblocked lights onlyDirect illumination from unblocked lights only

38 Shadows Shadow term tells if light sources are blocked Cast ray towards each light source L iCast ray towards each light source L i S i = 0 if ray is blocked, S i = 1 otherwiseS i = 0 if ray is blocked, S i = 1 otherwise 0 < S i < 1  soft shadows (hack)0 < S i < 1  soft shadows (hack) Shadow term tells if light sources are blocked Cast ray towards each light source L iCast ray towards each light source L i S i = 0 if ray is blocked, S i = 1 otherwiseS i = 0 if ray is blocked, S i = 1 otherwise 0 < S i < 1  soft shadows (hack)0 < S i < 1  soft shadows (hack)

39 Recursive Ray Tracing – second-order effects Also trace secondary rays from hit surfaces Global illumination from mirror reflection and transparencyGlobal illumination from mirror reflection and transparency Also trace secondary rays from hit surfaces Global illumination from mirror reflection and transparencyGlobal illumination from mirror reflection and transparency

40 Mirror reflections Trace secondary ray in mirror direction Evaluate radiance along secondary ray and include it into illumination modelEvaluate radiance along secondary ray and include it into illumination model Trace secondary ray in mirror direction Evaluate radiance along secondary ray and include it into illumination modelEvaluate radiance along secondary ray and include it into illumination model Radiance for mirror reflection ray IRIR

41 Transparency Trace secondary ray in direction of refraction Evaluate radiance along secondary ray and include it into illumination modelEvaluate radiance along secondary ray and include it into illumination model Trace secondary ray in direction of refraction Evaluate radiance along secondary ray and include it into illumination modelEvaluate radiance along secondary ray and include it into illumination model Radiance for refraction ray ITIT

42 Transparency Transparency coefficient is fraction transmitted K T = 1 for translucent object, K T = 0 for opaqueK T = 1 for translucent object, K T = 0 for opaque 0 < K T < 1 for object that is semi-translucent0 < K T < 1 for object that is semi-translucent Transparency coefficient is fraction transmitted K T = 1 for translucent object, K T = 0 for opaqueK T = 1 for translucent object, K T = 0 for opaque 0 < K T < 1 for object that is semi-translucent0 < K T < 1 for object that is semi-translucent Transparency Coefficient KTKT

43 Refractive Transparency For thin surfaces, can ignore change in direction Assume light travels straight through surfaceAssume light travels straight through surface For thin surfaces, can ignore change in direction Assume light travels straight through surfaceAssume light travels straight through surface N L ii T rr rr ii ii T

44 Refractive Tranparency N L ii T rr rr ii For solid objects, apply Snell’s law:

45 Summary Ray casting (direct Illumination) Usually use simple analytic approximations for light source emission and surface reflectanceUsually use simple analytic approximations for light source emission and surface reflectance Recursive ray tracing (global illumination) Incorporate shadows, mirror reflections, and pure refractionsIncorporate shadows, mirror reflections, and pure refractions Ray casting (direct Illumination) Usually use simple analytic approximations for light source emission and surface reflectanceUsually use simple analytic approximations for light source emission and surface reflectance Recursive ray tracing (global illumination) Incorporate shadows, mirror reflections, and pure refractionsIncorporate shadows, mirror reflections, and pure refractions More on global illumination later! All of this is an approximation so that it is practical to compute All of this is an approximation so that it is practical to compute


Download ppt "CS 445 / 645 Introduction to Computer Graphics Lecture 16 Lighting Lighting."

Similar presentations


Ads by Google