Tải bản đầy đủ (.pdf) (10 trang)

Bài giảng Bài 5: Nguyên lý về 3D và phép chiếu - Projection - Lê Tấn Hùng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (752.87 KB, 10 trang )

Khoa CNTT – DHBK Hanoi

8682595

Nguyên lý về 3D

Bài 5
Nguyên lý về 3D và
phép chiếu-Projection

z

z
Lê Tấn Hùng
0913030731


z

Ðồ họa 3 chiều - 3D computer graphics bao gồm việc bổ
xung kích thước về chiều sâu của đối tượng, cho phép ta
biểu diễn chúng trong thế giới thực một cách chính xác
và sinh động hơn.
Tuy nhiên các thiết bị truy xuất hiện tại đều là 2 chiều, Do
vậy việc biểu diễn được thực thi thông qua phép tô chát
– render để gây ảo giác illusion về độ sâu
3D Graphics là việc chyển thế giới tự nhiên dưới dạng
các mơ hình biểu diễn trên các thiết bị hiển thị thông qua
kỹ thuật tô chát (rendering).

2



1

Ðặc điểm của kỹ thuật đồ hoạ 3D

Các phương pháp hiển thị 3D

Có các đối tượng phức tapj hơn các đối tượng
trong không gian 2D

z




z
z
z
z

Với các thiết bị hiển thị 2D:


Bao bởi các mặt phẳng hay các bề mặt
Có các thành phần trong và ngồi




Các phép biến đổi hình học phức tạp

Các phép biến đổi hệ toạ độ phức tạp hơn
Thường xuyên phải bổ xung thêm phép chiếu từ
không gian 3D vào không gian 2D
Luôn phải xác định các bề mặt hiển thị





z

Thiết bị hiển thị 3D:



3

3D viewing positions
Kỹ thuật chiếu - projection: orthographic/perspective
Kỹ thuật đánh dấu độ sâu - depth cueing
Nét khuất - visible line/surface identification
Tô chát bề mặt-surface rendering
Cắt lát - exploded/cutaway scenes, cross-sections

Kính stereo - Stereoscopic displays*
Màn hình 3D - Holograms

4

Perspective and

Depth of Field

Exploded/cutaway scenes

Stereo Projections
Shadows as depth cues

z

z

z

In OpenGL we can produce
stereo views by creating two
side-by-side viewports with
slightly different viewing
angles.
The lookat point stays the
same but the location of the
eye moves.
Human eyes are about 3
inches apart, therefore a good
value for D is 1.5

Different views of a 3D model
5

6


1


Khoa CNTT – DHBK Hanoi

8682595

Stereo Projections

3D GRAPHICS PIPELINE
WORLD SCENE/OBJECT
Modelling coordinates:
- world coordinate system,
- object coordinate system

3D MODELLING

VIEWING

3D CLIPPING
Camera coordinates
PROJECTION
Screen/Window coordinates
RASTERIZATION

eye=(0,-1,2.5)

Device coordinates

eye=(0.5,-1,2.5)


2D PIXELMAP DISPLAY

7

8

3D - Modelling

Clipping 3D
x +y +z =r
2

2

2

2

view frustrum

Polygonal

3D Modelling

Implicit

x = sin 4θ
y = cos 2θ


outside view so
must be clipped

Particles

Parametric

9

10

Viewing and Projection

Rasterization

3d models
camera setup
viewport

11

12

2


Khoa CNTT – DHBK Hanoi

8682595


Phép chiếu

Các bước xây dựng hình chiếu
täa ®é thùc
3D

Định nghĩa về phép chiếu
Một cách tổng quát, phép chiếu là phép chuyển đổi những
điểm của đối tượng trong hệ thống tọa độ n chiều thành
những điểm trong hệ thống tọa độ có số chiều nhỏ hơn n.
Định nghĩa về hình chiếu
Ảnh của đối tượng trên mặt phẳng chiếu được hình thành từ
phép chiếu bởi các đường thẳng gọi là tia chiếu (projector)
xuất phát từ một điểm gọi là tâm chiếu (center of
projection) đi qua các điểm của i tng giao vi mt
chiu (projection plan).

tọa độ theo vùng
cắt

Cắt theo view
volum

tọa độ thiết
bị

khung nhìn

