Upload
damon-johns
View
220
Download
3
Embed Size (px)
Citation preview
Introduction to 3D GraphicsIntroduction to 3D Graphics
Lecture 2: Mathematics of Lecture 2: Mathematics of the Simple Camerathe Simple Camera
Anthony SteedAnthony Steed
University College LondonUniversity College London
OverviewOverview
Basic MathsBasic Maths– PointsPoints– VectorsVectors
Simple CameraSimple Camera– Scenes with spheresScenes with spheres– COP on +zCOP on +z
Local illuminationLocal illumination– Ambient Ambient – DiffuseDiffuse– SpecularSpecular
OverviewOverview
Basic MathsBasic Maths– PointsPoints– VectorsVectors
Simple CameraSimple Camera– Scenes with spheresScenes with spheres– COP on +z COP on +z
Local illuminationLocal illumination– Ambient Ambient – DiffuseDiffuse– SpecularSpecular
Basic MathsBasic Maths
In computer graphics we need In computer graphics we need mathematics both for describing our mathematics both for describing our scenes and also for performing scenes and also for performing operations on it, such as projecting operations on it, such as projecting and transforming it.and transforming it.
Coordinate systems (right- and left-Coordinate systems (right- and left-handed), serves as a reference point.handed), serves as a reference point.
3 axis labelled x, y, z at right angles. 3 axis labelled x, y, z at right angles.
Co-ordinate SystemsCo-ordinate Systems
X
Y
Z
Right-Handed System(Z comes out of the screen)
X
Y
Z
Left-Handed System(Z goes in to the screen)
Points, P (x, y, z)Points, P (x, y, z)
Gives us a position in relation to Gives us a position in relation to the origin of our coordinate systemthe origin of our coordinate system
Vectors, V (x, y, z)Vectors, V (x, y, z)
Is a Is a direction direction in 3D spacein 3D space
Points != VectorsPoints != Vectors– Point – Point = VectorPoint – Point = Vector– Vector+Vector = VectorVector+Vector = Vector– Point + Vector = PointPoint + Vector = Point– Point + Point = ?Point + Point = ?
Vectors, V (x, y, z)Vectors, V (x, y, z)
v
w
v + w
Vector additionsum v + w
v2v
(-1)v (1/2)V
Scalar multiplication of vectors (they remain parallel)
v
w
Vector differencev - w = v + (-w)
v
w
v - w
x
y
Vector OP
P
O
Vectors Vectors VV
Length (modulus) of a vector Length (modulus) of a vector VV (x, (x, y, z)y, z)– ||VV| = | =
A unit vectorA unit vector–
222 zyx
||V of modulus
Vvector ^
V
VV
Dot ProductDot Product
a · b = |a| |b| cosa · b = |a| |b| coscoscos = a · b/ |a| |b| = a · b/ |a| |b|
a · b = xa · b = xaa ·x ·xbb + y + yaa ·y ·ybb + z + zaa ·z ·zbb
what happens when the vectors are unitwhat happens when the vectors are unit if dot product == 0 or == 1?if dot product == 0 or == 1? This is purely a scalar number not a This is purely a scalar number not a
vectorvector
Cross ProductCross Product
The result is not a scalar but a vector The result is not a scalar but a vector which is normal to the plane of the which is normal to the plane of the other 2other 2
direction is found using the determinantdirection is found using the determinant
– i(yi(yvvzzuu -z -zvvyyuu), -j(x), -j(xvvzzuu - z - zvvxxuu), k(x), k(xvvyyuu - y - yvvxxuu))
size is a x b = |a||b|sinsize is a x b = |a||b|sin cross product of vector with it self is nullcross product of vector with it self is null
uuu
vvv
zyx
zyx
kji
uuu
vvv
zyx
zyx
kji
uuu
vvv
zyx
zyx
kji
uuu
vvv
zyx
zyx
kji
Parametric equation of a Parametric equation of a line (ray)line (ray)
Given two points P0 = (x0, y0, z0) and P1 = (x1, y1, z1) the line passing through them can be expressed as:
P(t) = P0 + t(P1 - P0)x(t) = x0 + t(x1 - x0)
y(t) = y0 + t(y1 - y0)
z(t) = z0 + t(z1 - z0)
=
With - < t <
Equation of a sphereEquation of a sphere
a
bchypotenuse
a2 + b2 = c2
P
xp
yp
(0, 0)
r
x2 + y2 = r2
Pythagoras Pythagoras Theorem:Theorem:
Given a circle Given a circle through the origin through the origin with radius r, then with radius r, then for any point P on for any point P on it we have:it we have:
Equation of a sphereEquation of a sphere
If the circle is not centered on the origin:
(0, 0)
P
xp
yp
r
xc
yc ab
a
ba2 + b2 = r2
We still have
buta = xp- xc
b = yp- yc
So for the general case (x- xc)2 + (y- yc)
2 = r2
(xp,yp)
(xc,yc)
Equation of a sphereEquation of a sphere
Pythagoras theorem generalises to 3D givinga2 + b2 + c2 = d2 Based on that we can easily prove that the general equation of a sphere is:
(x- xc)2 + (y- yc)
2 + (z- zc)2 = r2
and at origin: x2 + y2 + z2 = r2
OverviewOverview
Basic MathsBasic Maths– PointsPoints– VectorsVectors
Simple CameraSimple Camera– Scenes with spheresScenes with spheres– COP on +zCOP on +z
Local illuminationLocal illumination– Ambient Ambient – DiffuseDiffuse– SpecularSpecular
Simple Camera Simple Camera (Cross Section)(Cross Section)
Z -Z
Yd
COP
ymax
ymin
View From the CameraView From the Camera
(xmin, ymin)
(xmax, ymax)
Forming the RaysForming the Rays
Map screen pixels (M by N window) Map screen pixels (M by N window) to points in camera view planeto points in camera view plane
(0,0)
(M-1, N-1)
(xmin, ymin)
(xmax, ymax)
Forming the RaysForming the Rays
Consider pixel i,jConsider pixel i,j It corresponds to a rectangle It corresponds to a rectangle
width = (xmax-xmin)/Mwidth = (xmax-xmin)/M
height = (ymax-ymin)/Nheight = (ymax-ymin)/N
Our ray goes through the center of the Our ray goes through the center of the pixelpixel
Thus the ray goes through the pointThus the ray goes through the point
(xmin + width*(i+0.5), ymin + height*(j+0.5), 0.0)(xmin + width*(i+0.5), ymin + height*(j+0.5), 0.0)
Forming the RaysForming the Rays
Thus the ray from the COP Thus the ray from the COP through pixel i,j is defined bythrough pixel i,j is defined by
p(t) = (x(t), y(t), z(t)) = p(t) = (x(t), y(t), z(t)) =
((t*(xmin + width*(i+0.5)),t*(xmin + width*(i+0.5)),
t*(ymin + height*(j+0.5)),t*(ymin + height*(j+0.5)),
t*d-d)t*d-d)
Ray CastingRay Casting
Intersection of Sphere and line Intersection of Sphere and line (sphere at origin)(sphere at origin)
Substitute the ray equation in the Substitute the ray equation in the sphere equation and solve!sphere equation and solve!
Get an equation in t of the formGet an equation in t of the form
AtAt2 2 + 2Bt + C = 0+ 2Bt + C = 0
Ray CastingRay Casting
If bIf b2 2 – AC < 0 then the ray doesn’t intersect the – AC < 0 then the ray doesn’t intersect the sphere. sphere.
If bIf b2 2 -AC = 0 the ray graze (is tangent to the -AC = 0 the ray graze (is tangent to the sphere)sphere)
If bIf b2 2 – AC > 0 then there are two roots given by – AC > 0 then there are two roots given by
t = (-b t = (-b (b(b22 – AC))/A – AC))/A
chose the highest value one (the one closest chose the highest value one (the one closest to the COP)to the COP)
Ray CastingRay Casting
Intersection of Sphere and line Intersection of Sphere and line (general case)(general case)– Sphere is centred at (a,b,c)Sphere is centred at (a,b,c)– Translate the start of the ray by (-a,-Translate the start of the ray by (-a,-
b,-c)b,-c)– Proceed as beforeProceed as before
The Image - Detection The Image - Detection
OverviewOverview
Basic MathsBasic Maths– PointsPoints– VectorsVectors
Simple CameraSimple Camera– Scenes with spheresScenes with spheres– COP on +zCOP on +z
Local illuminationLocal illumination– Ambient Ambient – DiffuseDiffuse– SpecularSpecular
Ambient LightAmbient Light
Approximation to global illuminationApproximation to global illumination– Each object is illuminated to a certain Each object is illuminated to a certain
extent by “stray” lightextent by “stray” light– Constant across a whole objectConstant across a whole object
Often used simply to make sure Often used simply to make sure everything is lit, just in case it isn’t everything is lit, just in case it isn’t struck by light direct from a light struck by light direct from a light sourcesource
Ambient LightAmbient Light
Ambient light usually set for whole Ambient light usually set for whole scene (Iscene (Iaa))
Each object reflects only a Each object reflects only a proportion of that (kproportion of that (kaa) )
So far thenSo far then Ir = kaIa
Lighting Equation #1Lighting Equation #1
But we use RGB soBut we use RGB so
Ir, red = ka,redIa,red
Ir,green = ka,greenIa,green
Ir,blue = ka,blueIa,blue
The Image - Ambient The Image - Ambient
Lambert’s LawLambert’s Law
Reflected intensity is proportional to cos Reflected intensity is proportional to cos L is the direction to the lightL is the direction to the light N is the surface normalN is the surface normal
L
N
Diffuse LightDiffuse Light
The normalised intensity of the The normalised intensity of the light incident on the surface due to light incident on the surface due to a ray from a light sourcea ray from a light source
The light reflected due to The light reflected due to Lambert’s lawLambert’s law
The proportion of light reflected The proportion of light reflected rather than absorbed (krather than absorbed (kdd))
Lighting Equation #2Lighting Equation #2
Ambient and diffuse componentsAmbient and diffuse components Again kAgain kdd is wavelength dependent is wavelength dependent
and we work with kand we work with kd,red d,red kkd,green d,green and kand kd, d,
blueblue
Ir = kaIa + kdIi (n.l)
Multiple Lights?Multiple Lights?
Add the diffuse termsAdd the diffuse terms
IIi,ji,j is the incoming intensity of light is the incoming intensity of light jj
lljj is the vector to light j is the vector to light j
Ir = kaIa + kdIi,j (n.l j)j =1
m
The Image - Diffuse The Image - Diffuse
Perfect SpecularityPerfect Specularity
Would almost never see the Would almost never see the specular highlightspecular highlight
Imperfect Specularity Imperfect Specularity (Phong)(Phong)
E is the direction E is the direction to the eyeto the eye
N is the normalN is the normal L is the direction L is the direction
to the lightto the light H bisects E and LH bisects E and L
EN H
L
surface
Specular ComponentSpecular Component
m is the power of the lightm is the power of the light– High m implies smaller specular High m implies smaller specular
highlighthighlight– Low m makes the highlight more Low m makes the highlight more
blurredblurred
ksIi (h.n)m
Lighting Equation #3Lighting Equation #3
Ambient, diffuse&specular componentsAmbient, diffuse&specular components Again if there are multiple lights there is Again if there are multiple lights there is
a sum of the specular and diffuse a sum of the specular and diffuse components for each lightcomponents for each light
(This is the time to worry about clamping values to 0,1 (This is the time to worry about clamping values to 0,1 required for monitor display)required for monitor display)
Ir = kaIa + Ii (kd (n.l) + ks(h.n)m )
The Image - SpecularThe Image - Specular
ConclusionsConclusions
We can now draw imagesWe can now draw images– Forming rays from the cameraForming rays from the camera– Intersecting those rays with objects in the Intersecting those rays with objects in the
scenescene– Colouring the pixelsColouring the pixels
Immediate work requiredImmediate work required– More interesting scenesMore interesting scenes– A useful cameraA useful camera
At the moment we must move the objects in front At the moment we must move the objects in front of the camera to be able to see themof the camera to be able to see them