Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595

Nguyên lý về 3D

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

(cid:122) Ðồ 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.

(cid:122) 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

Lê Tấn Hùng 0913030731 hunglt@it-hut.edu.vn

(cid:122) 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

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

trong không gian 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à ngoài

– 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

(cid:122) Các phép biến đổi hình học phức tạp (cid:122) Các phép biến đổi hệ toạ độ phức tạp hơn (cid:122) 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

(cid:122) Thiết bị hiển thị 3D:

(cid:122) Luôn phải xác định các bề mặt hiển thị

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

3 4

Perspective and Depth of Field

Exploded/cutaway scenes

Stereo Projections

Shadows as depth cues

(cid:122) In OpenGL we can produce stereo views by creating two side-by-side viewports with slightly different viewing angles.

(cid:122) The lookat point stays the

(cid:122) Human eyes are about 3

same but the location of the eye moves.

Different views of a 3D model

inches apart, therefore a good value for D is 1.5

5 6

1

Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595

Stereo Projections

3D GRAPHICS PIPELINE

WORLD SCENE/OBJECT

3D MODELLING

Modelling coordinates: - world coordinate system, - object coordinate system

VIEWING

3D CLIPPING

Camera coordinates

PROJECTION

Screen/Window coordinates

RASTERIZATION

Device coordinates

eye=(0,-1,2.5)

eye=(0.5,-1,2.5)

2D PIXELMAP DISPLAY

7 8

3D - Modelling

Clipping 3D

2

2

2

2

x

y

z

r

+

+

=

view frustrum

Polygonal

Implicit

3D Modelling

x y

= =

sin 4 θ 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 hunglt@it-hut.edu.vn 8682595

Các bước xây dựng hình chiếu

Phép chiếu

khung nh×n

täa ®é thùc 3D

täa ®é theo vïng c¾t

täa ®é thiÕt bÞ

Đị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.

C¾t theo view volum

PhÐp chiÕu trªn mÆt ph¼ng chiÕu

PhÐp biÕn ®æi vμo cæng nh×n cña täa ®é thiÕt bÞ

(cid:122) 1. đối tượng trong không gian 3D với tọa độ thực được cắt theo một không

Đị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ừ

gian xác định gọi là view volume.

(cid:122) 2. view volume được chiếu lên mặt phẳng chiếu. Diện tích choán bởi view

volume trên mặt phẳng chiếu đó sẽ cho chúng ta khung nhìn.

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 tượng giao với mặt chiếu (projection plan).

(cid:122) 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

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

14 13

Phép chiếu song song Parallel Projections

(cid:131) Phép chiếu song song - Parallel

A

B

(cid:122) Points on the object are projected to the

D

B ’

C

A ’ D ’

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 (cid:131) 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

C ’

projectio n plane

centre of projection at infinity

viewing plane along parallel lines (cid:122) Preserves relative dimensions of the object but does not give a realistic presentation

15 16

Taxonomy of Projections

(cid:122) Orthographic Projections – Multiview Orthographic

(cid:131) Phép chiếu trực giao (Orthographic

]

=

[ yT

]

=

]

=