Phép chiếu trên
mặt phẳng chiếu


Phép biến đổi vo
cổng nhìn của
tọa độ thiết bị

1. i tng trong không gian 3D với tọa độ thực được cắt theo một không

z

gian xác định gọi là view volume.
2. view volume được chiếu lên mặt phẳng chiếu. Diện tích chốn bởi view

z

volume trên mặt phẳng chiếu đó sẽ cho chúng ta khung nhìn.
3. là việc ánh xạ khung nhìn vào trong một cổng nhìn bất kỳ cho trước trên

z

màn hình để hiển thị hình ảnh

13

14

Phép chiếu song song
Parallel Projections
ƒ Phép chiếu song song - Parallel
Projections là phép chiếu mà ở đó các tia
chiếu song song với nhau hay xuất phát từ

điểm vô cùng
ƒ Phân loại phép chiếu song song dựa trên
hướng của tia chiếu Direction Of Projection
và mặt phẳng chiếu -projection plane
z
z

15

Points on the object are projected to the
viewing plane along parallel lines
Preserves relative dimensions of the
object but does not give a realistic
presentation

centre of
projection
at infinity

16

A

D


A
B
’D
C



B
C
projectio
n plane

Taxonomy of Projections
ƒ Phép chiếu trực giao (Orthographic
projection) là phép chiếu song song và
tia chiếu vuông góc với mặt phẳng
chiếu thường dùng mặt phẳng z=0
ƒ Ứng với mỗi mặt phẳng chiếu ta có 1
ma trận chiếu tương ứng

⎡1
⎢0
[T y ] = ⎢
⎢0

⎣0

17

0 0 0⎤
⎡0
⎢0
0 0 0⎥⎥

[

]
=
T
0 1 0⎥ x
⎢0


0 0 1⎦
⎣0

0 0 0⎤
⎡1
⎢0
1 0 0⎥⎥
[T z ] = ⎢
⎢0
0 1 0⎥


0 0 1⎦
⎣0

z

Orthographic Projections


Multiview Orthographic

0 0 0⎤

1 0 0⎥⎥
0 0 0⎥

0 0 1⎦

18

3


Khoa CNTT – DHBK Hanoi

8682595

Phép chiếu trục lượng (Axonometric)
z
z
z

z

Trimetric

Phép chiếu trục lượng là phép chiếu mà hình chiếu thu được
Phép chiếu Trimetric
Là phép chiếu hình thành từ việc quay tự do đối tượng trên một trục
hay tất cả các trục của hệ tọa độ và chiếu đối tượng đó bằng phép
chiếu song song lên mặt phẳng chiếu (thường là mặt phẳng z = 0)
vng góc với tia chiếu
trên cơ sở tỉ lệ co - SF của ảnh đối tượng trên mỗi trục là khác nhau.


⎡ xx'
⎢ '
x
[T ] = ⎢ y'
⎢ xz

⎢⎣ 0

⎡1 0 0 1⎤
[U ] = ⎢⎢0 1 0 1⎥⎥
⎢⎣0 0 1 1⎥⎦
19

y x'
y 'y
y z'
0

[ U ] :là ma trận vector đơn vị
của các trục x, y, z bất biến
[ T ] : là ma trận chiếu tổng hợp
tương ứng
SF- tỉ lệ co theo các trục là:

f x = x' 2x + y' 2x

0 1⎤

0 1⎥

0 1⎥

0 1⎥⎦

f y = x' 2y + y' 2y

f z = x' 2z + y' 2z
20

Phép chiếu Dimetric
[T ] = [ Ry ][ Rx ][ Pz ]
⎡cos φ

0
=⎢
⎢ sin φ

⎣ 0

0
0 − sin φ 0⎤ ⎡1
⎥ ⎢
1
0
0⎥ ⎢0 cos ϕ
.
0 cos φ 0⎥ ⎢0 − sin ϕ
⎥ ⎢
0
0

0
1⎦ ⎣0

⎡cos φ
⎢ 0
[T ] = ⎢
⎢ sin φ

⎣ 0

sin φ sin ϕ
cos ϕ
− cos φ sin ϕ
0

0 0⎤
0 0⎥⎥
0 0⎥

0 1⎦

