Projection

advertisement
Projection
Projection
Projection
Conceptual model of 3D viewing process
Projection
 In general, projections transform points in a coordinate
system of dimension n into points in a coordinate system of
dimension less than n.
 We shall limit ourselves to the projection from 3D to 2D.
 We will deal with planar geometric projections where:
 The projection is onto a plane rather than a curved surface
 The projectors are straight lines rather than curves
Projection
 key terms…

Projection from 3D to 2D is defined by straight projection rays
(projectors) emanating from the 'center of projection', passing
through each point of the object, and intersecting the 'projection
plane' to form a projection.
Planer Geometric Projection
 2 types of projections

perspective and parallel.
 Key factor is the center of projection.


if distance to center of projection is finite : perspective
if infinite : parallel
A
A
Projectors
Projectors
A'
B
B
A'
B'
B'
Projection
plane
Center of
projection
Perspective projection
Center of
projection
at infinity
Projection
plane
Direction
of
projection
Parallel projection
Perspective v Parallel
 Perspective:


visual effect is similar to human
visual system...
has 'perspective foreshortening'
 size of object varies inversely with
distance from the center of
projection.


Parallel lines do not in general
project to parallel lines
angles only remain intact for
faces parallel to projection plane.
Perspective v Parallel
 Parallel:



less realistic view because of no
foreshortening
however, parallel lines remain
parallel.
angles only remain intact for faces
parallel to projection plane.
Perspective projection- anomalies
 Perspective foreshortening The farther an object is
from COP the smaller it appears
C
A
D
C'
A'
B
D'
Projectors
B'
Center of
projection
Projection
plane
Perspective foreshortening
Perspective projection- anomalies
 Vanishing Points: Any set of parallel lines not parallel to the view
plane appear to meet at some point.
 There are an infinite number of these, 1 for each of the infinite
amount of directions line can be oriented
z-axis vanishing point
y
x
z
Vanishing point
Perspective projection- anomalies
 View Confusion: Objects behind the center of projection are
projected upside down and backward onto the view-plane
 Topological distortion: A line segment joining a point which lies in
front of the viewer to a point in back of the viewer is projected to a
broken line of infinite extent.
P'3
P1
Y
Plane containing
Center of Projection (C)
P3
C
View Plane
P2
P'1
P'2
X
Z
Vanishing Point
Vanishing Point
COP
View Plane
Vanishing Point

If a set of lines are parallel to one of the three axes, the vanishing point is called an axis vanishing
point (Principal Vanishing Point).




There are at most 3 such points, corresponding to the number of axes cut by the projection
plane
One-point:

One principle axis cut by projection plane

One axis vanishing point
Two-point:

Two principle axes cut by projection plane

Two axis vanishing points
Three-point:

Three principle axes cut by projection plane

Three axis vanishing points
Vanishing Point
Vanishing Point
 One point perspective projection of a cube

X and Y parallel lines do not converge
Vanishing Point
Vanishing Point
 Two-point perspective
projection:


This is often used in
architectural, engineering and
industrial design drawings.
Three-point is used less
frequently as it adds little extra
realism to that offered by twopoint perspective projection.
Vanishing Point
H VPL
VPR
VP2
VP1
VP3
Projective Transformation
y
plane of
projection
d
center of
projection
x
view direction
z
Settings for perspective projection
Projective Transformation
plane of
projection
P(y,z)
y
P'(yp,zp)
z
d
-z
y yp
y

 yp 
z d
 z d 
z  d


x
y
,
,d ,1
  z d   z d 

x, y, z,1  
y
Projective Transformation
?

?
?

?

?
?
?
?
?
?
?
?
 x 
?  x     z / d  

  
?  y  
y 




 z / d  
? z
    d 

?  1  
 1 


 x 


 x 


  z d  
e
 y  perspectiv
 y 
division
 z   




z
d
 z


 
 d 
 d
 1 


?
?
?
?
?  x   x 
 
?  y   y 
 z 



? z
   z 
?  1    
 d
0
0
1
1
0 
d
0  x   x 
  

0  y   y 
0  z    z 
   z 
0  1    
 d

?

?
?

?

1

0
0

0

0
1
0
?
?
?
?
Parallel projection
 2 principle types:

orthographic and
oblique.
 Orthographic :

direction of projection =
normal to the projection
plane.
 Oblique :

n
direction of projection !=
normal to the projection
plane.
n
Orthographic projection
 Orthographic (or orthogonal) projections:
 front elevation, top-elevation and side-elevation.
 all have projection plane perpendicular to a principle
axes.
 Useful because angle and distance measurements can
be made...
 However, As only one face of an object is shown, it can
be hard to create a mental image of the object, even
when several view are available
Orthographic projection
Orthogonal Projection Matrix
y
plane of
projection
x
direction of
projection
view direction
z
1

0
0

0

0
1
0
0
0
0
0
0
0  x   x 
   
0  y   y 
 



0 z
0
   
1  1   1 
Axonometric projection
 Axonometric Projections use projection planes that are
not normal to a principal axis.On the basis of projection
plane normal N = (dx, dy, dz) subclasses are:
o
Isometric : | dx | = | dy | = | dz | i.e. N makes equal angles with
all principal axes.
o
Dimetric : | dx | = | dy |
o
Trimetric : | dx | != | dy | != | dz |
Axonometric vs Perspective
 Axonometric projection shows several faces of an object
at once like perspective projection.
 But the foreshortening is uniform rather than being
related to the distance from the COP.
y
x
Isometric proj
z
Projection Plane
Oblique parallel projection
 Oblique parallel projections


Objects can be visualized better then with
orthographic projections
Can measure distances, but not angles
* Can only measure angles for faces of objects
parallel to the plane
 2 common oblique parallel projections:

Cavalier and Cabinet
Oblique parallel projection
y
z
Projection Plane
Projector
n
Projection Plane Normal
x
Oblique parallel projection
 Cavalier:


The direction of the projection makes a 45 degree
angle with the projection plane.
There is no foreshortening
Oblique parallel projection
 Cabinet:

The direction of the projection makes a 63.4 degree
angle with the projection plane. This results in
foreshortening of the z axis, and provides a more
“realistic” view
Oblique parallel projection
 Cavalier, cabinet and orthogonal projections
can all be specified in terms of (α, β) or (α, λ)
since
 tan(β) = 1/λ
λ sin(α)
P‫(׳‬λ cos(α), λ sin(α),0)
β
λ
α
P=(0, 0, 1)
λ cos(α)
Oblique parallel projection
l=1
b = 45
Cavalier projection
a = 0 - 360
l=0.5
b = 63.4 Cabinet projection
a = 0 – 360
l=0
b = 90
a = 0 – 360
Orthogonal projection
Oblique parallel projection
y
PP‘ = (λ cos(α), λ sin(α),-1) = DOP
Proj(P) = (λ cos(α), λ sin(α),0)
(xp , y p )
l
( x, y ) a
Generally

multiply by z and allow for (non-zero) x and y
x ‘ = x + z lcos a
y‘ = y + z lsin a
 x   1
  
 y   0
 0   0
  
 1  0
  
0 l cosa
1 l sin a
0
0
0
0
0  x 
 
0  y 
. 

0 z
 
1   1 
x
 x p  x  l cosa
y p  y  l sin a
Generalized Projection Matrix
x or y
Plane of Projection
Center of Projection
(COP)
Pp = (x p, y p, z p)
Q
P = (x, y, z)
(dx, d y, d z)
z
(0, 0, z p)
Pp  COP  t P  COP , 0  t  1



COP  0,0, z p  Q d x , d y , d z

P   x, y, z 
x  Qd x  t  x  Qd x 

y  Qd y  t y  Qd y

 


z   z p  Qd z  t z  z p  Qd z

Generalized Projection Matrix
dx
d
 zp x
dz
dz
zp  z
1
Qd z
xz
xp 

  
z p  z p  Qd z 
t 
z  z p  Qd z 
z p  z p  Qd z  t z  z p  Qd z

yz
yp 
dy
 zp
dz
zp  z
Qd z
zp  z
zp  zp
Qd z
zp  z
Qd z
dy
dz
1
1
z

1
zp
2

z p  z p Qd z
Qd z
Qd z
zp  z
1
Qd z
Generalized Projection Matrix
dx
d
 zp x