[ zT

[ xT

0001 ⎡ ⎤ ⎢ ⎥ 0000 ⎢ ⎥ ⎢ ⎥ 0100 ⎢ ⎥ 1000 ⎣ ⎦

0001 ⎤ ⎡ ⎥ ⎢ 0010 ⎥ ⎢ ⎥ ⎢ 0000 ⎥ ⎢ 1000 ⎦ ⎣

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

0000 ⎤ ⎥ 0010 ⎥ ⎥ 0100 ⎥ 1000 ⎦

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 (cid:131) Ứng với mỗi mặt phẳng chiếu ta có 1 ma trận chiếu tương ứng

17 18

3

Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595

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

Trimetric

(cid:122) Phép chiếu trục lượng là phép chiếu mà hình chiếu thu được (cid:122) Phép chiếu Trimetric (cid:122) 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) vuông góc với tia chiếu

(cid:122) trên cơ sở tỉ lệ co - SF của ảnh đối tượng trên mỗi trục là khác nhau.

[ 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

'y

x

2 x

2 x

=

+

f

'x

'y

]

[ U

][ T

=

=

y

2 y

2 y

x x x

y y y

1001 ⎡ ⎤ ⎢ ⎥ 1010 ⎢ ⎥ ⎢ ⎥ 1100 ⎣ ⎦

=

+

f

'x

'y

z

2 z

2 z

' x ' y ' z 0

' x ' y ' z 0

⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ 10 ⎥ 10 ⎥ ⎥ 10 ⎥ 10 ⎥ ⎦

19 20

Phép chiếu Dimetric

[

Ry

][

Rx

][

Pz

]

T = ] [

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

0

0

φ

φ

f

(

y

)

2 sin

2 cos

=

+

=

+ φ

2 sin ϕφ

2 z

2 ' x z

2 ' z

cos 0

1

sin 0

cos

sin

ϕ

ϕ

.

.

=

φ

φ

ϕ

ϕ

f

(

x

y

cos

=

+

=

ϕ2

2 y

2 ' y

2 ' y

sin 0

cos 0

sin 0

0 0

cos 0

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

0 ⎤ ⎥ 0 ⎥ ⎥ 0 ⎥ 1 ⎦

1 ⎡ ⎢ 0 ⎢ ⎢ 0 ⎢ 0 ⎣

0 ⎤ ⎥ 0 ⎥ ⎥ 0 ⎥ 1 ⎦

0001 ⎡ ⎤ ⎢ ⎥ 0010 ⎢ ⎥ ⎢ ⎥ 0000 ⎢ ⎥ 1000 ⎣ ⎦

) f

1

z

sin

(

)

=

±

φ

sin

φ

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

cos 0

00 00

sin ϕφ cos ϕ

f

2 z

][ T

=

•Quay quanh x theo một góc ψ

cos

1

sin φ 0

sin ϕφ 0

00 10

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

sin

(

)

=

±

ϕ

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

2 zf 2

21 22

Phép chiếu Isometric

2

2

sin

φ

=

sin 2 sin

ϕ ϕ

21 − 1 −

2

2

(cid:122) Là phép chiếu trục lượng mà ở đó hệ số co cạnh trên 3 trục là bằng nhau (cid:122) Góc quay tương ứng là

sin

φ

=

ϕ 2

.

ϕ

35.26 và 45

(cid:122) Ðược ứng dụng nhiều

2 sin

21 /

=

=

=

φ

31 / 311 / −

1

ϕ

sin 1 sin − 2 sin ϕ 2 sin − 1

±=ϕsin

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

3 026.35 045 cos2

3/2

.0

8165

ϕ

ϕ ±= φ ±= f =

=

=

23 24

4

Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595

Taxonomy of Projections

Parallel Projections

(cid:122) Oblique Projections

orthographic

oblique

isometric

axonometric

26 25

Taxonomy of Projections

Phép chiếu xiên - Oblique

(cid:122) Oblique Projections

– Combine the properties of Orthographic and

(cid:122) Phép chiếu Cavalier (cid:122) Phép chiếu Cabinet

Axonometric

– Preserves the object face; and – Gives a better sense of the 3D nature.

27 28

Phép chiếu Cavalier

(cid:71) Phép chiếu cavalier là phép chiếu xiên được tạo thành khi các

– 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

α

cos a f sinf

b

= =

α

T [

]''

=

1

0

00

1 0 a − 0

0 1 b − 0

00 00 00 10

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

tia chiếu làm thành với mặt phẳng chiếu một góc 450

][ T

=

0 cos

1 sin

00 00

f

α f

α

0

0

10

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

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

29 30

5

Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 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

1 −

cos

(

)

β

=

2

2

f

1

+

1

0

1 −

)

.63

435

cos

(

=

=

2

2

2 )21(

1

+

D/2

D

D

D

Cabinet Projection

Cavalier Project

32 31

Vanishing points

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

(cid:122) Each set of parallel lines (=direction) meets at a

different point: The vanishing point for this direction

(cid:122) Sets of parallel lines on the same plane lead to

(cid:122) 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.

(cid:122) 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

collinear vanishing points: the horizon for that plane

(cid:122) Easy examples

(cid:122) Phân loại phép chiếu phối cảnh dựa vào tâm chiếu - Centre Of

– corridor – higher = further away

(cid:122) Good way to spot faked images

điểm gọi là điểm triệt tiêu - vanishing point Projection (COP) và mặt phẳng chiếu projection plane

33 34

Perspective Projections

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

3-point perspective

(cid:122) 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

1-point perspective

(cid:122) The number of principal vanishing points is determined by the number of principal axes cut by the projection plane.

(cid:122) If the plane only cut the z axis (most common), there is

only 1 vanishing point.

(cid:122) 2-points sometimes used in architecture and

engineering. 3-points seldom used … add little extra realism

2-point perspective

35 36

6

Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595

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

Phép biến đổi phối cảnh

Tr [

]

=

100

r

1000

0001 ⎤ ⎡ ⎥ ⎢ 0010 ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎦ ⎣

x '[

y

'

z

]1'

=

rz

1

rz

1

rz

1

x +

y +

z +

⎡ ⎢⎣

⎤ 1 ⎥⎦

(cid:122) 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 37

Perspective Projections

Perspective Projections

(cid:122) Tham số:

(cid:122) Projecting a 3D Point (cid:122) We use similar triangles to project the point onto the plane

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

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

z

near plane

39 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

P

y

=⇒=

P

y z

y P d

y dz

P

=

d

a similar construction for xp ⇒

x y z P 1

x y z − dz

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

y

x dz y dz d − 1

⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦

⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣

0 0

0 0

x y

x y

P

=

yp

=

=

-z

00 00

01 − 0

z − 1

x y z − dz

0 0 0 0 01 d

x P y z P 1

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

01 ⎡ ⎢ 10 ⎢ ⎢ ⎢ ⎣

⎤ ⎡ ⎥ ⎢ ⎥ ⎢ z ⎥ ⎢ ⎥ ⎢ 10 ⎦ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

PROJECTION matrix

perspective division

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

x ⎡ ⎤ ⎢ ⎥ y ⎢ ⎥ z ⎢ ⎥ ⎢ ⎥ 10 ⎣ ⎦

01 ⎡ ⎢ 10 ⎢ 00 − ⎢ ⎢ 100 ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

x dz y dz d − 1

⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦

⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣

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

divide by homogenous ordinate to map back to 3D space

41 42

7

Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595

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

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

y

y’

D’

C’

H G

H’

G’

D

C

=

=

E

F

x

A’ E’

F’ B x

A

B

0001 ⎡ ⎤ ⎢ ⎥ 0010 ⎢ ⎥ r 100 ⎢ ⎥ ⎢ ⎥ 1000 ⎣ ⎦

0001 ⎡ ⎤ ⎢ ⎥ 0010 ⎢ ⎥ 0000 ⎢ ⎥ ⎢ ⎥ 1000 ⎣ ⎦

0001 ⎡ ⎤ ⎢ ⎥ 0010 ⎢ ⎥ r 000 ⎢ ⎥ ⎢ ⎥ 1000 ⎣ ⎦

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

z

1

0

0

0

0

rz

=

0

1

0

0

[ zyx

] 1

[ yx

]1 +

y '

=

[ x '

] z 1'

[

Tr

]

=

1

1

x rz +

y rz +

⎡ ⎢ ⎣

⎤ 10 ⎥ ⎦

0

0

1

0001 ⎡ ⎤ ⎢ ⎥ 0010 ⎢ ⎥ ⎢ ⎥ 000 r ⎢ ⎥ 1000 ⎣ ⎦

0

0

0

r 1

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

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:

'

'

y

z

=

[ x

] 1'

Y’

43 44

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

VP (y=10)

x qy

(

px

)1

(

px

)1

(

px

)1

y qy

z qy

+

+

+

+

+

+

⎡ ⎢ ⎣

⎤ 1 ⎥ ⎦

VP ≡ y = 10

D’, H’C’, G’

D’ H’ C’,G’

VP( x = 10)

VP

X=10

A’, E’B’, F’

001 010

p q

p q

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

=

=

000 0 1000

0000 1000

100 0 1000

(cid:122) [ Tc ] = [ Tpq ][ Tz ] 001 ⎡ ⎢ 010 ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

0001 ⎡ ⎢ 0010 ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

001

p

p

010

q

(

x

y

z

px

qy

y

z

=

+

+

]

=

[ x

] 1

[

])1

