Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS G140 Graduate Computer Graphics

Similar presentations


Presentation on theme: "CS G140 Graduate Computer Graphics"— Presentation transcript:

1 CS G140 Graduate Computer Graphics
Prof. Harriet Fell Spring 2006 Lecture 2 - January 23, 2006 April 27, 2019

2 Today’s Topics Ray Tracing More Math Ray-Sphere Intersection
Light: Diffuse Reflection Shadows Phong Shading More Math Matrices Transformations Homogeneous Coordinates April 27, 2019

3 Ray Tracing a World of Spheres
April 27, 2019

4 What is a Sphere Vector3D center; // 3 doubles double radius;
double R, G, B; // for RGB colors between 0 and 1 double kd; // diffuse coeficient double ks; // specular coefficient int specExp; // specular exponent 0 if ks = 0 (double ka; // ambient light coefficient) double kgr; // global reflection coefficient double kt; // transmitting coefficient int pic; // > 0 if picture texture is used April 27, 2019

5 -.01 .01 500 800 // transform theta phi mu distance 1 // antialias
1 // numlights // Lx, Ly, Lz 9 // numspheres //cx cy cz radius R G B ka kd ks specExp kgr kt pic April 27, 2019

6 World of Spheres Vector3D VP; // the viewpoint int numLights;
Vector3D theLights[5]; // up to 5 white lights double ka; // ambient light coefficient int numSpheres; Sphere theSpheres[20]; // 20 sphere max int ppmT[3]; // ppm texture files View sceneView; // transform data double distance; // view plane to VP bool antialias; // if true antialias April 27, 2019