dz
dz
zp  z
1
Qd z
xz
xp 
yz
dy
 zp
dz
zp  z
yp 
Qd z
z
zp 
zp
dy
dz
1
2

zp
Qd z Qd z
zp  z
1
Qd z
 zp

1


0
M gen  
0


 0

0

1

0 
dx
dz
dy
dz
zp
Qd z
1
0 
Qd z




zp

dz 
2

zp
 zp 
Qd z


zp
 1 
Qd z

zp
dx
dz
dy
Generalized Projection Matrix
M gen

1


0


0

0


0

1

0
0

dx
dz
dy
dz
zp
Qd z
1

Qd z




zp

dz 
z 2p

 zp 
Qd z

zp
 1 
Qd z

z p  d , Q d ,
d x 0 , d y 0 , d z 1
zp
dx
dz
dy
 M per
1

0
 0

0

0
1
0
0
0
0
1
1

d
0

0
0

0

Generalized Projection Matrix
M gen

1


0


0

0


0

1

0
0

dx
dz
dy
dz
zp
Qd z
1

Qd z




zp

dz 
z 2p

 zp 
Qd z

zp
 1 
Qd z

zp
z p 0, Q  ,
d x  0 , d y  0 , d z 1
dx
dz
dy

 M par
1 0

0 1

0 0

0 0

0 0

0 0
0 0

0 1 
Taxonomy of Projection
OpenGL’s Perspective Specification
aspect = w / h
y
w
h

z
x
near
far
y field-of-view / fovy
aspect ratio
near and far clipping planes
viewing frustum
gluPerspective(fovy, aspect, near, far)
glFrustum(left, right, bottom, top, near, far)
Perspective without Depth
1

0
0

0

0  x   x 
  

0  y   y 


 z 


0 z
   z 
0  1    
 d

 x 


 x 
 z d  



e
 y  perspectiv
 y 
division
 z    




z
d
 z


 
 d 
 d
 1 


0
1
0
0
0
1
1
0 
d
• The depth information is
lost as the last two
components are same
• But dept information of the
projected points is essential
for hidden surface removal
and other purposes like
blending, shading etc.
Perspective without Depth
1

0
0

 0

0
0
1
0
0
a
1
0 
d
x




0  x   x 
  z d  
  

0  y  y  perspective 
y

 
division





    z d  
b  z  az  b


  

d az  b  
z 






0  1   



z

 d 


1


d b
z  d a 
z
For ß < 0, z’ is a monotonically increasing function of depth.
Canonical View Volume
far
y
near
(-1,1,-1)
(-1,1,1)
(1,1,-1)
(1,1,1)
z
(-1,-1,-1)
x
(-1,-1,1)
(1,-1,1)
1  x  1
1  y  1
1  z  1
(1,-1,-1)
Canonical View Volume
z=-far
z=-near
y
+1
z
z=1 (far)
y z=-1 (near)
viewer
z
-1
+1
-1
There is a reversal of the z- coordinates, in the sense that before
the transformation, points further from the viewer have smaller zcoordinates
Perspective Matrix
The matrix to perform perspective transformation:
 0 0

0  0
0 0 a

 0 0 1

0   x    x 
   

0   y    y 
   

b
z
a zb
   

0   1    z 
   x /( z ) 


   y /( z ) 

(a  z  b ) /( z ) 




1


Perspective Matrix
z = -far
z = -near
a=w/h
y
w
θ/2
z
h
x
z
   z
c  cot  
 y 
c
2 y
a
w x
az
  x ay 
h y
c
 az z 
  x , y , z     , , z 
 c c 
Perspective Matrix
z = -far
z = -near
a=w/h
y
w
θ/2
z
h
x
 an n

  , , n    1,1,1
c
 c

 an n

  , , n    1,1,1
 c c

 an n

 , , n   1,1,1
c
 c

 an n

 , , n   1,1,1
 c c

f
 af

  , , f    1,1,1
c
 c

 af f

  , , f    1,1,1
 c c

f
 af

 , , f   1,1,1
c
 c

 af f

 , , f   1,1,1
 c c

Perspective Matrix
 an n

  , ,n    1,1,1
c
 c

 an 
  0 0 0    c    1

 
  
 0  0 0    n    1
 0 0 a b    c     1


 
 0 0 1 0    n   1 
  

 