Tpq [

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

010 100

q 0

1000

điểm: [ 1/p 0 0 1 ] và [ 0 1/q 0 1 ].

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

001 ⎡ ⎢ ⎢ ⎢ ⎢ ⎣

100 000

0 1

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

'

y

'

z

=

[ x

] 1'

(

px

rz

)1

(

px

rz

)1

(

px

rz

)1

x qy +

y qy +

+

+

+

+

+

+

z qy +

⎡ ⎢ ⎣

⎤ 1 ⎥ ⎦

45 46

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

y'

(cid:122) [ Tpqr ] = [Tp ][Tq ][Tr ]

y'

VP ( y = 10)

H'

D'

=

=

D'

H'

G'

C'

1 0 0 0

0 1 0 0

0 0 1 0

p q r 1

1 0 0 0

0 1 0 0

0 0 1 0

0 0 r 1

1 0 0 0

0 1 0 0

0 0 1 0

0 q 0 1

1 0 0 0

0 1 0 0

0 0 1 0

p 0 0 1

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

C'

E'

G'

p

VP ( x = 10 )

VP ( z = 10 )

F'

y

z

y

z

px

qy

rz

(

=

+

+

+

A'

[ x

] 1

[ x

])1

x'

z'

x'

q 010 r 100 1000

001 ⎡ ⎢ ⎢ ⎢ ⎢ ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

B'

A', E'

F'

B'

47 48

8

Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595

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

(cid:122) 3 tâm chiếu:

1.

2.

– 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 ]. (cid:122) 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 ]