Là phép chiếu Trimetric với 2 hệ
số tỉ lệ co bằng nhau, giá trị thứ 3
còn lại là tuỳ ý.
0⎤ ⎡1
⎥ ⎢
0⎥ ⎢0
.
cos ϕ 0⎥ ⎢0
⎥ ⎢

0
1⎦ ⎣0
0

sin ϕ

f z2 = (xz'2 + yz'2 ) = sin2 φ + cos2 φ sin2 ϕ

0 0 0⎤
1 0 0⎥⎥
0 0 0⎥

0 0 1⎦

f y2 = ( x 'y2 + y 'y2 ) = cos 2 ϕ
φ = sin −1 ( ±

•Quay đối tượng quanh trục y theo
một góc φ,
•Quay quanh x theo một góc ψ

ϕ = sin −1 (±

•Chiếu trên mặt phẳng z = 0 với tâm
chiếu tại điểm vô hạn

fz
2 − f z2

fz


)

)

2

21

22

Phép chiếu Isometric
z

z
z

23

Là phép chiếu trục lượng
mà ở đó hệ số co cạnh
trên 3 trục là bằng nhau
Góc quay tương ứng là
35.26 và 45
Ðược ứng dụng nhiều
trong việc xây dựng các
góc quan sát chuẩn cho
đối tượng trong các hệ
soạn thảo đồ họa


sin 2 φ =

1 − 2 sin 2 ϕ
1 − sin 2 ϕ

sin 2 ϕ
1 − sin 2 ϕ
sin2 ϕ
1/ 3
sin2 φ =
=
= 1/ 2
1 − sin2 ϕ 1 − 1/ 3
1
sin ϕ = ±
3
sin 2 φ =

ϕ = ±35.260
φ = ±450
f = cos 2 ϕ = 2 / 3 = 0.8165

.

24

4


Khoa CNTT – DHBK Hanoi


8682595

Taxonomy of Projections
z

Parallel Projections

Oblique Projections

orthographic
oblique

25

axonometric

26

Taxonomy of Projections
z

Phép chiếu xiên - Oblique

Oblique Projections




isometric


z

Combine the properties of Orthographic and
Axonometric
Preserves the object face; and
Gives a better sense of the 3D nature.

z

27

Phép chiếu Cavalier
Phép chiếu Cabinet

28

Phép chiếu Cavalier
G Phép

chiếu cavalier là phép chiếu xiên được tạo thành khi các
tia chiếu làm thành với mặt phẳng chiếu một góc 450

0
⎡ 1
⎢ 0
1
[T ' ' ] = ⎢
⎢− a − b


0
⎣ 0

29

0
0
0
0

0⎤
0⎥

0⎥

1⎦





a = f cosα
b = f sin α
1


0
[T ] = ⎢
⎢− f cos α


0


0
1
− f sin α
0



0 0⎤
0 0⎥⎥
0 0⎥

0 1⎦

f = 0, β = 900 phép
chiếu sẽ trở thành
phép chiếu trực giao.
Cịn với f = 1 kích
thước của hình chiếu
bằng kích thước của
đối tượng => cavalier
Phép chiếu Cavalier
cho phép giá trị của α
biến đổi một cách tự
do α = 300 và 450

30


5


Khoa CNTT – DHBK Hanoi

8682595

Phép chiếu Cabinet


Oblique Projections

Phép chiếu xiên với hệ số co tỉ lệ f = 1/2

f

β = cos −1 (
= cos −1 (

1 + f
2

2

)

1

2
) = 63.435 0

1 + (1 2 ) 2
2

D/2

D

D
D
Cavalier Project

Cabinet Projection
31

32

Phép chiếu phối cảnh
Perspective Projection
z

z
z

Vanishing points

Phép chiếu phối cảnh là phép chiếu mà các tia chiếu không song
song với nhau mà xuất phát từ 1 điểm gọi là tâm chiếu.Phép chiếu
phối cảnh tạo ra hiệu ứng về luật xa gần tạo cảm giác về độ sâu của
đối tượng trong thế giới thật mà phép chiếu song song không lột tả
được.

Các đoạn thẳng song song của mơ hình 3D sau phép chiếu hội tụ tại 1
điểm gọi là điểm triệt tiêu - vanishing point
Phân loại phép chiếu phối cảnh dựa vào tâm chiếu - Centre Of
Projection (COP) và mặt phẳng chiếu projection plane