1


 an 
 
   1
c

  
n    1
 


c    1
  an  b   

 1
n 

a 




c

   1
      1

c  
  an  b    1

 1
n

  
1


c
a
  c
 an  b  n
 
Perspective Matrix
f
 af

  , , f    1,1,1
c
 c

 af 
  0 0 0    c    1

 
  
 0  0 0    f    1
 0 0 a b  c    1 


 
 0 0 1 0    f   1 
  

 
1


 af 
 
   1
c   

f    1
 
 


c
1

  af  b   

 1
f


a

 
c

 

c
  af  b

f

1



   1
   1
 
 1
 1
  

 af  b  f
 an  b   n
f n
a 
n f
2 fn
b 
n f
Perspective Matrix
The matrix to perform perspective transformation:
c

a
0
0

0

0
0
0
c
0
f n
n f
1
0
2 fn
n f
0
0
0








Taxonomy of projection
Generalized Projection
 Using the origin as the center of projection, derive the perspective
transformation onto the plane passing through the point R0(x0, y0, z0)
and having the normal vector N = n1I + n2J + n3K.
N = n1I + n2J + n3K
y
R0=x0 ,y0, z0
P'(x', y', z')
O
z
x
P(x, y, z)
Generalized Projection
N = n1I + n2J + n3K
P'O = α PO
x' = αx, y' = αy, z ' = αz
y
R0=x0 ,y0, z0
N. R0P' = 0
n1x ' + n2y ' + n3z '
=n1x0 + n2y0 + n3z0 = d0
a
P'(x', y', z')
d0
n1 x  n2 y  n3 z
 d0

0
Per  
0

n
 1
0
0
d0
0
0
d0
n2
n3
O
0

0
0

0 
z
x
P(x, y, z)
Generalized Projection

Derive the general perspective transformation onto a plane with reference
point R0 and normal vector N and using C(a,b,c) as the center of projection.
N = n1I + n2J + n3K
R0=x0 ,y0, z0
y
P(x, y, z)
C
P'(x', y', z')
x
z
Generalized Projection
P'C = α PC
x' = α(x-a) + a
N = n1I + n2J + n3K
n1x' + n2y' + n3z‘ = d0
d
a
n1 ( x  a)  n2 ( y  b)  n3 ( z  c)
d = (n1x0 + n2y0 + n3z0) – (n1a + n2b + n3c)
= d0 – d1
R0=x0 ,y0, z0
y
P(x, y, z
C
P'(x', y', z')
x
z
Generalized Projection
 Follow the steps –



Translate so that C lies at the origin
Per
Translate back
 d  an1

 bn1
 cn
1

 n
1

an2
an3
d  bn2
bn3
cn2
d  cn3
n2
n3
 ad0 

 bd0 
 cd0 

 d1 
Generalized Projection
 Find (a) the vanishing points for a given perspective
transformation in the direction given by a vector U (b)
principal vanishing point.
 Family of parallel lines having the direction U(u1,u2,u3)
can be written in parametric form as


x = u1t+p, y = u2t+q, z = u3t+r
here (p, q, r) is any point on the line
 Let, proj(x,y,z,1) = (x‘, y‘, z‘, h)




x' = (d+an1)(u1t+p) + an2(u2t+q) + an3(u3t+r) – ad0
y' = bn1(u1t+p) + (d+bn2)(u2t+q) + bn3(u3t+r) – bd0
z' = cn1(u1t+p) + cn2(u2t+q) + (d+cn3)(u3t+r) – cd0
h = n1(u1t+p) + n2(u2t+q) + n3(u3t+r) – d1
Generalized Projection
 The vanishing point (xv, yv, zv) is obtained when t=α




xu = (x‘/h) at t= α
= a + (du1/k)
yu = b + (du2/k)
zu = c + (du3/k)
k = N.U = n1u1 + n2u2 + n3u3
 If k=0 then ?
 Principal vanishing point when

U=I
 xu = a + d / n1, yu = b, zu = c,


U=J
U=k
Ref.
 FV: p. 229-237, 253-258
 Sch: prob. 7.1 – 7.15
 Perspective Proj.pdf
Download