Download presentation
Presentation is loading. Please wait.
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()=NL Cp= ka (SR, SG, SB) + kd NL (SR, SG, SB) Surface 2 N
dA 90 - dAcos() L N Cp= ka (SR, SG, SB) + kd NL (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 NL (SR, SG, SB) + ks (RV)n(1, 1, 1)
Phong Lighting Model cos() = RV 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 NL (SR, SG, SB) + ks (RV)n(1, 1, 1) April 27, 2019
45
Powers of cos() cos10() cos20() cos40() cos80() April 27, 2019
46
Computing R L + R = (2 LN) N R = (2 LN) N - L LN LN R L N L+R R L
April 27, 2019
47
Cp= ka (SR, SG, SB) + kd NL (SR, SG, SB) + ks (HN)n (1, 1, 1)
The Halfway Vector From the picture + = - + So = /2. H = L+ V |L+ V| Use HN instead of RV. 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 NL (SR, SG, SB) + ks (HN)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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.