Download Visibility Algorithms for Computer Graphics

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Line (geometry) wikipedia , lookup

Dual space wikipedia , lookup

Cartesian coordinate system wikipedia , lookup

Riemannian connection on a surface wikipedia , lookup

Tensors in curvilinear coordinates wikipedia , lookup

Metric tensor wikipedia , lookup

Cross product wikipedia , lookup

Curvilinear coordinates wikipedia , lookup

Covariance and contravariance of vectors wikipedia , lookup

Transcript
UBI 516
Advanced Computer Graphics
Aydın Öztürk
[email protected]
http://www.ube.ege.edu.tr/~ozturk
Mathematical Foundations
Mathematical Foundations


Hearn and Baker (A1 – A4) appendix gives
good review
I’ll give a brief, informal review of some of the
mathematical tools we’ll employ
– Geometry (2D, 3D)
– Trigonometry
– Vector spaces

Points, vectors, and coordinates
– Dot and cross products
– Linear transforms and matrices
– Complex numbers
2D Geometry

Know your high school geometry:
– Total angle around a circle is 360° or 2π radians
– When two lines cross:


Opposite angles are equivalent
Angles along line sum to 180°
– Similar triangles:

All corresponding angles are equivalent
Trigonometry




Sine: “opposite over hypotenuse”
Cosine: “adjacent over hypotenuse”
Tangent: “opposite over adjacent”
Unit circle definitions:
–
–
–
–
sin () = y
cos () = x
tan () = y/x
Etc…
(x, y)
Slope-intercept Line Equation
Slope:
m  ( y - y1 ) / (x - x1 )
 (y2 - y1 ) / (x2 - x1 )
Solve for y:
y  [( y2 - y1 ) / ( x2 - x1 )]x
 [-( y2 -y1 ) / ( x2 - x1 )]x1  y1
or:
y = mx + b
y
P2  ( x2 , y2 )
P  (x, y)
P1  ( x1 , y1 )
x
Parametric Line Equation

Given points
P1  ( x1 , y1 )
and P2  ( x2 , y2 )
x  x1  u( x2  x1 )
y  y1  u( y2  y1 )
y

When:
– u=0, we get ( x1 , y1 )
– u=1, we get ( x2 , y 2 )
– (0<u<1), we get points
on the segment between
( x1 , y1 ) and ( x2 , y2 )
P2  ( x2 , y2 )
P1  ( x1 , y1 )
x
Other helpful formulas
( x2  x1 ) 2  ( y2  y1 ) 2

Length =

Midpoint P2 between P1 and P3 :
 x  x3 y1  y3 
P2   1
,

2
2



Two lines perpendicular if:
M 1  1 / M 2

Cosine of the angle between them is 0.
Coordinate Systems


2D systems
 Cartesian system
 Polar coordinates
3D systems
 Cartesian system
1) Right-handed
2) Left handed
 Cylindiric system
 Spherical system
Coordinate Systems(cont.)
Grasp
z-axis with hand
Roll fingers from positive x-axis
towards positive y-axis
Thumb points in direction of z-axis
Y
Y
Z
X
X
Left-handed
coordinate
system
Z
Right-handed
coordinate
system
Points

Points support these operations:
– Point-point subtraction:

Result is a vector pointing from P to Q
– Vector-point addition:

Q-P=v
P+v=Q
Q
Result is a new point
– Note that the addition of two points
is not defined
v
P
Vectors

We commonly use vectors to represent:
– Points in space (i.e., location)
– Displacements from point to point
– Direction (i.e., orientation)
Vector Spaces

Two types of elements:
– Scalars (real numbers): a, b, g, d, …
– Vectors (n-tuples): u, v, w, …

Operations:
–
–
–
–
–
Addition
Subtraction
Dot Product
Cross Product
Norm
Vector Addition/Subtraction
– operation u + v, with:
 Identity 0
v+0=v
 Inverse v + (-v) = 0
– Vectors are “arrows” rooted at the origin
– Addition uses the “parallelogram rule”:
y
u+v
y
v
v
u
x
u
x
-v
u-v
Scalar Multiplication
– Scalar multiplication:

Distributive rule:
a(u + v) = a(u) + a(v)
(a + b)u = au + bu
– Scalar multiplication “streches” a vector, changing
its length (magnitude) but not its direction
Dot Product

The dot product or, more generally, inner product of
two vectors is a scalar:
v1 • v2 = x1x2 + y1y2 + z1z2 (in 3D)

Useful for many purposes
– Computing the length (Euclidean Norm) of a vector: length(v)
= ||v|| = sqrt(v • v)
– Normalizing a vector, making it unit-length: v = v / ||v||
– Computing the angle between two vectors:
u • v = ||u|| ||v|| cos(θ)
– Checking two vectors for orthogonality