z
z
z

Each set of parallel lines (=direction) meets at a
different point: The vanishing point for this direction
Sets of parallel lines on the same plane lead to
collinear vanishing points: the horizon for that plane
Easy examples



z

33

corridor
higher = further away

Good way to spot faked images

34

Điểm triệt tiêu
Vanishing point


Perspective Projections
3-point perspective

z

z

z
z

Nếu điểm triệt tiêu nằm trên trục tọa độ thì điểm
đó được gọi là điểm triệt tiêu quy tắc - principle
vanishing point
The number of principal vanishing points is determined
by the number of principal axes cut by the projection
plane.
If the plane only cut the z axis (most common), there is
only 1 vanishing point.
2-points sometimes used in architecture and
engineering. 3-points seldom used … add little extra
realism

1-point perspective

2-point perspective

35

36


6


Khoa CNTT – DHBK Hanoi

8682595

Phép chiếu phối cảnh

Phép biến đổi phối cảnh
⎡1
⎢0
[Tr ] = ⎢
⎢0

⎣0

0 0 0⎤
1 0 0⎥⎥
0 1 r⎥

0 0 1⎦

⎡ x
[ x' y ' z ' 1] = ⎢
⎣ rz + 1
z

37


z

1
rz + 1 ⎥⎦

Phép chiếu phối ca?nh của
các điểm trên đối tượng lên
trên mặt phẳng 2D thu được
từ phép chiếu trực giao và
phép biến đổi phối cảnh

38

Perspective Projections
z

y
rz + 1

Perspective Projections
z

Tham số:





z


centre of projection (COP)
field of view (θ, φ)
projection direction
up direction

Projecting a 3D Point
We use similar triangles to project the point onto the plane
in the line of the eye.




x’/x = N/-z (z in the negative direction)
y’/y = N/-z
Once projected onto a 2D plane the z coordinate is not needed.
(x’,y’)
(x,y,z)

N

39

z
near plane

40

Perspective Projection Details


Perspective Projections
Consider a perspective projection with the viewpoint at the origin
and a viewing direction oriented along the positive -z axis and the
view-plane located at z = -d
y yP
y
=
⇒ yP =
z
d
zd
a similar construction for xp

d



y
yp

41

-z

⎡ x ⎤
⎡ x ⎤ ⎡1
⎡ xP ⎤ ⎢ z d ⎥
⎢ ⎥ ⎢
⎢y ⎥ ⎢ y ⎥
⎥ ↔ ⎢ y ⎥ = ⎢0

⎢ P⎥ = ⎢
⎢ − z ⎥ ⎢0
⎢ zP ⎥ ⎢ z d ⎥
⎢ ⎥ ⎢
⎢ ⎥ ⎢−d ⎥
⎣ z d ⎦ ⎣0
⎣1⎦ ⎢

⎣ 1 ⎦

0 0
1 0
0 −1
0 1d

divide by homogenous ordinate to
map back to 3D space

⎡ x ⎤ ⎡1
⎢ y ⎥ ⎢0
⎢ ⎥=⎢
⎢ − z ⎥ ⎢0
⎢ ⎥ ⎢
⎣ 1 ⎦ ⎣0

0⎤ ⎡ x ⎤
0⎥ ⎢ y ⎥
⎥⎢ ⎥
0⎥ ⎢ z ⎥
⎥⎢ ⎥

0⎦ ⎣ 1 ⎦

0⎤ ⎡ x ⎤
0⎥ ⎢ y ⎥
⎥⎢ ⎥
0 − 1 0⎥ ⎢ z ⎥
⎥⎢ ⎥
0 0 0⎦ ⎣ 1 ⎦
0
1

0
0

⎡ x ⎤
⎡ x ⎤
⎡ xP ⎤ ⎢ z d ⎥


⎢y ⎥ ⎢ y ⎥
⎥↔⎢ y ⎥
⎢ P⎥ = ⎢
⎢− z⎥
⎢ zP ⎥ ⎢ z d ⎥


⎢ ⎥ ⎢−d ⎥
⎣z d ⎦
⎣1⎦ ⎢


⎣ 1 ⎦

PROJECTION
matrix

perspective
division

Flip z to transform to a left handed co-ordinate
system ⇒ increasing z values mean increasing
distance from the viewer.

42

7


Khoa CNTT – DHBK Hanoi

8682595

Phép chiếu phối cảnh 1 tâm

phép chiếu phối cảnh 1 tâm

Giả sử khi mặt phẳng được đặt tại z = 0 và tâm phép chiếu
nằm trên trục z , cách trục z một khoảng zc = -1/r.
Nếu đối tượng cũng nằm trên mặt phẳng z = 0 thì đối tượng
sẽ cho hình ảnh thật.
Phương trình biến đổi:

[ x y z 1 ][ Tr ] = [ x y z rz+1 ]
ma trận biến đổi một điểm phối cảnh [ Tr ] có dạng:


] = ⎢