7 Simple Ray Tracing for Detecting Visible Surfaces
select window on viewplane and center of projection for (each scanline in image) { for (each pixel in the scanline) { determine ray from center of projection through pixel; for (each object in scene) { if (object is intersected and is closest considered thus far) record intersection and object name; } set pixel’s color to that of closest object intersected; April 27, 2019

8 Ray Trace 1 Finding Visible Surfaces
April 27, 2019

9 Ray-Sphere Intersection
Given Sphere Center (cx, cy, cz) Radius, R Ray from P0 to P1 P0 = (x0, y0, z0) and P1 = (x1, y1, z1) View Point (Vx, Vy, Vz) Project to window from (0,0,0) to (w,h,0) April 27, 2019

10 Sphere Equation y Center C = (cx, cy, cz) Radius R (x, y, z) x
April 27, 2019

11 Ray Equation P0 = (x0, y0, z0) and P1 = (x1, y1, z1)
The ray from P0 to P1 is given by: P(t) = (1 - t)P0 + tP1 0 <= t <= 1 = P0 + t(P1 - P0) P0 P1 t  April 27, 2019

12 Intersection Equation
P(t) = P0 + t(P1 - P0) 0 <= t <= 1 is really three equations x(t) = x0 + t(x1 - x0) y(t) = y0 + t(y1 - y0) z(t) = z0 + t(z1 - z0) 0 <= t <= 1 Substitute x(t), y(t), and z(t) for x, y, z, respectively in April 27, 2019

13 Solving the Intersection Equation
is a quadratic equation in variable t. For a fixed pixel, VP, and sphere, x0, y0, z0, x1, y1, z1, cx, cy, cz, and R eye pixel sphere are all constants. We solve for t using the quadratic formula. April 27, 2019

14 The Quadratic Coefficients
Set dx = x1 - x0 dy = y1 - y0 dz = z1 - z0 Now find the the coefficients: April 27, 2019

15 Computing Coefficients
April 27, 2019

16 The Coefficients April 27, 2019

17 Solving the Equation April 27, 2019

18 The intersection nearest P0 is given by:
To find the coordinates of the intersection point: April 27, 2019

19 First Lighting Model Ambient light is a global constant.
Ambient Light = ka (AR, AG, AB) ka is in the “World of Spheres” 0  ka  1 (AR, AG, AB) = average of the light sources (AR, AG, AB) = (1, 1, 1) for white light Color of object S = (SR, SG, SB) Visible Color of an object S with only ambient light CS= ka (AR SR, AG SG, AB SB) For white light CS= ka (SR, SG, SB) April 27, 2019

20 Visible Surfaces Ambient Light
April 27, 2019

21 Second Lighting Model Point source light L = (LR, LG, LB) at (Lx, Ly, Lz) Ambient light is also present. Color at point p on an object S with ambient & diffuse reflection Cp= ka (AR SR, AG SG, AB SB)+ kd kp(LR SR, LG SG, LB SB) For white light, L = (1, 1, 1) Cp= ka (SR, SG, SB) + kd kp(SR, SG, SB) kp depends on the point p on the object and (Lx, Ly, Lz) kd depends on the object (sphere) ka is global ka + kd  1 April 27, 2019

22 Diffuse Light April 27, 2019

23 Lambertian Reflection Model Diffuse Shading
For matte (non-shiny) objects Examples Matte paper, newsprint Unpolished wood Unpolished stones Color at a point on a matte object does not change with viewpoint. April 27, 2019

24 Physics of Lambertian Reflection
Incoming light is partially absorbed and partially transmitted equally in all directions April 27, 2019

25 Geometry of Lambert’s Law
N L L 90 -  dA dA dAcos() 90 -  Surface 1 Surface 2 April 27, 2019

26 cos()=NL Cp= ka (SR, SG, SB) + kd NL (SR, SG, SB) Surface 2 N
dA 90 -  dAcos() L N Cp= ka (SR, SG, SB) + kd NL (SR, SG, SB) April 27, 2019

27 Finding N N = (x-cx, y-cy, z-cz) |(x-cx, y-cy, z-cz)| normal (x, y, z)
radius (cx, cy, cz) April 27, 2019

28 Diffuse Light 2 April 27, 2019

29 Time for a Break April 27, 2019

30 Shadows on Spheres April 27, 2019

31 More Shadows April 27, 2019

32 Finding Shadows Shadow Ray P Pixel gets shadow color April 27, 2019

33 Shadow Color Given Ray from P (point on sphere S) to L (light) P= P0 = (x0, y0, z0) and L = P1 = (x1, y1, z1) Find out whether the ray intersects any other object (sphere). If it does, P is in shadow. Use only ambient light for pixel. April 27, 2019

34 Shape of Shadows April 27, 2019

35 Different Views April 27, 2019

36 Planets April 27, 2019

37 Starry Skies April 27, 2019

38 Shadows on the Plane April 27, 2019

39 Finding Shadows on the Back Plane
Shadow Ray P Pixel in Shadow April 27, 2019

40 Close up April 27, 2019

41 On the Table April 27, 2019

42 Phong Highlight April 27, 2019

43 Phong Lighting Model Light The viewer only sees the light when  is 0.
Normal Reflected View The viewer only sees the light when  is 0. N L R V We make the highlight maximal when  is 0, but have it fade off gradually. Surface April 27, 2019

44 Cp= ka (SR, SG, SB) + kd NL (SR, SG, SB) + ks (RV)n(1, 1, 1)
Phong Lighting Model cos() = RV We use cosn(). The higher n is, the faster the drop off. N L R V For white light Surface Cp= ka (SR, SG, SB) + kd NL (SR, SG, SB) + ks (RV)n(1, 1, 1) April 27, 2019

45 Powers of cos() cos10() cos20() cos40() cos80() April 27, 2019

46 Computing R L + R = (2 LN) N R = (2 LN) N - L LN LN R L N L+R R L
April 27, 2019

47 Cp= ka (SR, SG, SB) + kd NL (SR, SG, SB) + ks (HN)n (1, 1, 1)
The Halfway Vector From the picture +  =  -  +  So  = /2. H = L+ V |L+ V| Use HN instead of RV. H is less expensive to compute than R. N H This is not generally true. Why? L R V Surface Cp= ka (SR, SG, SB) + kd NL (SR, SG, SB) + ks (HN)n (1, 1, 1) April 27, 2019

48 Varied Phong Highlights
April 27, 2019

49 Varying Reflectivity April 27, 2019

50 More Math Matrices Transformations Homogeneous Coordinates
April 27, 2019

51 Matrices We use 2x2, 3x3, and 4x4 matrices in computer graphics.
We’ll start with a review of 2D matrices and transformations. April 27, 2019

52 Basic 2D Linear Transforms
April 27, 2019

53 Scale by .5 (1, 0) (0.5, 0) (0, 1) (0, 0.5) April 27, 2019

54 Scaling by .5 y x y x April 27, 2019

55 General Scaling y x y x April 27, 2019

56 General Scaling y x y x sx 1 sy April 27, 2019

57 Rotation sin() cos() -sin() cos() April 27, 2019

58 Rotation y x y x April 27, 2019

59 Reflection in y-axis April 27, 2019

60 Reflection in y-axis y x y x April 27, 2019

61 Reflection in x-axis April 27, 2019

62 Reflection in x-axis y y x x April 27, 2019

63 Shear-x s April 27, 2019

64 Shear x y x y x April 27, 2019

65 Shear-y s April 27, 2019

66 Shear y y x y x April 27, 2019

67 Linear Transformations
Scale, Reflection, Rotation, and Shear are all linear transformations They satisfy: T(au + bv) = aT(u) + bT(v) u and v are vectors a and b are scalars If T is a linear transformation T((0, 0)) = (0, 0) April 27, 2019

68 Composing Linear Transformations
If T1 and T2 are transformations T2 T1(v) =def T2( T1(v)) If T1 and T2 are linear and are represented by matrices M1 and M2 T2 T1 is represented by M2 M1 T2 T1(v) = T2( T1(v)) = (M2 M1)(v) April 27, 2019

69 Reflection About an Arbitrary Line (through the origin)
x y x April 27, 2019

70 Reflection as a Composition
y x April 27, 2019

71 Decomposing Linear Transformations
Any 2D Linear Transformation can be decomposed into the product of a rotation, a scale, and a rotation if the scale can have negative numbers. M = R1SR2 April 27, 2019

72 Rotation about an Arbitrary Point
x y x This is not a linear transformation. The origin moves. April 27, 2019

73 Translation (x, y)(x+a,y+b) (a, b)
This is not a linear transformation. The origin moves. April 27, 2019

74 Homogeneous Coordinates
y y Embed the xy-plane in R3 at z = 1. (x, y)  (x, y, 1) x x z April 27, 2019

75 2D Linear Transformations as 3D Matrices
Any 2D linear transformation can be represented by a 2x2 matrix or a 3x3 matrix April 27, 2019

76 2D Linear Translations as 3D Matrices
Any 2D translation can be represented by a 3x3 matrix. This is a 3D shear that acts as a translation on the plane z = 1. April 27, 2019

77 Translation as a Shear y y x x z April 27, 2019


Download ppt "CS G140 Graduate Computer Graphics"

Similar presentations


Ads by Google