u•v=0
u
Dot Product

Projecting one vector onto another
– If v is a unit vector and we have another vector, w
– We can project w perpendicularly onto v
w
v
u
– And the result, u, has length w • v
u  w cos(θ )
 vw
 w 
( v  w

v  w




Dot Product

Is commutative
– u•v=v•u

Is distributive with respect to addition
– u • (v + w) = u • v + u • w
Cross Product

The cross product or vector product of two
vectors is a vector:
v1  v2  ( y1z2  z1 y2 , z1x2  x1z2 , x1 y2  y1x2 )


The cross product of two vectors is orthogonal to
both
Right-hand rule dictates direction of cross product
Cross Product Right Hand Rule

See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html

Orient your right hand such that your palm is
at the beginning of A and your fingers point in
the direction of A
Twist your hand about the A-axis such that B
extends perpendicularly from your palm
As you curl your fingers to make a fist, your
thumb will point in the direction of the cross
product


Cross Product Right Hand Rule

See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html

Orient your right hand such that your palm is
at the beginning of A and your fingers point in
the direction of A
Twist your hand about the A-axis such that B
extends perpendicularly from your palm
As you curl your fingers to make a fist, your
thumb will point in the direction of the cross
product


Cross Product Right Hand Rule




See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html
Orient your right hand such that your palm is
at the beginning of A and your fingers point in
the direction of A
Twist your hand about the A-axis such that B
extends perpendicularly from your palm
As you curl your fingers to make a fist, your
thumb will point in the direction of the cross
product
Cross Product Right Hand Rule




See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html
Orient your right hand such that your palm is
at the beginning of A and your fingers point in
the direction of A
Twist your hand about the A-axis such that B
extends perpendicularly from your palm
As you curl your fingers to make a fist, your
thumb will point in the direction of the cross
product
Cross Product Right Hand Rule




See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html
Orient your right hand such that your palm is
at the beginning of A and your fingers point in
the direction of A
Twist your hand about the A-axis such that B
extends perpendicularly from your palm
As you curl your fingers to make a fist, your
thumb will point in the direction of the cross
product
Triangle Arithmetic

b
Consider a triangle, (a, b, c)
– a,b,c = (x,y,z) tuples
a

Surface area = sa = ½ * ||(b –a) X (c-a)||

Unit normal = (1/2sa) * (b-a) X (c-a)
c
Vector Spaces

A linear combination of vectors results in a
new vector:
v = a1v1 + a2v2 + … + anvn



If the only set of scalars such that
a1v1 + a2v2 + … + anvn = 0
is
a1 = a2 = … = a3 = 0
then we say the vectors are linearly independent
The dimension of a space is the greatest number of
linearly independent vectors possible in a vector set
For a vector space of dimension n, any set of n
linearly independent vectors form a basis
Vector Spaces: Basis Vectors

Given a basis for a vector space:
– Each vector in the space is a unique linear
combination of the basis vectors
– The coordinates of a vector are the scalars from
this linear combination
– If basis vectors are orthogonal and unit length:

Vectors comprise orthonormal basis
– Best-known example: Cartesian coordinates
– Note that a given vector v will have different
coordinates for different bases
Matrices

Matrix addition

Matrix multiplication

Matrix tranpose

Determinant of a matrix

Matrix inverse
Complex numbers
A complex number z is an ordered pair of real
numbers
z = (x,y),
x = Re(z), y = Im(z)
Addition, substraction and scalar multiplication
of complex numbers are carried out using the same
rules as for two-dimensional vectors.
Multiplication is defined as
(x1 , y1 )(x2, y2) = (x1 x2 – y1 y2 , x1y2+ x2 y1)
Complex numbers(cont.)
Real numbers can be represented as
x = (x, 0)
It follows that (x1 , 0 )(x2 , 0) = (x1 x2 ,0)
i = (0, 1) is called the imaginary unit.
We note that i2 = (0, 1) (0, 1) = (-1, 0).
Complex numbers(cont.)
Using the rule for complex addition, we can write any
complex number as the sum
z = (x,0) + (0,y)
= x + iy
Which is the usual form used in practical applications.
Complex numbers(cont.)
The complex conjugate is defined as
z̃ = x -iy
Modulus or absolute value of a complex number is
|z| = z z̃ = √ (x2 +y2)
Division of of complex numbers:
z1
z1 ~
z2
~
z2
z1 z 2
Complex numbers(cont.)
Polar coordinate representation
z  rCos  riSin 
 r (Cos  iSin )
 re i
Complex numbers(cont.)
Complex multiplication
z1 z 2  r1r2 e i (1 2 )
r1 i (1 2 )
z1 / z 2 
e
r2
Conclusion

Read Chapters 1 – 3 of OpenGL
Programming Guide