3.

(cid:122) [ Tc ] = [ Tpqr ][ Tz ]

p

p

q

q

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.

=

=

001 ⎡ ⎢ 010 ⎢ ⎢ r 000 ⎢ 1000 ⎣

⎤ ⎥ ⎥ ⎥ ⎥ ⎦

001 ⎡ ⎢ 010 ⎢ ⎢ r 100 ⎢ 1000 ⎣

0001 ⎤ ⎡ ⎤ ⎢ ⎥ ⎥ 0010 ⎥ ⎢ ⎥ . ⎢ ⎥ ⎥ 0000 ⎢ ⎥ ⎥ 1000 ⎣ ⎦ ⎦

49 50

Taxonomy of Projections

Classical Projections

(cid:122) Perspective – Three Point

M.C. Escher: Ascending and Descending

Angel Figure 5.3 51 52

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

Viewing in OpenGL

PhÐp chiÕu h×nh häc ph¼ng

(cid:122) OpenGL has multiple matrix stacks - transformation

functions right-multiply the top of the stack

PhÐp chiÕu phèi c¶nh

PhÐp chiÕu song song

(cid:122) Two most important stacks: GL_MODELVIEW and

GL_PROJECTION

Trùc giao

(cid:122) Points get multiplied by the modelview matrix first, and

Mét ®iÓm

PhÐp chiÕu Xiªn

then the projection matrix

Axonometric

Hai ®iÓm

Cavalier

ChiÕu b»ng

Trimetric

(cid:122) GL_MODELVIEW: Object->Camera (cid:122) GL_PROJECTION: Camera->Screen (cid:122) glViewport(0,0,w,h): Screen->Device

Cabinet

Ba ®iÓm

ChiÕu ®øng

Dimetric

ChiÕu c¹nh

Isometric

PhÐp chiÕu kh¸c

53 54

9

Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595

OpenGL Example

Stereo Projections

void SetUpViewing() {

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

(cid:122) Faking depth in a 2D image (cid:122) Based on natural stereoscopic eye-brain system. (cid:122) Objects are not viewed with just one eye, but two

eyes.

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

(cid:122) Each eye looks at the object from a slightly

different location.

// 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

}

56 55

Stereo Projections

57

10