[ Tr

1
0
0
0

0
1
0
0

⎡1
⎢0
=⎢
⎢0

⎣0

0 0 0⎤ ⎡1
1 0 0⎥ ⎢0

⎥ ⎢
0 1 r⎥ ⎢0
⎥ ⎢
0 0 1⎦ ⎣0

⎡1
⎢0
[x y z 1] ⎢
⎢0

⎣0

0 ⎤
0 ⎥⎥
r ⎥

1 ⎦

0
0
1
0

y

43

0
1
0

0

0
0
0
0

0 0 0⎤
1 0 0⎥

0 0 r⎥

0 0 1⎦

H

Phép chiếu phối cảnh 2 tâm

H’
D

G’

C
E

F

x


A’ E’
A

F’ B

x

B

z

0⎤
0⎥
⎥ = [x y 0 rz+1]
r⎥

1⎦


x
y ' z ' 1] = ⎢
⎣ ( px + qy + 1)

[x'

VP (y=10)

VP ≡ y = 10

[x'


y
⎡ x

y' z' 1] = ⎢
0 1⎥
⎣ rz +1 rz +1


VP( x = 10)


z
1
( px + qy + 1) ⎥⎦

[ Tc ] = [ Tpq ][ Tz ]

z

⎡1
⎢0
=⎢
⎢0

⎣0

VP
X=10
A’, E’B’, F’

A’, E’B’, F’x’

z

p⎤
q ⎥⎥
0⎥

1⎦

0 0
1 0
0 1
0 0

[x

y

⎡1
⎢0
z 1] ⎢
⎢0

⎣0

0 0 p⎤
1 0 q ⎥⎥
= [x
0 1 0⎥


0 0 1⎦

y

z

z ( px + qy + 1)]

0 0 p⎤
1 0 q ⎥⎥
0 1 0⎥

0 0 1⎦

⎡1
⎢0

⎢0

⎣0

0 0 0 ⎤ ⎡1
1 0 0⎥⎥ ⎢⎢0
=
0 0 0 ⎥ ⎢0
⎥ ⎢
0 0 1 ⎦ ⎣0

z


46

Phép chiếu phối cảnh 3 tâm chiếu

[x'


x
y' z ' 1] = ⎢
⎣ ( px + qy + rz + 1)

y
( px + qy + rz + 1)

y'

VP ( y = 10)

[x

0
1
0
0

y

0
0

1
0

p⎤
0 ⎥⎥
0⎥

1⎦

⎡1
⎢0

⎢0

⎣0

⎡1
⎢0
z 1] ⎢
⎢0

⎣0

0
1
0
0

0
0

1
0

0⎤
q ⎥⎥
0⎥

1⎦

⎡1
⎢0

⎢0

⎣0

p⎤
1 0 q ⎥⎥
= [x
0 1 r⎥

0 0 1⎦


z
1
( px + qy + rz + 1) ⎥⎦

y'


[ Tpqr ] = [Tp ][Tq ][Tr ]

⎡1
⎢0
=⎢
⎢0

⎣0

0 0 p⎤
1 0 q ⎥⎥
0 0 0⎥

0 0 1⎦

2 tâm chiếu:
[ -1/p 0 0 1 ]
[ 0 -1/q 0 1 ]
VP (Vanishing point) tương ứng trên 2 trục x và y là
điểm: [ 1/p 0 0 1 ] và [ 0 1/q 0 1 ].

z

⎡1
⎢0
[T pq ] = ⎢
⎢0

⎣0


z

y
( px + qy + 1)

D’, H’C’, G’

D’ H’
C’,G’

47

C’

G

44

Y’

45

0 0 0⎤ ⎡1
1 0 0⎥ ⎢0
⎥ =⎢
0 0 0⎥ ⎢0
⎥ ⎢
0 0 1⎦ ⎣0

y’

D’

0
1
0
0

0
0
1
0

0 ⎤ ⎡1
0 ⎥⎥ ⎢⎢ 0
=
r ⎥ ⎢0
⎥ ⎢
1 ⎦ ⎣0

0
1
0
0

0
0
1
0

p⎤

q ⎥⎥
r⎥

1⎦

H'
D'

D'

H'

G'

C'
E'

G'

0 0

y

C'

VP ( x = 10 )

z ( px + qy + rz + 1)]

VP ( z = 10 )


F'

A'

x'
z'
A', E'

F'

B'

x'
B'

48

8


Khoa CNTT – DHBK Hanoi

8682595

Đặc tính của phép chiếu phối cảnh
z

z


z

3 tâm chiếu:
– trên trục x tại điểm [ -1/p 0 0 1 ],
– y tại điểm [ 0 -1/q 0 1 ]
– z tại điểm [ 0 0 -1/r 1 ].
VP sẽ tương ứng với các giá trị :
– [ 1/p 0 0 1 ], [ 0 1/q 0 1 ] [ 0 0 1/r 1 ]
[ Tc ] = [ Tpqr ][ Tz ]
⎡1
⎢0
=⎢
⎢0

⎣0

49

0 0 p⎤ ⎡1
1 0 q ⎥⎥ ⎢⎢0
.
0 1 r ⎥ ⎢0
⎥⎢
0 0 1 ⎦ ⎣0

0 0 0⎤ ⎡1
1 0 0⎥⎥ ⎢⎢0
=
0 0 0⎥ ⎢0
⎥ ⎢

0 0 1⎦ ⎣0

1.
2.

3.

0 0 p⎤
1 0 q ⎥⎥
0 0 r⎥

0 0 1⎦

50

Taxonomy of Projections
z

Parallel lines in 3D will
meet at a vanishing point
Lines that pass behind the
eye of the camera cause a
catastropic “passage
through infinity”.
Perspective projections
usually produce
geometrically realistic
pictures.

Classical Projections


Perspective


Three Point

M.C. Escher: Ascending and Descending

51

Phân loại các phép chiếu

Viewing in OpenGL

PhÐp chiÕu hình học
phẳng

z

Phép chiếu song
song

z

Phép chiếu phối cảnh

Phép chiếu
Xiên

Trực giao


z

Một điểm

z

Axonometric
Chiếu
bằng

Hai ®iĨm

Cavalier

z
z

Trimetric
ChiÕu
®øng

Cabinet

ChiÕu
c¹nh

OpenGL has multiple matrix stacks - transformation
functions right-multiply the top of the stack
Two most important stacks: GL_MODELVIEW and

GL_PROJECTION
Points get multiplied by the modelview matrix first, and
then the projection matrix
GL_MODELVIEW: Object->Camera
GL_PROJECTION: Camera->Screen
glViewport(0,0,w,h): Screen->Device

Ba điểm

Dimetric
Isometric

53

Angel Figure 5.3

52

Phép chiếu
khác

54

9


Khoa CNTT – DHBK Hanoi

8682595


OpenGL Example

Stereo Projections

void SetUpViewing()
{
// The viewport isn’t a matrix, it’s just state...
glViewport( 0, 0, window_width, window_height );

z
z

// Set up camera->screen transformation first
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
gluPerspective( 60, 1, 1, 1000 ); // fov, aspect, near, far

z
z

// Set up the model->camera transformation
glMatrixMode( GL_MODELVIEW );
gluLookAt( 3, 3, 2,
// eye point
0, 0, 0,
// look at point
0, 0, 1 ); // up vector
glRotatef( theta, 0, 0, 1 ); // rotate the model
glScalef( zoom, zoom, zoom ); // scale the model


Faking depth in a 2D image
Based on natural stereoscopic eye-brain system.
Objects are not viewed with just one eye, but two
eyes.
Each eye looks at the object from a slightly
different location.

}

55

56

Stereo Projections

57

10



×