75Ѭ
Ӡ1*Ĉ
ҤI HӐ&6Ѭ3+
Ҥ0Ĉ¬1
ҸNG
KHOA TIN HӐC
# "
LUҰ19Ă17
ӔT NGHIӊP
CӰ NHÂN CƠNG NGHӊTHƠNG TIN
KHĨA 2009
1*+,ầ1&8/375ẻ1+
V
;ặ<'1**$0('&+2
*LiRYLrQKQJGQ
Th.S 7518<ầ175$1*
Sinh viờn thc hi
n : TR1
C HUY
ơ1
NG
7+ẩ1*10
1
NHN XẫT C$*,ẩ29,ầ1+
NG DN
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
j1QJ
QJj\ôôWKiQJôô
*LiRYLrQKQ
2
NHҰN XÉT CӪA HӜ,Ĉ
ӖNG XÉT DUYӊT
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
.....................................................................................................................................................................
Ĉj1ҹQJ
QJj\««WKiQJ««
+ӝLÿӗQJ[pWG
3
Mөc lөc
NHҰN XÉT CӪ$*,È29,Ç1+Ѭ
ӞNG DҮN ................................
................................
...............2
NHҰN XÉT CӪA HӜ,Ĉ
ӖNG XÉT DUYӊT ................................
................................
..................3
MӢĈҪU................................
................................
................................
................................
............6
&KѭѫQJ&Ѫ6
ӢLÝ THUYӂT ................................
................................
................................
....... 7
1.
Khái niӋ
Pÿ
ӗhӑ
a máy tính ................................
................................
................................
.7
2.
Sӵphát triӇ
n cӫDÿ
ӗhӑ
DGLÿ
ӝ
ng ................................
................................
........................9
3.
Khái niӋ
PFѫE
ҧn vӅ3D ................................
................................
................................
..... 12
3.1.
HӋtӑDÿ
ӝ3 chiӅ
u ................................
................................
................................
........12
3.2.
9HUWH[ÿ
Ӎ
nh) ................................
................................
................................
...............15
3.3.
Edge (cҥnh) ................................
................................
................................
.................15
3.4.
7ULDQJOH4XDG7DPJLiFYjFiFKuQKÿD
................................
...................16
3.5.
Normal Vector (Vector pháp tuyӃ
n) ................................
................................
.........16
3.6.
Pixel ................................
................................
................................
.............................
17
3.7.
Texture & Texel................................
................................
................................
..........17
3.8.
Fragment ................................
................................
................................
.....................17
3.9.
Phép chiӃ
u song song và phép chiӃ
u phӕi cҧnh ................................
.......................18
Các kênh màu (Color channel) ................................
................................
.............19
3.10.
4.
&iFWKѭYL
Ӌ
Qÿ
ӗhӑ
a DirectX, OpenGL và OpenGL ES 2 ................................
..............20
5.
Rendering Pipeline (quy trình trình chiӃ
u hình ҧ
nh) ................................
.....................30
6.
Shader ................................
................................
................................
................................
. 33
7.
Các khái niӋ
m toán hӑF'FѫE
ҧ
n ................................
................................
...................35
8.
Ma trұn MVP ................................
................................
................................
.....................40
9.
Texture ................................
................................
................................
................................
43
10.
0{KuQKÿ
ӕLWѭ
ӧng (Model) ................................
................................
...........................44
11.
Ngôn ngӳGLSL ................................
................................
................................
.............45
12.
Cҩ
u trúc cӫa mӝWWUzFKѫLJDPH
................................
................................
.................48
13.
Gii thi
u vGame Engine................................
................................
............................
49
&KQJ3+ặ17ậ&+9ơ;ặ<'
1*
TI ................................
................................
....... 51
1.
Gii thi
X
ti v n
i dung game ................................
................................
...................51
2.
Các thành phҫn gӗm có trong game ................................
................................
.................53
3.
ThiӃ
t kӃcác lӟSÿ
ӕ
LWѭ
ӧng ................................
................................
................................
. 55
4.
ChuyӇ
QJDPHWUrQPi\WtQKVDQJÿL
Ӌ
n thoҥ
i ................................
................................
... 65
5.
Mӝt vài hình ҧ
nh demo game ................................
................................
............................
69
4
KӂT LUҰ19¬+Ѭ
ӞNG PHÁT TRIӆN ................................
................................
.......................73
TÀI LIӊU THAM KHҦO................................
................................
................................
................74
5
MӢĈҪU
Ngày nay, sӵphát triӇ
n bùng nәcӫa các thiӃ
t bӏGLÿ
ӝ
QJÿmFyWiFÿ
ӝng không nhӓ
tӟL
ӡi ÿ
sӕ
ng chúng ta. Có thӇdӉdàng nhұ
n thҩ
y, các thiӃ
t bӏsӕGL
ӝQJ
ÿ QKѭ
6PDUWSKRQH L3KRQH $QGURLG«
ҥ
i máy tính bҧ
WDEOHW
ng
NKiF«
G
ҫ
n trӣthành vұ
t bҩ
WO\WKkQÿ
ӕ
i vӟi mӛLQJѭ
ӡi, chúng ta sӱdөng chúng
hҫ
XQKѭNK
ҳ
p mӑLQѫLYjP
ӑLO~FNKLÿLK
ӑc, tҥ
i cơng sӣNKLÿLFKѫLY
ӟi bҥ
n bè, ӣ
QKj«
Chính vì sӵphәbiӃ
n này, kèm theo sӵphát triӇ
QYѭ
ӧt bұ
c vӅcông nghӋphҫ
n cӭng
lү
n phҫ
n mӅ
m cӫ
a các thiӃ
t bӏGLÿ
ӝQJÿmEL
Ӄ
n nhӳng chiӃ
FÿL
Ӌ
n thoҥ
i chӍcó màn
hình trҳ
QJÿHQQJKHJ
ӑ
i nhҳ
QWLQQJj\[ѭDWU
ӣWKjQKQKѭQJF
ӛmáy mҥ
nh mӁvӟi
cҩ
u hình mҥ
nh, hӋÿL
Ӆ
XKjQKÿDQKL
Ӌ
PÿDWiFY
ө, kӃ
t nӕLLQWHUQHWWKѭ
ӡng trӵc 24/24
vӟi các cơng nghӋ3G, wifi.
Nhӡvұ
y mà nhu cҫ
u giҧ
i trí trên các thiӃ
t bӏFNJQJQJj\P
ӝWWăQJÿ
ӗng thӡi vӟi sӵ
cҥ
nh tranh cӫa các hãng sҧ
n xuҩ
t thiӃ
t bӏGLÿ
ӝ
QJÿmFXQJF
ҩ
p cho giӟi lұ
p trình rҩ
t
nhiӅ
u cơng cөÿӇhӛtrӧphát triӇ
n các sҧ
n phҭ
m cơng nghӋ
, giҧ
i trí trên các thiӃ
t bӏ
GLÿ
ӝ
ng, rҩ
t nhiӅ
u chӧӭng dө
QJÿ
ѭӧFÿ
ҫ
XWѭSKiWWUL
Ӈ
Qÿ
Ӈÿ
ҧ
m bҧ
Rÿ
ҫ
u ra cho các
sҧ
n phҭ
m ӭng dө
QJ ӝ
GL
ng, giúp
ÿ các lұ
p trình viên dӉdàng kiӃ
P ÿѭ
ӧc tiӅ
n tӯ
nhӳng sҧ
n phҭ
m cӫa mình và dӉGjQJҧ
nÿѭD
phҭ
m cӫ
V
D PuQK
Ӄ
n thӏ
UD
WUѭ
ӡngÿ
quӕ
c tӃmӝ
t cách nhanh chóng, mà khơng cҫ
n phҧ
LORQJKƭ
nhiӅ
u cho viӋ
c quҧ
ng bá
sҧ
n phҭ
PKD\ÿDXÿ
ҫ
u các chiӃ
QOѭ
ӧc kinh doanh phӭc tҥ
p.
ĈӇnҳ
m bҳ
t xu thӃcông nghӋthӃgiӟi và tұ
n dөQJFѫK
ӝi lӟn này, em cҧ
m thҩ
y cҫ
n
thiӃ
t phҧ
i nghiên cӭXVkXYjROƭQKY
ӵc phát triӇ
n ӭng dөQJGLÿ
ӝQJÿ
ҫ
y hҩ
p dү
n này,
vì thӃnên em chӑ
Qÿ
Ӆtài Nghiên cӭu lұS WUuQK
ӗhӑa và xây
ÿ dӵng Game 3D
cho mobile vӟi mө
FWLrXOjFyÿѭ
ӧc cái nhìn tồn diӋ
n và hiӇ
XU}ÿѭ
ӧc thӃnào là
lұ
S WUuQK
ӗhӑ
a, game,
ÿ các cơng nghӋÿҵ
QJ VDX ÿy
Ӈxây
Yj
dӵngOjP
cho
VDR
mình mӝt bӝcơng cөmà tӯÿyFyW
hӇsӱdөQJÿ
Ӈxây dӵng bҩ
t cӭmӝt game nào tùy
thích cho các thiӃ
t bӏGLÿ
ӝQJL3KRQHL3DG$QGURLGSK
ӭng dөng nhӳng
kiӃ
n thӭc này xây dӵng mӝWJDPH'ÿѫQJL
ҧ
n lҩ
\ÿ
Ӆtài biӇ
Qÿ
ҧ
o ViӋ
t Nam vӟi tên
gӑ
i: Game Bҧ
o vӋ+RjQJ6D7Uѭ
ӡng Sa.
6
&KѭѫQJ
&Ѫ6
Ӣ LÝ THUYӂT
1. Khái niӋ
Pÿ
ӗhӑ
a máy tính
Ĉӗhӑ
a máy tính là mӝWOƭQKY
ӵc cӫ
a khoa hӑc máy tính nghiên cӭu vӅFѫV
ӣtốn
hӑ
c, các thuұ
W WRiQ FNJQJ
ұ
W
QKѭ
Ӈcho
ÿ phép
FiF
tҥ
o, hiӇ
Nƭ
n thӏYj
WKX
Ӆ
u ÿL
khiӇ
n
hình ҧ
QKWUrQPjQKuQKPi\WtQKĈ
ӗhӑa máy tính có liên quan ít nhiӅ
Xÿ
Ӄ
n mӝ
t sӕ
OƭQKY
ӵFQKѭ
ÿ
ҥ
i sӕ
, hình hӑ
c giҧ
i tích, hình hӑc hӑ
a hình, quang hӑFYjNƭ
ұ
t
Pi\WtQKÿ
һ
c biӋ
t là chӃtҥ
o phҫ
n cӭng (các loҥ
i màn hình, các thiӃ
t bӏxuҩ
t, nhұ
p,
các vӍmҥ
FKÿ
ӗhӑ
a...).
7KHR QJKƭD
ӝ
QJ KѫQ
ӗhӑ
UD Pi\
ÿ
WtQK Oj SKѭѫQJ
Ӌdùng trong
SKiS
viӋ
c chuyӇ
Qÿ
әi qua lҥ
i giӳa dӳliӋ
u và hình ҧ
nh trên màn hình bҵ
QJPi\WtQK
ӗ
hӑ
DPi\WtQKKD\NƭWKX
ұ
Wÿ
ӗhӑDPi\WtQKFzQÿѭ
ӧc hiӇ
XGѭ
ӟi dҥ
QJSKѭѫQJS
YjNƭWKX
ұ
t tҥ
o hình ҧ
nh tӯcác mơ hình tốn hӑc mô tҧFiFÿ
ӕLWѭ
ӧng hay dӳliӋ
u lҩ
y
ÿѭ
ӧc tӯcác ÿ
ӕLӧng
Wѭ
trong thӵc tӃ
. Thuұ
t ngӳÿ
ӗhӑ
a máy tính" (computer
JUDSKLFV
ÿѭ
ӧFÿ
Ӆxuҩ
t bӣi mӝ
WFKX\rQJLDQJѭ
ӡL0ƭWrQOj:LOOLDP
.KLÿy{QJÿDQJQJKLrQF
ӭu xây dӵng mơ hình buӗng lái máy bay cho hãng
%RHLQJ :LOOLDP
ӵa trên các)HWWHU
hình ҧ
nh 3 chiӅ
uÿm
cӫD
GP{ KuQK
ӡi phi
QJѭ
cơng trong buӗQJ OiL
Ӈxây dӵng
ÿ nên mơ hình buӗ
ng lái tӕL ѭX FKR Pi\
%RHLQJĈk\OjSKѭѫQJSKiSQJKLrQF
ӭu rҩ
t mӟi vào thӡLNuÿy3KѭѫQJ
cho phép các nhà thiӃ
t kӃquan sát mӝt cách trӵc quan vӏtrí cӫ
D QJѭ
ӡi lái trong
khoang buӗ
QJOiL:LOOLDP)HWWHUÿmÿ
һ
WWrQFKRSKѭѫQJSKiSF
ӫa mình là computer
graphics...
Lӏ
ch sӱcӫ
D
ӗÿ
hӑ
a máy tính vào thұ
S QLrQ
ӧF ÿiQK
FzQ
ҩ
u bӣi dӵ
G
ÿѭ
án
6NHWFK3DGÿѭ
ӧc phát triӇ
n tҥ
i Hӑc viӋ
n Công nghӋMassachusetts (MIT) bӣi Ivan
Sutherland. Các thành tӵX WKX
ӧF ÿѭ
ÿm
ӧc báo
ÿѭ
cáo tҥ
i hӝi nghӏFall Joint
&RPSXWHUYjÿk\FNJQJFKtQKO
à sӵkiӋ
n lҫ
Qÿ
ҫ
XWLrQQJѭ
ӡi ta có thӇtҥ
o mӟi, hiӇ
n thӏ
YjWKD\ÿ
әLÿѭ
ӧc dӳliӋ
u hình ҧ
nh trӵc tiӃ
p trên màn hình máy tính trong thӡi gian
thӵc. HӋthӕ
QJ 6NHWFKSDG
ӧF GQJ
Ӈ
Qj\
thiӃ
t kӃ
ÿhӋ
ÿѭ
thӕng mҥ
FK
Ӌ
n ÿL
và bao
gӗm nhӳng thành phҫ
n sau:
x Màn hình CRT
x Bút sáng và mӝ
t bàn phím bao gӗm các phím chӭFQăQJ
x Máy tính chӭDFKѭѫQJWUuQK[
ӱlí các thơng tin
Vӟi hӋthӕ
QJQj\QJѭ
ӡi sӱdөng có thӇvӁtrӵc tiӃ
SFiFVѫÿ
ӗmҥ
FKÿL
Ӌ
n lên màn
KuQK WK{QJ TXD E~W
ӁphânViQJ
tích và tính tốn
FKѭѫQJ
các thơng sӕcҫ
WUuQK
n
thiӃ
t cӫ
a mҥ
FKÿL
Ӌ
QGRQJѭ
ӡi dùng vӁnên.
Kӻthuұ
Wÿ
ӗhӑ
Dÿѭ
ӧc liên tөc hoàn thiӋ
n vào thұ
p niên 1970 vӟi sӵxuҩ
t hiӋ
n cӫa
các chuҭ
Qÿ
ӗhӑDOjPWăQJFѭ
ӡng khҧQăQJJLDRWL
Ӄ
p và tái sӱdөng cӫa phҫ
n mӅ
m
FNJQJQKѭFiFWKѭYL
Ӌ
Qÿ
ӗhӑa.
7
Sӵphát triӇ
Qӧ
Yѭ
t bұ
c cӫa công nghӋYL
Ӌ
n ÿL
tӱvà phҫ
n cӭng máy tính vào thұ
p
niên 1980 làm xuҩ
t hiӋ
n hàng loҥ
t các vӍmҥ
ch hӛtrӧcho viӋ
c truy xuҩ
Wÿ
ӗhӑ
a ÿL
cùng vӟi sӵgiҧ
PJLiÿiQJN
ӇcӫD Pi\WtQK
ӗFiQKkQOjPÿ
hӑDQJj\FjQJ
vào cuӝ
c sӕng thӵc tӃ
.
Ĉӗhӑ
a máy tính có rҩ
t nhiӅ
u ӭng dөQJWURQJPi\WtQKYuѭ
ӟFWtQKÿ
Ӄ
n 80% thơng
tin xӱlí là hình ҧ
nh. Mӝt sӕӭng dө
ng tiêu biӇ
u cӫ
Dÿ
ӗhӑDPi\WtQKQKѭ
là:
x
x
x
x
Tҥ
o mơ hình, hoҥ
t cҧ
nh (game, giҧ
i trí,...)
HӛtrӧthiӃ
t kӃÿ
ӗhӑ
a
Mơ phӓ
ng hình ҧ
nh, chuҭ
QÿRiQKuQK
ҧ
nh (trong y tӃ
)
Huҩ
n luyӋ
QÿjRW
ҥ
oҧ
o (quân sӵ, hành không,...)
8
2. Sӵphát triӇ
n cӫDÿ
ӗhӑDGLÿ
ӝng
Ngày nay, vӟi sӵphát triӇ
n cӫ
a các thiӃ
t bӏGLÿ
ӝ
ng, sӭc mҥ
QKÿ
ӗhӑa cӫa các ӭng
dө
QJWUrQGLÿ
ӝng ngày mӝt phát triӇ
n.
Ngay tӯthӡL Nuÿ
ҫ
u tiên, khi mà các thiӃ
t bӏGLÿ
ӝng còn sӱdөng màn hình trҳ
ng
ÿHQWKuFiF
ӭng dө
QJÿ
ӗhӑ
DFKRÿL
Ӌ
n thoҥ
LFNJQJÿmE
ҳ
Wÿ
ҫ
Xÿѭ
ӧFÿ
ҫ
XWѭSKiWW
Ӈ
n,
tӯmө
FÿtFKEDQÿ
ҫ
u là tҥ
RUDFiFWUzFKѫLJL
ҧ
LWUtÿѫQJL
ҧ
QQKѭ6QDNHWUr
GLÿ
ӝ
ng cӫa Nokia.
Dҫ
n dҫ
n vӅsau, khi công nghӋWKD\ÿ
әi, chҩ
WOѭ
ӧQJPjQKuQKÿL
Ӌ
n thoҥ
i ngày mӝt
cҧ
i tiӃ
QOƭQKY
ӵFÿ
ӗhӑ
DGLÿ
ӝng lҥ
i trӛi dұ
y vӟi các ӭng dөng game có chҩ
WOѭ
ӧng
FDRKѫQErQF
ҥ
QKÿyÿ
ӗhӑDFNJQJJySSK
ҫ
QÿHPO
ҥ
i sӵbóng bҭ
y, hiӋ
Qÿ
ҥ
i cho các
sҧ
n phҭ
PGLÿ
ӝQJKѫQ
*DPHGLÿ
ӝng vào thӡi kì màn hình trҳ
QJÿHQ
QăP
Các game 2D J2ME vào thӡLNuQăP
9
9jRQăPJDPH'E
ҳ
tÿ
ҫ
u xuҩ
t hiӋ
n mһ
c dù chҩ
WOѭ
ӧng không cao
1ăPJDPHGLÿ
ӝng vү
QFKѭDFyV
ӵÿ
ӝt phá ngồi viӋ
Fÿ
ӝphân giҧ
i màn hình
ÿѭ
ӧFWăQJFDRKѫQJL~SKL
Ӈ
n thӏhình ҧ
nh chi tiӃ
WKѫQ
1ăPL3KRQHE
ҳ
Wÿ
ҫ
u xuҩ
t hiӋ
QNpRWKHRÿyOjV
ӭc mҥ
nh vӅÿӗhӑDÿѭ
ӧc nâng
cao, chҩ
WOѭ
ӧng màn hình cҧ
m ӭQJÿ
ӝ
WSKiÿHPO
ҥ
i sӵWKD\ÿ
ә
i rõ rӋ
t cho bӝmһ
t nӅ
n
JDPHGLÿ
ӝng.
10
Angry Birds, sҧ
n phҭ
Pÿ
ҫ
u tiên trên thӃgiӟi mӣmàn cho kӍnguyên mӟi trong kinh
doanh ӭng dөQJӝ
GL
ng. Rovio
ÿ ±hãng sҧ
n xuҩ
t Angry Birds là mӝt minh chӭng
cho viӋ
c mӝt công ty nhӓÿѭ
ӧc thành lұ
p chӍtӯÿ
Ӄ
QQJѭ
ӡi có thӇnhanh chóng
kiӃ
Pÿѭ
ӧc hàng triӋ
Xÿ{ODYjWU
ӣthành mӝt tұ
SÿRjQO
ӟn chӍsau mӝWÿrP0
ӣra
mӝt thӡLNuQJѭ
ӡLQJѭ
ӡi, nhà nhà ôm giҩ
FPѫWUL
Ӌ
u phú tӯkinh doanh ӭng dөng di
ÿ
ӝ
ng.
Sӭc mҥ
QK
ӗhӑ
ÿa cӫ
a các thiӃ
t bӏÿL
ӝ
QJ
G QJj\
ӧc FjQJ
cҧ
i thiӋ
Q
ÿѭ
Yj YjR
2011, Infinity Blade 2 là mӝt trong sӕrҩ
t nhiӅ
u game mang chҩ
WOѭ
ӧQJÿ
ӗhӑa cӫa
FiFJDPHWUrQPi\WtQKÿ
Ӄ
QÿL
Ӌ
n thoҥ
LGLÿ
ӝng.
11
3. Khái niӋ
PFѫE
ҧn vӅ3D
ĈӇbҳ
Wÿ
ҫ
u tìm hiӇ
u vӅlұ
p trình 3D trên máy tính lү
n trên thiӃ
t bӏÿLÿ
ӝ
ng, chúng ta
cҫ
n nҳ
m rõ các khái niӋ
Pÿ
ӗhӑDFѫE
ҧ
n trong lұ
SWUuQK'ÿk\Oj
ӳng kiӃ
n thӭc
nӅ
n tҧ
QJÿ
Ӈcó thӇtiӃ
SWKXÿѭ
ӧc nhӳng kiӃ
n thӭc chun mơn vӅsau.
3.1. HӋtӑ
Dÿ
ӝ3 chiӅ
u
Mӝt HӋtӑ
Dÿ
ӝDescartes [iFÿ
ӏ
nh vӏtrí cӫ
a mӝWÿL
Ӈ
m (point) trên mӝt mһ
t phҷ
ng
SODQH
FKRWUѭ
ӟc bҵ
ng mӝt cһ
p sӕtӑDÿ
ӝ[\
7URQJÿy[Y
ӏÿѭ
ӧc
[iF
ӏ
nh bӣ
ÿL
ӡng ÿѭ
thҷ
QJ Fy
ӟng vng
Kѭ góc vӟL QKDX FQJ
ӏÿR
ÿѫQ
ÿѭ
ӡng thҷ
QJÿyJ
ӑi là trөc tӑDÿ
ӝ(coordinate axis) (hoһ
FÿѫQJL
ҧ
n là trө
c); trөc
nҵ
m ngang gӑ
i là trөc hoành, trө
Fÿ
ӭng gӑi là trө
FWXQJÿL
Ӈ
m giao nhau cӫ
a2
ÿѭ
ӡng gӑi là gӕ
c tӑ
Dÿ
ӝ(origin) và nó có giá trӏlà (0, 0).
HӋtӑD
ӝÿ
Qj\ Oj
ӣng cӫ
ê
a nhà
Wѭ
toán hӑc và triӃ
t hӑF QJѭ
ӡi Pháp René
Descartes thӇhiӋ
QYjRQăPWURQJKDLEjLY
Ӄ
t cӫa ông. Trong phҫ
n hai cӫ
a
EjL3KѭѫQJSKiSOX
ұ
n (Descartes) (tiӃ
ng Pháp: Discours de la méthode, tӵa Pour
ELHQFRQGXLUHVDUDLVRQHWFKHUFKHU
ӟi thiӋ
u
êӣ
Wѭ
ng mӟi vӅviӋ
F [iF
ӏ
nh vӏtrí
ÿcӫa mӝW
Ӈ
m
ÿL
hay vұ
t thӇtrên mӝt bӅmһ
t
bҵ
ng cách dùng hai trөFJLDRQKDXÿ
ӇÿR&zQWURQJEjL/D*
triӇ
QVkXKѫQNKiLQL
Ӌ
m trên.
'HVFDUWHVOjQJѭ
ӡLÿmFyF{QJK
ӧp nhҩ
Wÿ
ҥ
i sӕvà hình hӑc Euclide. Cơng trình
này cӫ
a ơng có ҧ
QK
ӣQJ
KѭӃ
nÿ
sӵphát triӇ
n cӫ
a ngành hình hӑc giҧ
i tích, tích
phân, và khoa hӑ
c bҧ
Qÿ
ӗ
.
1JRjLӣ
UD
ng vӅhӋê
tӑD
Wѭ
ӝÿ
có thӇÿѭ
ӧc mӣrӝng ra không gian ba chiӅ
u
(three-dimensional space) bҵ
ng cách sӱdөng 3 tӑDÿ
ӝDescartes (nói cách khác
là thêm mӝ
t trө
c tӑ
Dÿ
ӝvào mӝ
t hӋtӑ
Dÿ
ӝDescartes). Mӝt cách tә
ng quát, mӝ
t hӋ
tӑD
ӝÿ
n-chiӅ
u có thӇÿ
ѭӧc xây dӵng bҵ
ng cách sӱdөng n tӑD
ӝÿ
Descartes
WѭѫQJÿѭѫQJY
ӟi n-trөc).
12
HӋtӑ
Dÿ
ӝtrên mһt phҷ
ng 2 chiӅ
u (2D)
Là 2 trөFYX{QJJyF[
2[Yj\
2\PjWUrQÿ
chӑQYHFWѫÿѫQY
ӏi, j sao cho
ÿӝdài cӫ
a 2 véc-WѫQj\E
ҵ
ng nhau.
HӋtӑ
Dÿ
ӝtrên không gian 3 chiӅ
u (3D)
Là 3 trө
c vng góc nhau tӯQJÿ{LP
ӝW[
2[\
2\]
2]Pj
ӑn 3
véc-WѫÿѫQY
ӏLMNVDRFKRÿ
ӝdài cӫa 3 véc-WѫQj\E
ҵ
ng nhau.
TronJÿ
ӗhӑDPi\WtQKYjGLÿ
ӝng, tӗn tҥ
i 2 loҥ
i hӋtӑDÿ
ӝkhông gian 3 chiӅ
u. HӋ
tӑDÿ
ӝtay phҧ
i và tay trái. HӋtӑDÿ
ӝtay phҧ
i (right handed coordinate system)
ÿѭ
ӧc sӱdөng trong OpenGL và hӋtӑDÿ
ӝtay trái (left handed coordinate system)
ÿѭ
ӧc sӱdө
ng trong DirectX.
13
HӋtӑ
Dÿ
ӝ3 chiӅ
u trong OpenGL
Trong OpenGL thì mӝWÿL
Ӈ
PWURQJNK{QJJLDQ'ÿѭ
ӧFÿ
һ
t trong mӝ
t vùng có
giӟi hҥ
n giá trӏtӑ
Dÿ
ӝtӯÿ
Ӄ
QQKѭWURQJKuQKErQGѭ
ӟi, gӑi là NDC (Normal
Device Coordination).
1'&ÿѭ
ӧc tәchӭc theo hӋtӑDÿ
ӝtay trái và có giӟi hҥ
n tӯÿL
Ӈ
m (-1, -1, -
ÿ
Ӄ
n
(1, 1, 1). Tâm O (0, 0, 0) nҵ
m ӣgiӳa NDC.
Tҩ
t cҧnhӳQJÿL
Ӈ
m nҵ
m ngồi phҥ
PYL1'&ÿ
Ӆ
XNK{QJÿѭ
ӧc hiӇ
n thӏhay xӱlý.
Ví dө:
Ĉk\OjP
ӝWKuQKWDPJLiFÿѭ
ӧFÿ
һ
t trong
NDC vӟi tӑ
Dÿ
ӝÿ
Ӎ
nh ABC lҫ
QOѭ
ӧt là:
A (1, -1, 0)
B (0, 1, 0)
C (-1, -1, 0)
Bҩ
t cӭmӝ
t khӕ
i hình nào, có thӇlà mӝt hình tam giác hoһ
c mӝWÿ
ӕLWѭ
ӧQJÿѭ
ӧc
cҩ
u thành tӯnhiӅ
XWDPJLiFNKiFQKDXÿ
Ӆ
u có mӝt gӕ
c xoay (pivot point).
Gӕ
c xoay OjÿL
Ӈ
PPjNKLÿ
ӕLWѭ
ӧQJ[RD\WKuQyOX{Qÿ
ӭng yên. Gӕ
c xoay cӫ
a hӋ
không gian 3 chiӅ
XOX{QOjÿL
Ӈ
m (0, 0, 0).
14
+uQKWDPJLiFPjXÿHQFyJ
ӕF[RD\ÿ
һ
t tҥ
i tâm cӫDKuQKWURQJNKL
JLiFPjXÿ
ӓcó gӕ
F[RD\Ojÿ
Ӎ
nh A.
3.2. 9HUWH[ÿ
Ӎ
nh)
7URQJÿ
ӗhӑ
a máy tính, mӝ
Wÿ
Ӎ
nh (vertex) là mӝWÿL
Ӈ
m trong không gian 3 chiӅ
u
OѭXJL
ӳFiFWK{QJWLQOLrQTXDQÿ
Ӄ
Qÿ
Ӎ
QKÿy
&iF WK{QJ
ӧF OѭX
WLQ
ӳ trongWU
ÿѭ
mӝ
t
vertex gӗm có:
x
x
x
x
TӑDÿ
ӝ(x, y, z)
Màu sҳ
c
Vӏtrí Texture
«
&iFÿ
Ӎ
nh là các biӃ
n sӕÿѭ
ӧc tҥ
o ra khi lұ
SWUuQKYjOѭXWU
ӳtrong RAM và trong
quá trình vӁ
, các giá trӏnày sӁÿѭ
ӧc truyӅ
n tӯ5$0ÿ
Ӄ
n GPU. Quá trình truyӅ
n
tҧ
i này tӕ
n tài ngun rҩ
t nhiӅ
u, vì thӃnên ln ln phҧ
i giӳNtFK
ӟc các
WKѭ
vertex là nhӓnhҩ
t có thӇ
.
3.3. Edge (cҥ
nh)
Mӝ
t cҥ
nh là mӝWÿR
ҥ
n thҷ
ng nӕi liӅ
n 2 vertex vӟi nhau.
15
3.4. 7ULDQJOH4XDG7DPJLiFYjFiFKu
Triangle
Triangle (tam giác) là mӝt mһ
t phҷ
QJÿѭ
ӧc giӟi hҥ
n
bӣi 3 cҥ
nh (edge) cҩ
u thành tӯÿ
Ӎ
nh (vertex).
Mӝt triangle là mӝt tam giác trong không gian 3
chiӅ
X9jOjKuQKFѫV
ӣcho bҩ
t cӭÿӕ
LWѭ
ӧng 3D nào
khác.
Polygon/Quad
MӝW KuQK ÿD JLiF
ӝ
t mһ
t phҷ
SRO\JRQ
QJ
ӧcÿѭ
Oj P
giӟi hҥ
n bӣi nhiӅ
u cҥ
nh (edge) tҥ
o ra tӯnhiӅ
X
Ӎ
nh
ÿ
(vertex).
Mӝt polygon có 4 cҥ
nh tҥ
o ra tӯÿ
Ӎ
QKWKuÿѭ
ӧc gӑ
i
là mӝt Quad. 1KѭQJ WK{QJ
ӡng, trong OpenGL
WKѭ
thì mӝW4XDGÿѭ
ӧc cҩ
u thành tӯ2 tam giác (triangle),
Fy QJKƭD
ҫ
n có 5 cҥ
Oj
QK
FӍ
nh) tҥ
oÿ
thành 2 tam
giác kӅQKDXÿ
Ӈtҥ
o ra 1 quad.
3.5. Normal Vector (Vector pháp tuyӃ
n)
Vector normal (vector pháp tuyӃ
n) cӫ
a mӝ
t mһ
t
phҷ
ng là vector vng góc vӟi bӅmһ
t cӫ
a mһ
t
phҷ
QJÿy
Trong OpenGL, vector pháp tuyӃ
Q WKѭ
ӡQJӧcÿѭ
GQJ
Ӈ[iF
ÿӏ
QK
ÿӟng
Kѭ
cӫa mӝt mһ
t phҷ
ng và
WtQKWRiQJyFÿ
ӝphҧ
n chiӃ
XiQKViQJWUR
thuұ
t chiӃ
u sáng (lighting).
Thӭtӵcӫ
DFiFÿ
Ӎ
nh trong mӝt tam giác quyӃ
Wÿ
ӏ
nh
Kѭ
ӟng cӫ
a vector normal cӫ
a mһ
t phҷ
QJÿy
ChӍnhӳng mһ
t phҷ
QJFyYHFWRUQRUPDOKѭ
ӟng vӅ
phía màn hình mӟLÿѭ
ӧc hiӇ
n thӏ
. Các mһ
t phҷ
ng
FyYHFWRUQRUPDOQJѭ
ӧFKѭ
ӟQJPjQKuQKÿ
Ӆ
u bӏҭ
n
ÿL
16