You are on page 1of 75

HC VIN CNG NGH BU CHNH VIN THNG

KHOA CNG NGH THNG TIN 1

N
TT NGHIP I HC
ti: Tm hiu ngn ng m hnh ha thc ti o
v xy dng chng trnh m phng

Ging vin hng dn


Sinh vin thc hin
Lp
Kho
H

:
:
:
:
:

THS. TRNH TH VN ANH


NGUYN VIT LINH
D07HTT2
2007-2012
I HC CHNH QUY

H Ni, thng 12 /2011

NHN XT CA GIO VIN HNG DN


...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Ngy thng

nm 2011

Gio vin hng dn

NHN XT CA GIO VIN PHN BIN


...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Ngy thng

nm 2011

Gio vin phn bin

N TT NGHIP

MC LC

MC LC
CHNG I : TNG QUAN V THC TI O.......................................................... 2
1.1.

Khi nim thc ti o ......................................................................................... 2

1.2.

Mt s ng dng quan trng ca thc ti o ..................................................... 2

1.1.1

Qun s ....................................................................................................... 2

1.1.2

Gio dc ...................................................................................................... 3

1.1.3

Y hc ........................................................................................................... 4

1.1.4

Xy dng ..................................................................................................... 4

CHNG II : TNG QUAN NGN NG M HNH THC TI O VRML ......... 5


2.1.

VRML l g ? ..................................................................................................... 5

2.2.

Lch s ra i v pht trin ca VRML ............................................................. 5

2.3.

Cc tnh nng c bn ca VRML ...................................................................... 7

2.3.1.

Scene Graph Structure C u tr c Scene Graph ......................................... 7

2.3.2.

Event rchitecture Kin tr c s kin ....................................................... 7

2.3.3.

Sensor Cm bin ...................................................................................... 7

2.3.4.

Scripts v Interpolators ............................................................................... 8

2.3.5.

Protyping : Encapsulation and Reuse ng g i v ti s dng ............... 8

2.3.6.

Distributed Scenes Ph n tn cnh ............................................................ 8

2.4.

ng dng VRML trong thi i hin nay X3D.............................................. 8

2.4.1.

VRML v web 3d ........................................................................................ 8

2.4.2.

X3D pht trin ca VRML ...................................................................... 9

CHNG III : TM HIU CHI TIT NGN NG M HNH THC TI O


VRML............................................................................................................................ 11
3.1.

Tp tin VRML ................................................................................................. 11

3.1.1.

Lm vic vi file VRML........................................................................... 11

3.1.2.

C u trc file VRML *.wrl ......................................................................... 11

3.1.3.

Trng ( field), eventIn, eventOut trong VRML ...................................... 12

3.1.4.

Cc kiu d liu trong VRML .................................................................. 12

3.1.3.1.

SFBool ................................................................................................... 13

N TT NGHIP

MC LC

3.1.3.2.

SFColor v MFColor : .......................................................................... 13

3.1.3.3.

SFFloat v MFFloat .............................................................................. 13

3.1.3.4.

SFInt32 v MFInt32 ............................................................................. 13

3.1.3.5.

SFString v MFString ........................................................................... 13

3.1.3.8.

SFTime v MFTime .............................................................................. 13

3.1.3.9.

SFVec2f v MFVec2f ........................................................................... 14

3.1.3.10. SFVec3f v MFVec3f ........................................................................... 14


3.1.3.11. SFNode v MFNode ............................................................................. 14
3.1.5.
3.2.

C u trc DEF/USE trong VRML .............................................................. 14

Cc i tng hnh hc c bn ........................................................................ 15

3.3.1.

Box Hnh hp ch nht .......................................................................... 15

3.3.2.

Sphere Hnh cu ..................................................................................... 16

3.3.3.

Cylinder Hnh tr ................................................................................... 16

3.3.4.

Cone Hnh nn ....................................................................................... 18

3.3.5.

Text ........................................................................................................... 19

3.3.

Cc php bin i trong VRML ...................................................................... 22

3.2.1.

Translation php dch ............................................................................. 23

3.2.2.

Scale php t l ...................................................................................... 23

3.2.3.

Rotation php quay ................................................................................ 23

3.4.

Mt s loi node thng dng trong VRML ................................................... 23

3.4.1.

Nhm 1 Nhm node xy dng th gii o ............................................. 24

3.4.1.1.

Shape .................................................................................................. 24

3.4.1.2.

Geometry ............................................................................................ 25

3.4.1.3.

Appearance ......................................................................................... 25

3.4.1.4.

Material .............................................................................................. 26

3.4.1.5.

Texture ............................................................................................... 27

3.4.1.6.

ImageTexture ..................................................................................... 27

3.4.1.7.

MovieTexture ..................................................................................... 28

3.4.1.8.

IndexedFaceset ................................................................................... 30

N TT NGHIP
3.4.1.9.

MC LC

BackGround ....................................................................................... 32

3.4.1.10. Viewpoint ........................................................................................... 33


3.4.1.11. PointLight ........................................................................................... 34
3.4.2.

Nhm 2 Nhm node m t tng tc th gii o vi th gii thc ....... 34

3.4.2.1.

CylinderSensor ................................................................................... 35

3.4.2.2.

SphereSensor ...................................................................................... 36

3.4.2.3.

TouchSensor ....................................................................................... 37

3.4.2.4.

TimeSensor......................................................................................... 39

3.4.3.

Nh m cc node c bit ............................................................................ 40

3.4.3.1.

Anchor ................................................................................................ 40

3.4.3.2.

Group .................................................................................................. 41

3.4.3.3.

Switch ................................................................................................. 42

3.4.3.4.

Transform ........................................................................................... 42

3.4.3.5.

Inline................................................................................................... 42

3.4.3.6.

BillBoard ............................................................................................ 43

CHNG IV : NG DNG VRML VIT CHNG TRNH M PHNG KHU


CH M NG XUN............................................................................................ 45
4.1.

Pht biu bi ton ............................................................................................. 45

4.2.

Yu cu bi ton .............................................................................................. 45

4.2.1.

Yu cu chnh............................................................................................ 45

4.2.2.

Kho st : .................................................................................................. 46

4.3.

4.2.2.1.

S ton cnh khu vc ch : ........................................................... 46

4.2.2.2.

Cng ch ............................................................................................ 46

4.2.2.3.

Khu vc sn kh u v mt tin ch ..................................................... 47

4.2.2.4.

Cc gian hng ..................................................................................... 48

Thit k khu ch .............................................................................................. 48

4.3.1.

Cng ch ................................................................................................... 49

4.3.2.

Dy nh hai bn ng ............................................................................. 51

4.3.3.

Gian hng .................................................................................................. 53

N TT NGHIP

MC LC

4.3.4.

Mt tin ch ng Xun ........................................................................... 56

4.3.5.

Sn kh u .................................................................................................... 57

4.4.

V n di chuyn v quan st trong khu ch ................................................... 59

4.4.1.

Di chuyn v quan st trong khu ch ........................................................ 59

4.4.2.

nh sng ................................................................................................... 60

4.5.

Hnh nh khu vc ch m phng ..................................................................... 61

4.4.1.

Ton cnh nhn t trn xung ................................................................... 61

4.4.2.

Li vo cng ch m ............................................................................... 61

4.4.3.

Mt tin ch ng Xun v sn kh u ....................................................... 62

4.4.4.

Dy hng nhn t sn kh u ........................................................................ 63

KT LUN ................................................................................................................... 64
TI LIU THAM KHO ............................................................................................. 65

N TT NGHIP

DANH MC THUT NG V T VIT TT

DANH MC CC THUT NG V T VIT TT

Thut ng,
t vit tt

Tn y

ngha, gii thch

VR

Virtual reality

Thc ti o

VRML

Virtual Reality Modeling


Language

Ngn ng m hnh ha thc ti


o

www

Word wide web

Mng li ton cu

HTML

Hypertext Markup Language

Ngn ng nh d u siu vn bn

API

Application Programming
Interface

Giao din lp trnh ng dng

Ct 2 dng i ch

N TT NGHIP

DANH MC HNH V

DANH MC HNH V
Hnh 1.1 Binh lnh hc nhy d bng thc ti o..3
Hnh 1.2 Lp hc o .4
Hnh 3.1 Gii thiu wrl ...12
Hnh 3.2 V d node Box ...15
Hnh 3.3 V d node Sphere ...16
Hnh 3.4 Hnh tr trong VRML ..17
Hnh 3.5 V d node Cylinder .17
Hnh 3.6 Hnh nn trong VRML 18
Hnh 3.7 V d node Cone ..19
Hnh 3.8 Trng maxExtent v length ...20
Hnh 3.9 Trng side v space ...21
Hnh 3.10 V d node Text ...22
Hnh 3.11 V d node Shape .25
Hnh 3.12 V d node Material .27
Hnh 3.13 V d node ImageTexture 28
Hnh 3.14 V d node MovieTexture 29
Hnh 3.15 Mt phng trong VRML ..31
Hnh 3.16 V d node IndexedFaceSet .31
Hnh 3.17 V d node BackGround ..33
Hnh 3.18 V d node ViewPoint .34
Hnh 3.19 V d node CylinderSensor .35
Hnh 3.20 V d node TouchSensor .37
Hnh 3.21 V d node TimeSense 39
Hnh 3.22 V d node Anchor ..40
Hnh 3.23 V d node Inline .42
Hnh 4.1 S ton cnh ...44
Hnh 4.2 Cng ch(nh chp) 45
Hnh 4.3 Sn kh u v mt tin ch( nh chp) ..45
Hnh 4.4 Gian hng( nh chp) ...46

N TT NGHIP

DANH MC HNH V

Hnh 4.5 Ct tr ...47


Hnh 4.6 Khung li 47
Hnh 4.7 Dng ch .48
Hnh 4.8 Cng ch .51
Hnh 4.9 To file wrl t 3Ds Max ..52
Hnh 4.10 Dy nh ...53
Hnh 4.11 Ct tr gian hng..54
Hnh 4.12 Gian hng 56
Hnh 4.13 Mt tin ch ng Xun..57
Hnh 4.14 Sn kh u ..59
Hnh 4.15 PointLight ...60
Hnh 4.16 Ton cnh m hnh...61
Hnh 4.17 Li vo cng ch..62
Hnh 4.18 Mt tin v sn kh u....62
Hnh 4.19 Dy hng nhn t sn kh u .....63

N TT NGHIP

LI M U

LI M U
ha my tnh lun l mt trong nhng lnh vc c quan tm nh t trong
ngnh cng ngh thng tin ni chung v khoa hc my tnh ni ring. Chng ta c th
bt gp nhiu ng dng ca ha my tnh trn nhiu lnh vc ca i sng nh :
khoa hc y t ( nghin cu, chun on t cc hnh nh m phng ) , qun s ( hu n
luyn trong mi trng o), xy dng kin trc ( to khng gian, m hnh o), gii tr
v.v
Trong nhng ng dng y, vic m phng li th gii thc bng cch xy dng
nhng m hnh o trn my tnh lun l mt v n ln m ha my tnh hng
ti gii quyt. T m cng ngh thc ti o ra i, vi kh nng m phng mt
cch sng ng hu ht nhng m hnh trong th gii thc, t n gin c th cho ti
phc tp tru tng. Ngn ng m hnh ha thc ti o (Virtual Reality Modeling
Language - VRML) c xy dng t nhu cu pht trin ca cng ngh thc ti
o m da trn , con ngi c th gii quyt bi ton m phng li th gii thc
trn my tnh.
Ni dung ca n c chia thnh 4 chng, c th nh sau :
Chng I : Tng quan v thc ti o : gii thiu chung v thc ti o v ng
dng ca thc ti o
Chng II : Tng quan ngn ng m hnh ha thc ti o VRML : gii
thiu chung v VRML, lch s pht trin, cc tnh nng c bn, ng dng
Chng III : Tm hiu chi tit ngn ng m hnh ha thc ti o VRML :
gii thiu v c u trc cc file VRML, cch xy dng v hot ng ca cc thnh phn
trong VRML.
Chng IV : ng dng VRML Vit chng trnh m phng khu ch m
ng Xun
Do kin thc hiu bit cng nh kinh nghim ca bn thn cn hn ch nn
n khng trnh khi nhng thiu st. Em r t mong nhn c s ng g p ca qu
thy c hon thin thm ni dung ca n.
Em xin chn thnh cm n c gio ThS. Trnh Vn Anh hng dn, cng cc
thy gio trong khoa Cng Ngh Thng Tin I, Hc Vin Cng Ngh Bu Chnh Vin
Thng tn tnh gi p em hon thnh n ny.
H Ni, ngy thng nm
Sinh vin thc hin

NGUYN VIT LINH

N TT NGHIP

TNG QUAN V THC TI O

CHNG I : TNG QUAN V THC TI O


1.1. Khi nim thc ti o (c ch ny c chun khng?)
Thc ti o ( Virtual reality VR ) l thut ng m t mt mi trng c to
m phng bng my tnh. Trong ha my tnh c s dng m bo yu t
real- nh tht ca mi trng ny .
C th m t yu t nh tht ny tc l cc thnh phn trong mi trng o
c th thay i theo cc tc ng ca ngi s dng qua cc hnh ng, li ni, ci
nhn thm ch l suy ngh chnh l c tnh chnh ca thc ti o : tng tc thi
gian thc (real-time interactivity). Thi gian thc y c ngha l my tnh c kh
nng nhn bit c tn hiu vo ca ngi s dng v thay i ngay lp tc cc thnh
phn trong th gii o. Ngi s dng nhn th y s vt thay i trn mn hnh m
phng ngay theo mun ca h v b thu ht bi s m phng ny. S thu ht ny
c to ra bi nhng thay i trong mi trng o tc ng ln cc c quan cm
gic ca con ngi thng qua mt s thit b hin th cng nh tng tc a dng nh :
th gic ( t cc hnh nh 3D ), thnh gic ( qua cc m thanh), xc gic ,v.v...
C th ni, VR- Thc T o l mt h thng giao din c p cao gia Ngi s
dng v My tnh. H thng ny m phng cc s vt v hin tng theo thi gian
thc v tng tc vi ngi s dng qua tng hp cc knh cm gic v d nh th
gic, thnh gic, x c gic,v.v

1.2. Mt s ng dng quan trng ca thc ti o


Ngy nay,ti nhiu nc pht trin, thc ti o v ang c ng dng trong
r t nhiu lnh vc : khoa hc k thut, kin tr c, qu n s, gii tr,... v p ng mi
nhu cu: nghin cu- gio dc- thng mi. Lnh vc ng dng mang li nhiu hiu
qu nh t ca thc ti o u tin phi k n l y hc. Bn cnh thc ti o cng
c ng dng trong gio dc, ngh thut, gii tr. Trong lnh vc qu n s, thc ti o
cng c ng dng r t nhiu cc nc pht trin. Bn cnh cc ng dng truyn
thng trn, cng c mt s ng dng mi ni ln trong thi gian gn y ca thc ti
o nh: thc ti o ng dng trong sn xu t, thc ti o ng dng trong ngnh rbt,
thc ti o ng dng trong hin th thng tin (thm d du m, hin th thng tin
khi,....) thc ti o c tim nng ng dng v cng ln. C th n i t m li mt iu:
Mi lnh vc "c tht " trong cuc sng u c th ng dng "thc t o" nghin
cu v pht trin hon thin hn.
1.1.1 Qun s
Vi vic pht trin ca thc ti o, cc binh s s c hu n luyn 1 cch trc
quan nh t cc k nng c n thit nh : li my bay, lai xe tng, . .. trc khi tham gia
NGUYN VIT LINH

N TT NGHIP

TNG QUAN V THC TI O

cng vic thc t. iu ny va bo m an ton cho binh s, va tit kim c chi


ph cho cc khoa hu n luyn thc t. Lu Nm G c tng u t 36 triu USD cho
vic mt game c bit nhm hu n luyn binh s trong qu n i M chng li khng
b di dng chin thut thc t o.Vi h thng tr chi c bit ny, nhng binh s
c th tp luyn nhng bi tp ca mnh ngay ti nh nhm chng li nhng tnh hung
c th pht sinh ra trong thc t. y s l mt game r t sng ng, c tnh hnh ng
cao vi mi trng v bi cnh bm st vi thc t. Nhng ngi lnh s phi vn
dng t t c nhng k nng c rn gia trong qu n i.

Hnh 1.1 Binh lnh hc nhy d bng thc t o


1.1.2 Gio dc
cc nc phng T y vic nh hc qua Internet khng cn l iu mi m
na. V cng ngh thc ti o s lm cho vic ny tr nn th v hn r t nhiu. Ging
nh mt game MMORPG (game nhp vai trc tuyn nhiu ngi chi) ,bn iu
khin 1 nh n vt i din cho bn i li trong 1 trng hc o c x y dng trn my
tnh. Bn c th tham gia vo b t c lp hc o no m bn thch, n i chuyn vi
nhng thnh vin khc trong lp.

NGUYN VIT LINH

N TT NGHIP

TNG QUAN V THC TI O

Hnh 1.2. Lp hc o
1.1.3 Y hc
y l lnh vc m thc ti o em li nhiu li ch thit thc v cn thit nh t
trong cuc sng. Thc ti o gii quyt c r t nhiu v n trong y hc: cung c p
mi trng thc hnh cho nghin cu v hc tp, r t hu ch trong vic m phng cc
ca phu thut trnh g y ri ro trong thc t. Nhiu phng php chun on v cha tr
trong y hc c ra i da trn cc nghin cu trong mi trng thc ti o.
1.1.4 Xy dng
Xic thit k v x y dng mt ngi nh ngy nay c h tr r t nhiu bi
cng ngh thc ti o. Kin tr c s khng ch hon thin cc bn v ca mnh trn gi y
theo tng ca khch hng na m c th x y dng hon ton mt khng gian ngi
nh, cng trnh m khch hng mong mun, thm vo l cc thao tc i li, quan st
: sng th trong khng gian o c tao ra vi s h tr ca cng ngh thc ti o.
Ngoi mt s lnh vc quan trng k trn, thc ti o trong thi i hin nay
cn c mt trong r t nhiu trong cc lnh vc khc trong cuc sng m trong phm vi
ti liu ny khng th k ht c. Nhng iu ny cho th y, thc ti o c ng dng
trong hu ht cc lnh vc ca cuc sng, t cho th y ngha , ng g p quan trng
m thc ti o em li cho con ngi : nu khng c thc ti o, nhiu v n kh
khn s r t kh gii quyt c, hoc c th nhng vi hiu qu th p v chi ph tn
km hn r t nhiu.

NGUYN VIT LINH

N TT NGHIP

TNG QUAN V NGN NG VRML

CHNG II : TNG QUAN NGN NG M HNH THC


TI O VRML

2.1. VRML l g ?
VRML (Virtual Reality Modeling Language) l ngn ng m hnh h a thc t
o, mt nh dng tp tin c s dng trong vic m t cc th gii v cc i tng
ha tng tc ba chiu. VRML c thit k dng trong mi trng Internet,
Intranet v cc h thng my khch cc b (local client). VRML cn c d tr tr
thnh mt chun trao i a nng cho ha ba chiu tch hp v truyn thng a
phng tin. VRML c th c s dng trong r t nhiu lnh vc ng dng chng hn
nh trc quan h a cc khi nim khoa hc v k thut, trnh din a phng tin, gii
tr v gio dc, h tr web v chia s cc th gii o.
V cn bn VRML ch n gin l mt nh dng trao i 3D. N nh ngha
c cc v n thng c s dng trong cc ng dng 3D, chng hn nh cc bin
i ph n c p (hierarchical tranformations), ngun nh sng (lght sources), im nhn
(view points), hnh hc (geometry), sng m (fog), thuc tnh ca ch t liu (material
properties) v cc bn kt c u (texture mapping).
Ngn ng VRML l ngn ng s dng m hnh ph n c p trong vic th hin
cc tng tc vi cc i tng ca m hnh, VRML c s dng pht trin nhng
hnh nh 3D v quang cnh trn Web. Cc file VRML c kch thc nh, thng khng
qu 1Mb.
Ngn ng m hnh h a thc ti o VRML l mt chun khng chnh thc
m t thc t o m khng ph thuc vo h iu hnh thng qua Internet. Ch vi mt
file text bn c th m t, tng tc, iu khin mt th gii o m khng b hn ch
nhiu.
VRML cho php truyn i trong mng nhng hnh nh 3D. Vi kch thc kh
nh so vi bng thng, phn ln gii hn trong khong 100 - 200Kb nn cc file
VRML c truyn i mt cch kh d dng. Nu HTML l nh dng vn bn th
VRML l nh dng i tng 3D. Hin nay VRML c li th l s n gin, h tr
dch v web3D.

2.2. Lch s ra i v pht trin ca VRML


Nm 1989, mt d n vi tn gi l Scenario c bt u c trin khai ti
cng ty Silicon Graphics (Hoa K ), do Rikk Carey v Paul Strauss thit k nhm x y
dng mt c s h tng cho cc ng dng ha 3D c kh nng tng tc vi ngi
NGUYN VIT LINH

N TT NGHIP

TNG QUAN V NGN NG VRML

s dng. Hai mc tiu ban u ca d n l x y dng mt mi trng pht trin mi,


gi p to ra mt lot cc tng tc, cc ng dng 3D ph n tn, v s dng chnh mi
trng ny x y dng nn mt loi giao din desktop 3D mi. Giai on u ca d
n tp trung vo thit k, x y dng ngn ng v c ch cho cc khung (frame work)
nn tng.
Nm 1992, sn phm u tin ca d n cng c Iris Inventor 3D c pht
hnh. Iris Inventor l mt b cng c C , n ch ra c nhiu ng ngha ca vn
dng trong VRML ngy nay. Kt qu quan trng ca b cng c ny l nh dng
c cc file c dng lu tr cc i tng ng dng. Ngay t ban u, cc nh
dng file Inventor c thit k c dung lng nh v d s dng.
Ti nm 1994, phin bn th hai ca Iris Inventor c pht hnh, v c gi
l Open Inventor bi kh nng tng thch trn r t nhiu nn tng khc nhau v v
n c da trn cng ngh OpenGL ca Silicon Graphics. Gavin Bell nghin cu
v son ra cc bn tho u tin gm cc ti liu tham kho, hng dn s dng, m t
cc i tng v nh dng file trong b cng c Open Inventor. T VRML 1.0 ra
i.
Trong nm 1994, Mark Pesce v Tony Parisi x y dng mt nguyn mu ban
u cho mt trnh duyt 3D vi World Wide Web (WWW) gi l Labyrinth. Cui nm
ny , Mark v Brian Behlendorf to danh mc mail VRML, www - vrml, v a ra
ngh v vic cng nhn mt chun chnh thc cho ha 3D trn WWW. Garin
Bell nhn th y s ph hp gia Open Inventor ca ng vi www vrml, nn
nhanh ch ng a ra tng pht trin cc yu t c bn ca nh dng file Inventor
kt hp vi cc tnh nng WWW cn thit. Tri qua mt cuc bu chn, pht minh
Inventor c chn xy dng cc ti liu c t k thut. Sau , Gavin, vi s
gi p ca Tony v Rikk cng mt lot cc k s ca Inventor, sa i v hon
thin bn d tho u tin cho chun VRML 1.0. Thng 10 nm 1994, ti hi ngh
Quc t th 2 v World Wide Web c t chc ti Chicago (Hoa K ), c t v
VRML 1.0 c ch p nhn.
Trong sut na u nm 1995, VRML 1.0 tri qua mt lot cc bn sa i,
ch thch, lm r tuy nhin chc nng th khng h thay i. Thng 8 nm 1995, c r t
nhiu tranh ci v vic to ra bn VRML mi mang tn VRML 1.1 hoc VRML 2.0.
Mt s nh nghin cu cho rng VRML ch cn pht trin thm mt vi tnh
nng,trong khi mt s khc li cho rng VRML cn phi c s tu sa hon ton.
Nhng t t c h u ng quan im chung l VRML 1.0 vn cn thiu tnh nng
chnh (nh hiu ng, tng tc, hnh vi), vy nn vic x y dng phin bn mi cho
VRML l iu cn thit. Cc cuc tho lun, tranh ci tip tc n ra t sut thng 9 ti
thng 12 m khng em li kt qu no r rng.
NGUYN VIT LINH

N TT NGHIP

TNG QUAN V NGN NG VRML

Thng 1 nm 1996, tng v mt phin bn VRML mi ca Silicon Graphics


kt hp vi tp on Sony v Mitra vi mt c t k thut v VRML 2.0 nhn
c nhiu s ng h trn ton th gii. Thng 8 nm 1996 ti SIGGR PH 96 New
Orleans, phin bn u tin ca VRML 2.0 c cng b.
Ti mt cuc hp vo thng 7 nm 1996 Tokyo, T chc ISO (Internaltional
Standards Organization s) ng cng b phin bn VRML 2.0. V ti thng 4
nm 1997, VRML 2.0 chnh thc c l mt chun 3D trn WWW.

2.3. Cc tnh nng c bn ca VRML


2.3.1. Scene Graph Structure C u tr c Scene Graph
VMRL m t cc i tng 3D v th gii o bng cch s dng mt th
cnh ph n c p. Cc i tng trong th Scene Graph c gi l cc node. VRML
2.0 nh ngha 54 loi node khc nhau, bao gm cc hnh khi c bn, cc thuc tnh
appearance, m thanh, v cc kiu khc nhau ca node Group. Node lu tr d liu
ca n trong cc trng (fields), VRML 2.0 nh ngha 20 loi trng khc nhau.
VRML scene graph l mt th phi chu trnh. Cc node c th cha cc node
khc (mt s loi node c th cha node con (children)) v c th c cha trong
nhiu node (mi node c th c nhiu hn mt node cha (parent)), nhng mt node
phi bao gm chnh n . C u tr c th scene graph ny c tc dng lm cho ngi lp
trnh d dng to ra mt th gii o bao gm r t nhiu i tng v c cc c u tr c
phc tp.
2.3.2. Event Architecture

in tr c s in

VRML 2.0 nh ngha c ch s kin thng qua cc node trong Scene Graph,
cc s kin c th giao tip c vi nhau. Mi loi node xc nh tn v loi ca cc
s kin m cc s kin c th to ra hoc nhn vo, v xc nh tuyn (ROUTE)
ng dn s kin gia cc i tng pht (hay nhn) s kin.
2.3.3. Sensor Cm bin
Cm bin (Sensor) l tng tc c bn gia ngi dng v i tng 3D. Node
TimeSensor to ra cc s kin (nh thi gian tri) v l c s cho t t c cc hnh vi
hot nh. Nhng cm bin khc u l c s cho t t c cc tng tc gia ngi dng
vi th gii, cc cm bin to ra cc s kin vi t cch ngi xem, c kh nng di
chuyn thng qua th gii, hay khi ngi dng tng tc vi mt s thit b u vo do
ngi lp trnh nh s n. Cm bin ch to ra cc s kin, n cn phi kt hp vi cc
node khc thng qua node ROUTE c hiu lc l c ny s kin tng tc cm bin
mi c tc dng.
NGUYN VIT LINH

N TT NGHIP

TNG QUAN V NGN NG VRML

2.3.4. Scripts v Interpo ators


Cc node kch bn (Scripts) c th c chn vo gia cc my pht s kin
(i tng c t to ra s kin) ( y thng gn vi cm bin l cc n t) v
my thu s kin. Scipts cho php ngi sng to ra th gii nh ngha c cc hnh
vi s kin b t k . VRML 2.0 quy nh cc rng buc node Script vi ngn ng java
hoc javaScript.
Node Interpolators (ngi xen vo) c x y dng trong Script tnh ton to
ra cc hnh nh ng n gin. Interpolators thng c kt hp vi mt TimeSensor
v mt s node trong Scene Graph lm cho cc i tng di chuyn.
2.3.5. Protyping : Encapsulation and Reuse ng g i v ti s dng
VRML 2.0 cung c p mt c ch to mu cho ng g i v ti s dng mt Scene
Graph (the PROTO statement). Cc hnh c bn, thuc tnh v hnh nh ng
( nimation) u c th c ng g i, ng g i ring r hoc ng g i cng nhau.
Protyping cho php nh ngha mt loi node mi kt hp cc node hin ti, n lm
cho VRML d dng s dng v c th lm gim kch thc file VRML
2.3.6. Distributed Scenes Phn tn cnh
VRML 2.0 s dng node Inline cho php file VRML c th c lu tr b t c
ni no trn mng v the EXTERNPROTO statement cho php nh ngha node mi
c l y t b t c u trn WWW. N i chung EXTERNPROTO cho php cc node
c nh ngha bn ngoi file VRML v n l c ch c bn m rng cho VRML.

2.4. ng dng VRML trong thi i hin nay X3D


2.4.1. VRML v web 3d
File VRML c th tham chiu ti cc file nhiu nh dng khc nhau phc
v cho vic o h a cc yu t thc, v d nh : JPEG, PNG, GIF cho cc yu t hnh
nh, W V v MIDI cho cc yu t m thanh trong th gii , hay file MPEG cho yu t
hnh ng ( video). Ngoi ra, mt file VRML c th cha code Java hoc JavaScript,
cc on code Java hay JavaScript ny c s dng lp trnh cho cc i tng
trong VRML.
T cc u im vn c ca mnh cng vi s pht trin ca nn tng mng
internet , VRML c th c s dng phc v cho vic xy dng web 3 chiu
web 3D. K t khi ra i cho n nay, VRML c s dng xy dng , pht
trin cc hnh nh 3 chiu , xy dng mt th gii o c kh nng tng tc vi ngi
dng. VRML ph hp vi hu ht cc kt c u h tng hin c ca Internet v word
NGUYN VIT LINH

N TT NGHIP

TNG QUAN V NGN NG VRML

wide web. VRML c kt hp vi HTML v Java to ra nhng tri nghim trn


website mi v th v cho ngi s dng.
C r t nhiu cch kt hp VRML, HTML v Java vi nhau :

: S dng chun bn HTML, bng


cch dng EMBED hay OBJECT HTML tag.
: y l mt chun khng bt buc ca VRML 2.0 . S dng n t Script son tho
on m Java

S dng mt file HTML nh mt


texture map hin th n bn trong th gii 3D - VRML

Tng t, s dng java applet


nh mt texture map
2.4.2. X3D pht trin ca VRML
Mc d c s dng xy dng nhiu m hnh 3D em li nhiu tin
ch, tri nghim c gi tr cho ngi dng. Tuy nhin, ti thi im n ra i, c s h
tng my tnh v mng internet cha p ng c nhu cu cho vic a cc ng
dng 3D ln mi trng web mt cch hon thin. M theo Toni Parisi- mt trong
nhng nh ng sng lp nn VRML th : mi th u cha chn mui: ng truyn
khng ln, my tnh khng nhanh, trnh duyt Web v h iu hnh cha c
tnh nng xy dng 3D.
Sau , trong nhng nm cui th k 20 u th k 21 vi s pht trin mnh
m ca my tnh cng nh nn tng web, kh nng hin th v truyn ti 3D tr nn
mnh m hn trc r t nhiu. VRML khi c th p ng c nhu cu ca mt
nn tng xy dng web 3D.
Tuy nhin, VRML mi nhng nhc im cn tn ti li cha thc s ph hp
vi nn tng mnh m hin ti, do , mt chun ha da trn nn tng VRML
ra i . l X3D .
L mt pht trin ca VRML, X3D khc phc c cc nhc im nh
kch thc cng knh, c u trc phc tp ca VRML, n cung c p mt c s hon thin
hn VRML, cho php cc nh pht trin c th m rng m khng lm vn c u trc
ca bn v k thut li thng mc phi trong VRML.
c bit, X3D l mt nn tng ph hp pht trin cc ng dng web 3d bi
kh nng tng thch cao vi XML hoc cc giao din lp trnh ng dng nng cao
API. V d v mt on m X3D :

NGUYN VIT LINH

N TT NGHIP

TNG QUAN V NGN NG VRML

<?xml version = "1.0" encoding = "UTF-8"?>


<DOCTYPE X3D CNG "ISO / / Web3D / / DTD X3D 3,2 / / EN" "http://www.web3d.org/specifications/x3d3.2.dtd">
http://www.web3d.org/specifications/x3d-3.2.xsd ">
<Scene>
<Shape>
<IndexedFaceSet CoordIndex = "0 1 2">
<Coordinate point = "0 0 0 1 0 0 0,5 1 0" />
</ IndexedFaceSet>
</ Shape>
</ Scene>
</ X3D>

Ngoi ra, X3D cn mang mt s u im ni tri so vi nn tng ca n l


VRML nh : tng kh nng tng tc gia cc i tng ha , to ra kh nng kt
ni ng dng 3d vi c s d liu cng nh cc ngun thng tin bn ngoi , v.v

NGUYN VIT LINH

10

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

CHNG III : TM HIU CHI TIT NGN NG M HNH


THC TI O VRML

3.1. Tp tin VRML


3.1.1. Lm vic vi file VRML
Chng ta c th to mt file VRML n gin bng cch dng mt trnh son
tho vn bn nh Notepad hay WordPad, ri sau lu file vi phn m rng wrl. Bn
cnh , gip cho vic son tho code VRML hiu qu hn , cn c mt s cng c
khc nh VrmlPad y l cng c s c s dng to cc file VRML trong cc
phn
sau
ca
ti
liu.(
Download
cng
c
VrmlPad
ti
http://www.parallelgraphics.com/products/vrmlpad/download/ )
Vic dch v chy mt file *.wrl li yu cu mt b Player tr gip cho hin th
cc i tng v hiu ng trong VRML . Trong nhiu b Player h tr VRML hin
nay, em chn s dng b Cortona 3D Viewer c cung c p min ph ti a ch
http://www.cortona3d.com/Products/Cortona-3D-Viewer.aspx
Sau khi ci t b player trn, chng ta c th m file .wrl vi y cc i
tng v hiu ng VRML cng cc trnh duyt web nh IE, FireFox,Chrome hoc
build thng qua b debug trong VrmlPad .
3.1.2. C u trc file VRML *.wrl
1 file VRML (*.wrl) c 3 thnh phn c bn :
Tiu (header) : dng nhn dng tp tin VRML v cch m h a. Header
ca file VRML bt u bng d u #. Ngoi ln xu t hin u tin ra th d u # nh d u
nhng g theo sau n l phn ch thch. File tiu ca VRML c dng: #VRML V1.0
ascii dnh ring cho phin bn VRML 1.0 v #VRML V2.0 utf-8 dnh cho phin bn
2.0.
Phn ch thch (comment) : bt u bng d u # v c chng trnh b
qua khi dch v chy
Cc node : hay cn gi l cc th , l thnh phn chnh ca mt file VRML,
bao gm cc phn tng qut sau:
o Loi node ( bt buc ) . Tn node phi vit hoa
o Cc cp d u ng m ngoc {} ( bt buc phi c)
o Cc trng (field) : c th c nhiu trng trong mt node, cc node ny
l ty chn, khng bt buc. Th t cc trng trong node khng bt buc

NGUYN VIT LINH

11

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

o Cc trng gm nhiu gi tr th phi nm trong cc cp [] , tn cc


trng lun bt u bng ch thng

Hnh 3.1 Gii thiu file wrl


3.1.3. Trng ( field), eventIn, eventOut trong VRML
Field : Trong mt file VRML, cc trng c t trong cc node v chng xc
nh trng thi ca cc i tng trong th gii o. Trng thi ca cc i tng s
khng xc nh nu nh mt trng trong cng mt node cha nhiu gi tr khc nhau
. V d nh khai bo Box { size 1 1 1 size 2 2 2} l khng hp l.
EventIn, eventOut : Cc node trong VRML cng c th tng tc vi nhau
qua quy nh c trng thi ca i tng m chng xy dng thng qua cc s
kin c quy nh theo eventIn v eventOut : eventIn v eventOut nh ngha cc loi
v tn ca cc s kin m mi loi node c th nhn bit hoc to ra. Cc s kin ny
c tnh ch t tm thi v gi tr ca n khng c ghi trong file VRML.
Quy tc t tn trng, eventIn, eventOut
T t c cc trn c cha nhiu t phi bt u bng ch thng , v k t u
tin ca mi t sau phi vit hoa . V d : addChildren.
Tn ca cc eventIn s cha tin t set_ tr hai loi eventIn l
addChildren v removeChildren.
Tn ca cc eventOut s cha hu t _changed tr ngoi l eventOut ca
kiu SFBool l bt u vng tin t is
Ngoi ra c mt s eventIn v eventOut vi kiu SFTime khng s dng
tin t hoc hu t.
3.1.4. Cc kiu d liu trong VRML
Vic xy dng mt i tng trong VRML c thc hin thng qua cc node
v thuc tnh ca i tng c quy nh thng qua gi tr ca cc trng trong node.
Cc trng trong VRML li c nhiu kiu d liu khc nhau :
NGUYN VIT LINH

12

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

3.1.3.1. SFBool
L gi tr boolean n l, nhn gi tr TRUE hoc FALSE.
3.1.3.2. SFColor v MFColor :
SFColor l mt trng cha mu n l, c to nn t ba s thc d u ch m
ng gi tr trong khong t 0 n 1, tng ng vi cc gi tr mu Red, Green, Blue.
V d 1 0 0 l mu , 0 1 0 l mu xanh lc.
MFColor l mt trng cha nhiu gi tr. V d [1 0 0 , 0 1 0 , 0 0 1]
3.1.3.3. SFFloat v MFFloat
SFFloat l gi tr d u ch m ng n l, v d : 1.1.
MFFloat l mt s cc gi tr d u ch m ng, v d [1.0, 2.0, 4.5].
3.1.3.4. SFInt32 v MFInt32
Cc s nguyn n l hoc chui 32bit c th theo dng thp phn hoc hexa.
Cc s hexa bt u vi 32 bit, v d 0xFF l 255 h thp phn.
3.1.3.5. SFString v MFString
Cha danh sch cc k t trong tp k t utf-8.
Chui SFString nh n tt nghi p, l mt chui k t trong d u nhy
kp.
Chui danh sch MFString v d nh : [ n, Khoa ].
3.1.3.6. SFRotation v MFRotation
SFRotation l mt b 4 gi tr nh ngha php quay ty , 3 gi tr u quy
nh gi tr quay theo cc trc, cn gi tr cui cng quy nh gc quay tnh bng
radian theo nguyn tc quay bn tay phi
MFRotation quy nh mt danh sch cc php quay ty .
3.1.3.7. SFImage
Xc nh mt im nh pixel khng nn 2 chiu
Gi tr pixel c gii hn n 256 mc cng . V d 0-255 trong h thp
phn hoc 0x00-0xFF trong h 16
3.1.3.8. SFTime v MFTime
Thi gian n l hoc mt danh sch thi gian

NGUYN VIT LINH

13

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

3.1.3.9. SFVec2f v MFVec2f


Cc vector n l hoc danh sch cc vector 2D. Mt vector 2D l mt cp cc
s thc d u ch m ng.
3.1.3.10. SFVec3f v MFVec3f
Cc vector hoc danh sch cc vector 3D. Mt vector 3D l mt b 3 cc s
thc d u ch m ng.
3.1.3.11. SFNode v MFNode
SFNode l mt node n l. MFNode l danh sch cc node. V d : Trng
children vi nhiu node l kiu MFNode.
3.1.5. C u trc DEF/USE trong VRML
Khi lm vic vi cc node trong VRML, chng ta c th s dng c u trc
DEF/USE nh ngha mt node vi tn ring v s dng li chng khi cn.
C php :

DEF nodeName

nodeType

{fields}

USE nodeName
Trong :
nodeName l tn node do ngi s dng t ( tn ny l duy nh t khng
trng nhau ).
nodeType l kiu node.
V d :
Shape {
appearance Appearance {
material DEF RedColor Material {
diffuseColor 1 0 0

}
geometry. . .
}
Shape {
appearance Appearance {
material USE RedColor
}
geometry. . .
}

NGUYN VIT LINH

14

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Vic s dng c u trc ny cho php s dng li cc node phc tp m khng


cn khai bo li, to ra s trong sng, rnh mch v ngn gn cho chng trnh.
Ch : c u trc USE khng to ra bn sao ca node, m a chnh node
dng li trong chng trnh.

3.2. Cc i tng hnh hc c bn


Th gii o xy dng t cc file VRMl c to nn t cc i tng hnh hc
c bn bao gm : hnh hp, hnh cu, hnh tr, hnh n n v vn bn. Cc i tng ny
c to ra trong node Shape vi hai trng appearance v geometry trong c
th, geometry l trng ch ra i tng c v ( chng ta s tm hiu r hn v node
Spahe trong phn sau ca ti liu).
3.3.1. Box Hnh hp ch nht
Box {
field

SFVec3f

size

2 2 2

# (0,

Hnh hp ch nht to ra t node Box c t m ti ta ( 0,0,0) v c kch


thc c quy nh qua trng size x y z vi x,y,z ln lt l kch thc hnh hp
theo cc trc Ox, Oy, Oz trong h trc ta cc.
Nu mc nh size ca hnh hp( khng khai bo gi tr ca trng), th hnh
hp c kch thc mc nh t -1 n +1.
V d :

Hnh 3.2. V d node Box


NGUYN VIT LINH

15

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

3.3.2. Sphere Hnh cu


Sphere {
field

SFFloat

radius

# (0,

Hnh cu c to ra t node Sphere c tm ti ta (0,0,0) v c bn knh


c quy nh qua trng radius.
Gi tr trng radius phi ln hn 0.0.
V d :

Hnh 3.3 V d node Shpere


3.3.3. Cylinder Hnh tr
Cylinder {
field

SFBool

bottom

TRUE

field

SFFloat

height

# (0,

field

SFFloat

radius

# (0,

field

SFBool

side

TRUE

field

SFBool

top

TRUE

NGUYN VIT LINH

16

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Hnh tr c to ra t node Cylinder c tm ti ta (0,0,0) , c bn knh quy


nh qua trng radius v c chiu cao quy nh qua trng height.

Hnh 3.4. Hnh tr trong VRML


Ba trng cn li trong node quy nh s tn ti( nu mang gi tr TRUE) hoc
khng tn ti ( khi mang gi tr F LSE ): tng ng l mt y trn top, mt y
di bottom ,v mt bn side.
Cc mt khng tn ti s khng c xt ti nu ton khi tr tham gia vo cc
s kin (v d nh pht hin ra va chm hoc kch hot cm bin).
V d :

Hnh 3.5 V d node Cylinder


NGUYN VIT LINH

17

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

3.3.4. Cone Hnh nn


Cone {
field

SFFloat

bottomRadius 1

# (0,

field

SFFloat

height

# (0,

field

SFBool

side

TRUE

field

SFBool

bottom

TRUE

Hnh n n c to ra t node Cone c tm ti (0,0,0) , c bn knh mt y quy


nh qua trng bottomRadius v c chiu cao quy nh qua trng height.

Hnh 3.6 Hnh nn trong VRML


Hai trng cn li trong node quy nh s tn ti( nu mang gi tr TRUE) hoc
khng tn ti ( khi mang gi tr F LSE ): mt y bottom ,v mt bn side.
Cc mt khng tn ti s khng c xt ti nu ton khi n n tham gia vo cc
s kin (v d nh pht hin ra va chm hoc kch hot cm bin).
V d :

NGUYN VIT LINH

18

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Hnh 3.7 V d node Cone


3.3.5. Text
Text {
exposedField

MFString string

[]

exposedField

SFNode

exposedField

MFFloat length

exposedField

SFFloat maxExtent 0.0

fontStyle NULL
[]

# [0,

# [0,

NGUYN VIT LINH

19

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Chui vn bn c to t node Text s c quy nh trong trng string,


chui ny c m h a theo chun m h a utf-8.
Trng length l mt gi tr kiu Float xc nh di mi chui vn bn. Nu
chui qu ngn, n ko di (bng cch thm khong trng vo gia cc k t). Nu
chui qu di, n c nn bng cch tr i khong khng gian gia cc k t. Nu
mt gi tr chiu di b m t (v d : nu c 4 chui nhng ch c 3 gi tr chiu di), gi
tr b m t c coi l 0. Trng length nhn cc gi tr >= 0.0.
Trng maxExtent gii hn v nn t t c cc chui vn bn nu chiu di ca
chui ti a di hn so vi mc ti a c xc nh. Mc ti a c o theo
chiu ngang cho vn bn ngang, v theo chiu dc cho vn bn dc. Trng
maxExtent nhn gi tr >= 0.0.

Hnh 3.8. Trng maxExtent v length


Trng fontStyle
c bit ,trng fontStyle c kiu SFNode tc l n s cha thm cc trng
khc quy nh font, kiu ch ca chui vn bn gm c : kch thc, kiu ch, font
ch,v.v C th nh sau:
FontStyle {
field MFString

family

["SERIF"]

field SFBool

horizontal

TRUE

field MFString

justify

"BEGIN"

field SFString

language

""

field SFBool

leftToRight

TRUE

NGUYN VIT LINH

20

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

field SFFloat

size

1.0

# (0,

field SFFloat

spacing

1.0

# [0,

field SFString

style

"PLAIN"

field SFBool

topToBottom

TRUE

Trng family c th mang cc gi tr SERIF, S NS, TYPEWRITER quy nh


nh m cc font ch c trnh duyt h tr . SERIF l nh m mc nh , l nh m kiu
Times Roman, S NS l nh m c kiu i din l Helvetica, cn TYPEWITER c kiu
i din l Courier.
Trng size quy nh kch thc ca ch.
Trng spacing quy nh khong cc dng gia cc dng lin k.

Hnh 3.9 Trng side v trng space


Trng style nhn gi tr kiu String : PL IN (mc nh) i vi loi ch
mc nh n gin, BOLD cho loi ch in m, IT LIC cho loi nghing, hoc
BOLDIT LIC cho loi c in m v nghing. Nu style l NULL th kiu ch c
quy nh dng mc nh PL IN.
Trng horizontal, leftToRight v topToBottom ch ra hng ca vn bn.
Trng horizontal xc nh phng ca vn bn theo chiu ngang (TRUE) hoc dc
(F LSE). Trng leftToRight v topToBottom cho th y hng tin ca vn bn
tng ng l t tri qua hoc t phi sang.
Trng language quy nh bi cnh s dng ngn ng ca chui vn bn. N
c th mang cc gi tr l cc t kha ngn ng tiu chun v d nh jp l Nht Bn,
cn l Trung Quc. Nu gi tr ca n l NULL, th n s c gn cho ngn ng m
khu vc ang s dng ( ngn ng ca my tnh son tho file VRML).
V d:

NGUYN VIT LINH

21

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Hnh 3.10 V d node Text

3.3. Cc php bin i trong VRML


Mc nh mi i tng c x y dng trong VRML u c t ta
gc. Bin i l to ra mt h thng h trc ta mi m h truc ny c v tr tng
i so vi h ta mc nh. C cc php bin i nh: di chuyn, quay, t l(co
gin).
Cc php bin i trong VRML c thc hin trn cc i tng thng qua
node Transform:
Transform {
eventIn

MFNode

addChildren

eventIn

MFNode

removeChildren

exposedField SFVec3f

center

0 0 0

exposedField MFNode

children

[]

exposedField SFRotation

rotation 0 0 1 0#[-1,1],(-

NGUYN VIT LINH

# (-

22

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

exposedField SFVec3f

scale

exposedField SFRotation

scaleOrientation 0 0 1 0

# [- 1,1],(-

1 1 1

# (0,

exposedField SFVec3f

translation

0 0 0

# (-

field

SFVec3f

bboxCenter

0 0 0

# (-

field

SFVec3f

bboxSize

-1 -1 -1# (0,

)# or -1,-1,-1

Trong trng children c kiu MFNode s cha cc nh m node l cc nh m


i tng ca php bin i vi center quy nh t m quy chiu h ta ca php
bin i. Cc php bin i s c thc hin trn cc i tng nm trong trng
node children.
Ch ng ta ch quan t m ti 3 trng translation, scale, rotation l cc trng
th hin cho 3 php bin i c bn sau y:
3.2.1. Translation php dch
L php bin i ta xc nh ca vt th trong h ta .

Cu trc: translation x y z
Trong x y z l ta mong mun di chuyn vt th ti.
3.2.2. Scale php t l
L php bin i kch thc ca vt th theo mun.

Cu trc: scale x y z
Trong x y z l t l mong mun thay i cc chiu tng ng ca vt th:
Ox, Oy, Oz.
3.2.3. Rotation php quay
L php quay mt vt th quanh mt trc .

Cu trc: rotate x y z t
Trong x y z l cc gi tr cc nh trc quay v t l gc quay tnh bng
radian.
c bit : node Transform cn cha mt trng scaleRotation cng l mt
php bin i : n m t mt php quay ca i tng trc khi thc hin php t l.
N ch c s dng khi thc hin php t l.

3.4. Mt s loi node thng dng trong VRML


Vic xy dng nn th gii o bng VRML u c thng qua thao tc vi cc
node. VRML 2.0 gm khong hn 60 loi node khc nhau r t a dng v phc tp.
NGUYN VIT LINH

23

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Vic phn loi cc node cng c th da trn nhiu c s khc nhau v d nh da trn
c u trc, da trn chc nng ,v.v
Trong phm vi ti liu ny, chng ta s xem xt phn loi cc node theo chc
nng , nhim v ca chng. C th chia thnh 2 nhm chnh sau:

Nhm 1 : bao gm cc node c chc nng x y dng hoc h tr dng


nn cc i tng hnh nh v khng gian.

Nhm 2 : bao gm cc node c chc nng to ra tng tc gia th gii


o v th gii bn ngoi.
Ngoi ra cn mt s node c chc nng c bit l nh m cc i tng n l
thnh cc i tng phc tp hn, l cc node nh m.
Vi c phn chia cc nhm node khc nhau ny ch c tnh ch i : mt
s loi node c th c nhiu chc nng khc nhau thuc cc nhm khc nhau .
3.4.1. Nhm 1 Nhm node xy dng th gii o
Th gii o trc ht phi c xy dng nn t nhng i tng hnh hc c
bn nh t cng vi cc thuc tnh ca ch ng nh mu sc, b mt, nh sng, v.vTp
hp cc i tng s c lin kt vi nhau v to nn mt th gii hon chnh.
Cc loi node sau s c chc nng ch yu xy dng nn cc i tng v quy nh
r cc thuc tnh c trng ca chng.
3.4.1.1. Shape
Shape {
exposedField SFNode
exposedField SFNode

appearance NULL
geometry

NULL

Cc i tng c to ra t node Shape u c hin th vi cc c tnh


c quy nh theo 2 trng : geometry v appearance , chng c s dng to
cc i tng v cho i tng xu t hin.
Trng appearance c cha mt node Appearance quy nh c th cc thuc
tnh hnh nh (v d : material v texture) c p dng cho i tng Shape.
Trng geometry c cha mt node Geometry. Nt ny to ra cc i tng s
xu t hin.
Nu trng geometry nhn gi tr NULL, th i tng khng xu t hin.
V d:

NGUYN VIT LINH

24

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Hnh 3.11 V d node Shape


3.4.1.2. Geometry
Nh n i phn 3.2, node Geometry s bao gm cc node Box, Cone,
Cylinder, Sphere, Text tng ng vi cc i tng c to ra trong node Shape
l : hnh hp, hnh nn, hnh tr, hnh cu, v vn bn.
Ngoi ra node Geometry cn cha node IndexedLineSet v IndexedFaceSet
to nn tng ng l ng thng v mt phng trong khng gian.
3.4.1.3. Appearance
Appearance {
exposedField SFNode

material

NULL

exposedField SFNode

texture

NULL

exposedField SFNode

textureTransform

NULL

Cc trng trong node Appearance s quy nh c th cch xu t hin ca cc


i tng c to t node Geometry tc l ch ra cc c tnh trc quan ca i
tng bao gm : Material (vt liu) v cc node kt c u (texture). Gi tr ca mi
trng trong node ny c th nhn gi tr l NULL. Nu trng ny khng phi l
NULL th phi c mt node ca loi thch hp xc nh.
NGUYN VIT LINH

25

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Trng material quy nh c tnh vt liu b mt ca i tng, nu xc


nh th phi c mt node Material. Nu trng material l NULL hoc khng xc
nh th nh sng v mu sch ca i tng c mc nh l mu (1,1,1) (tng ng
trong h mu RGB).
Trng texture quy nh c tnh b mt m rng ca i tng, nu xc
nh th phi c mt trong cc loi khc nhau ca node texture (ImageTexture,
MovieTexture, hoc PixelTexture). Nu trng texture NULL hoc khng xc nh
th Node Apperance ny khng xu t hin texture.
Trng textureTransform nu xc nh th phi c mt node
TextureTransform. Trng ny m t nhng php bin i c bit cho cc i
tng Texture k trn .Nu l NULL hoc khng xc nh th trng
textureTransform khng c tc dng.
3.4.1.4. Material
Material {
exposedField SFFloat

ambientIntensity

0.2

# [0,1]

exposedField SFColor

diffuseColor

exposedField SFColor

emissiveColor

0 0 0

# [0,1]

exposedField SFFloat

shininess

0.2

# [0,1]

exposedField SFColor

specularColor

0 0 0

# [0,1]

exposedField SFFloat

transparency

# [0,1]

0.8 0.8 0.8 # [0,1]

Node Material quy nh c tnh vt liu b mt cho cc i tng hnh hc


lin quan. c tnh ny bao gm cc thng s v mu sc v nh sng.
diffuseColor : Mu sc thng thng ca i tng.
specularColor v shininess : xc nh mu sc phn chiu ni bt ca cc i
tng ( v d im sng b ng trn qu to c chiu sng).
emissiveColor : mu sc ca nh sng pht ra t i tng.
transparency : xc nh mc trong sut ca i tng. thay i trong
khong t 0.0 1.0, 1.0 r nh t, 0.0 hon ton m c.
ambientIntensity : xc nh hm lng nh sng m i tng phn chiu.
V d :

NGUYN VIT LINH

26

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Hnh 3.12 V d node Material


3.4.1.5. Texture
Node Texture quy nh c tnh b mt m rng ca i tng nu xc nh
th phi c mt trong cc loi khc nhau ca node texture (ImageTexture,
MovieTexture, hoc PixelTexture). Nu trng texture NULL hoc khng xc nh
th Node Apperance ny khng xu t hin texture.
Khi a cc node nh ImageTexture, MovieTexture, PixelTexture vo s
dng quy nh b mt ca i tng, node Texture s thay th cho node Material
xc nh c tnh b mt cho i tng .
3.4.1.6. ImageTexture
ImageTexture {
exposedField MFString

url

[]

field

SFBool

repeatS TRUE

field

SFBool

repeatT TRUE

NGUYN VIT LINH

27

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Node ImageTexture quy nh b mt ca vt th bng cch xc nh mt file


hnh nh gn vi mt i tng . Node ny cho php dn ln i tng cc b mt
t cc file hnh nh c nh dng nh GIF, PNG, JPEG theo ng dn c a ra
trong trng url.
V d :

Hnh 3.13 V d node ImageTexture


3.4.1.7. MovieTexture
MovieTexture {
exposedField SFBool

loop

FALSE

exposedField SFFloat

speed

1.0

# (-

exposedField SFTime

startTime

# (-

exposedField SFTime

stopTime

# (-

exposedField MFString

url

[]

field

SFBool

repeatS

TRUE

field

SFBool

repeatT

TRUE

eventOut

SFTime

duration_changed

eventOut

SFBool

isActive

NGUYN VIT LINH

28

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Node MovieTexture tng t nh ImageTexture cho php gn ln i tng


mt b mt tuy nhin b mt ny li thay i theo thi gian tc l mt 1 file movie v
cc thng s cho vic kim sot on movie ny thng qua file movie c ch ra
trong trng url.
loop : cho bit c lp li movie sau khi n chy ht.
speed : tc chy file.
startTime v stopTime : thi gian bt u v kt th c on phim.
Ch :Mt node MovieTexture cng c th c s dng l ngun ca d
liu m thanh cho mt node m thanh (Sound). V node MovieTexture khi s dng
trong node Texture s khng bao gm m thanh do mun s dng m thanh trong
mt file movie , chng ta phi s dng node Sound vi ngun m thanh l node
MovieTexture k trn.
V d :

Hnh 3.14 V d node MovieTexture


NGUYN VIT LINH

29

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

3.4.1.8. IndexedFaceset
IndexedFaceSet {
eventIn

MFInt32 set_colorIndex

eventIn

MFInt32 set_coordIndex

eventIn

MFInt32 set_normalIndex

eventIn

MFInt32 set_texCoordIndex

exposedField

SFNode

color

NULL

exposedField

SFNode

coord

NULL

exposedField

SFNode

normal

NULL

exposedField

SFNode

texCoord

NULL

field

SFBool

ccw

TRUE

field

MFInt32 colorIndex

[]

field

SFBool

colorPerVertex

TRUE

field

SFBool

convex

TRUE

field

MFInt32 coordIndex

field

# [-1,

[]

# [-1,

SFFloat creaseAngle

# [0,

field

MFInt32 normalIndex

[]

# [-1,

field

SFBool

normalPerVertex

TRUE

field

SFBool

solid

TRUE

field

MFInt32 texCoordIndex

# [-1,

[]

Node IndexedFaceSet c s dng xy dng cc b mt trong khng gian


3 chiu.
Trng coord cha mt node Coordinate xc nh tp cc im c dng
xy dng cc b mt. S th t ca cc im trong trng Cordinate c tham chiu
ti trng coordIndex, s th t tham chiu ny bt u t s 0. Node
IndexedFaceSet s dng cc ch s trong trng coordIndex xc nh cc mt
phng bng cch xc nh ta ca cc nh bin.Gi tr ca trng coordIndex -1
nhn bit y nh cui cng ca a gic.
Mi mt IndexedFaceSet u phi thoi mn 3 iu kin nu mun xc nh l
c t nh t 3 nh khng trng nhau.
nh xc nh mt a gic phng.
NGUYN VIT LINH

30

N TT NGHIP
-

TM HIU CHI TIT NGN NG VRML

nh xc nh mt a gic khng t giao nhau

Hnh 3.15 Mt phng trong VRML


V d:

Hnh 3.16 V d node IndexedFaceSet

NGUYN VIT LINH

31

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

3.4.1.9. BackGround
Background {
eventIn

SFBool

set_bind

exposedField MFFloat

groundAngle

[]

# [0, /2]

exposedfield MFColor

groundColor

[]

# [0,1]

exposedField MFString backUrl

[]

exposedField MFString bottomUrl

[]

exposedField MFString frontUrl

[]

exposedField MFString leftUrl

[]

exposedField MFString rightUrl

[]

exposedField MFString topUrl

[]

exposedField MFFloat

skyAngle

[]

# [0, ]

exposedField MFColor

skyColor

[ 0 0 0 ]

# [0,1]

eventOut

isBound

SFBool

Node Background s dng xc nh mt khung cnh mu sc m phng


mt t v bu tri, t t c cc i tng trong th gii u c t trc
khung cnh .
Trng skyColor quy nh mu sc ca bu tri cc g c khc nhau trn
mt cu bu tri. Gi tr u tin ca trng skyColor xc nh mu sc ca bu tri
0.0 radian (v tr thng ln t ngi xem).
Trng backUrl, bottomUrl, frontUrl, leftUrl, rightUrl v topUrl ch nh
mt tp cc hnh nh xc nh mt bc tranh lm nn. Bc tranh ton cnh bao gm
hnh nh, mi mt hnh nh trong s nh x vo mt mt ca khi lp phng v
cng ln, c tm chnh ti v tr ngi xem.
V d:

NGUYN VIT LINH

32

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Hnh 3.17 V d node BackGround


3.4.1.10. Viewpoint
Viewpoint {
eventIn
exposedField
exposedField
exposedField
exposedField
field
eventOut
eventOut
}

SFBool
set_bind
SFFloat fieldOfView
0.785398 # (0, )
SFBool
jump
TRUE
SFRotation orientation 0 0 1 0 #[-1,1],(,
SFVec3f position
0 0 10 # (,
)
SFString description
""
SFTime
bindTime
SFBool
isBound

Node Viewpoint xc nh g c nhn ca ngi dng i vi cc i tng trong


khng gian 3D. C th c nhiu node Viewpoint trong mt file VRML, mi Viewpoint
khc nhau tn ti c lp v c b 3D Cortona h tr chuyn i gia cc
Viewpoint trong qu trnh trnh chiu.
Trong , position l v tr im nhn trong khng gian 3 chiu.
orientation l g c quay ca im nhn so vi im mc nh.
Nu mc nh, th im nhn quy nh qua hai trng ny s l g c nhn t
chiu dng ca trc Z ti chiu m t trc Z, chiu dng ca trc X s nm tay phi
v chiu dng ca trc Y s l hng thng ng ln trn.
V d:

NGUYN VIT LINH

33

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Hnh 3.18 V d node Viewpoint


3.4.1.11. PointLight
PointLight {
exposedField
exposedField
exposedField
exposedField
exposedField
exposedField
exposedField
}

SFFloat
SFVec3f
SFColor
SFFloat
SFVec3f
SFBool
SFFloat

ambientIntensity
attenuation
color
intensity
location
on
radius

0
1 0 0
1 1 1
1
0 0 0
TRUE
100

#
#
#
#
#

[0,1]
[0,
)
[0,1]
[0,1]
(,

# [0,

Node PointLight quy nh mt ngun pht sng t ti mt trong khng gian 3


chiu. nh sng t ngun ny pht ra theo t t c cc hng.
Trng location v radius quy nh phm vi nh hng ca ngun sng( tc l
phm vi chiu sng ca ngun).
Trng intensity, abientIntensity, color quy nh cc c tnh ca ngun sng
tng ng l cng sng , cng sng phn chiu, mu sc.
Trng attenuation quy nh mc suy gim nh sng ca ngun sng hay
cn gi l h s suy gim.
3.4.2. Nhm 2 Nhm node m t tng tc th gii o vi th gii thc
Nh m node ny cn c gi l nhm node cm bit sensor . Nhm node ny
cho php ch ng ta nh ngha c cc tng tc gia ngi s dng vi th gii o .
V d nh cc thao tc cm nm , dch chuyn vt, cc s vt chuyn ng bin i
theo thi gian ,v.v
Cc tng tc ny c thc hin thng qua mt b cm bin . B cm bin ny
hot ng da trn cc s kin c to ra hay c ghi nhn gia cc node , cc s
NGUYN VIT LINH

34

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

kin s lm thay i trng thi ca cc i tng c to ra t cc node. Chnh thay


i trng thi ny s to ra c cc hiu ng chuyn ng hay cc tng tc t ngi
dng.
C nhiu loi node cm bin khc nhau, sau y l mt s loi thng c s
dng.
3.4.2.1. CylinderSensor
CylinderSensor {
exposedField SFBool
exposedField SFFloat
exposedField SFBool
exposedField SFFloat
exposedField SFFloat
exposedField SFFloat
eventOut
SFBool
eventOut
SFRotation
eventOut
SFVec3f
}

autoOffset TRUE
diskAngle 0.262
enabled
TRUE
maxAngle
-1
minAngle
0
offset
0
isActive
rotation_changed
trackPoint_changed

# (0, /2)
# [-2 ,2 ]
# [-2 ,2 ]
# (,
)

Node CylinderSensor cho php mt i tng chuyn ng theo trc Y (thng


ng). Trng enabled cho php kch hot hoc lm v hiu ha node
CylinderSensor. Nu l TRUE, cm bin phn ng thch hp vi cc s kin ca
ngi s dng. Nu l FALSE, b cm bin s khng theo di cc s kin nhp vo
hoc gi.
Trng maxAngle v minAngle xc nh gi tr gc quay ln nh t v nh nh t
ca i tng khi kch hot node CylinderSensor. Nu maxAngle nh hn min ngle
th gc quay khng gii hn.
Node CylinderSensor thng i vi s kin nh n v gi chut. (isActive)
V d : Quay khi tr quanh mt trc

NGUYN VIT LINH

35

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Hnh 3.19 V d node CylinderSensor


3.4.2.2. SphereSensor
SphereSensor {
exposedField
exposedField
exposedField
eventOut
eventOut
eventOut
}

NGUYN VIT LINH

SFBool
SFBool
SFRotation
SFBool
SFRotation
SFVec3f

autoOffset
TRUE
enabled
TRUE
offset 0 1 0 0 #[-1,1],(isActive
rotation_changed
trackPoint_changed

36

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Node SphereSensor cho php mt i tng chuyn ng theo qu o hnh


cu (c tm l gc ta ). Node SphereSensor s dng cc hnh l hu du ca node
cha ca n xc nh xem i tng no chu trch nhim to ra cc s kin.
Trng enabled xc nh vic cho php hoc v hiu ha node SphereSensor.
Nu enable l TRUE cm bin s phn ng thch hp vi cc s kin ca ngi s
dng. Nu enable l FALSE, b cm bin s khng theo di ngi dng nhp vo
hoc gi cc s kin g.
offset l trng cha gi tr gc quay b.
Tng t nh node CylinderSensor, node SphereSensor cng thng i lin
vi s kin nh n v gi chut (isActive).
3.4.2.3. TouchSensor
TouchSensor {
exposedField
eventOut
eventOut
eventOut
eventOut
eventOut
eventOut
}

SFBool
SFVec3f
SFVec3f
SFVec2f
SFBool
SFBool
SFTime

enabled TRUE
hitNormal_changed
hitPoint_changed
hitTexCoord_changed
isActive
isOver
touchTime

Node TouchSensor c kh nng theo d i v tr v trng thi ca con tr chut


khi ngi dng s dng cc thao tc vi chut. Node TouchSensor c th c kch
hot hay v hiu ha bng cc gi i mt s kin kch hot nhn gi tr TRUE hay
FALSE. Nu node TouchSensor b v hiu h a, chng trnh s khng theo di cc
thao tc ca ngi dng na (nhp vo hoc gi s kin).
Trng isActive c kh nng nhn bit trng thi nh n v gi chut vo mt i
tng no ca ngi dng.
Trng isOver nhn bit trng thi r chut qua i tng ca ngi dng.
V d: Click chut chy on video.

NGUYN VIT LINH

37

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Hnh 3.20 V d node TouchSensor


NGUYN VIT LINH

38

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

3.4.2.4. TimeSensor
TimeSensor {
exposedField SFTime

cycleInterval 1

# (0,

exposedField SFBool

enabled

TRUE

exposedField SFBool

loop

FALSE

exposedField SFTime

startTime

# (-

exposedField SFTime

stopTime

# (-

eventOut

SFTime

cycleTime

eventOut

SFFloat

fraction_changed

eventOut

SFBool

isActive

eventOut

SFTime

time

Node
bao gm:
-

TimeSensor cho php to ra cc chuyn ng ph thuc vo thi gian


Cc hiu ng ng, cc m phng tun t
Cc hot ng c tnh nh k , v d cc hot ng din ra theo mi pht
Cc hot ng t ng khi to ging nh ng h bo thc

S chuyn ng to ra t node TimeSensor c ghi nhn hoc b qua nu gi


tr tng ng ca trng enabled l TRUE hoc FALSE.
Tnh lp li ca chuyn ng ph thuc vo gi tr TRUE hoc FALSE ca
trng loop.
Trng cycleInterval cho bit chu k ca mt chuyn ng.
V d : hnh hp chuyn ng quay

NGUYN VIT LINH

39

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Hnh 3.21 V d node TimeSensor


3.4.3. Nhm cc node c bit
Ngoi hai nhm node k trn, trong VRML cn mt nhm node c nhim v
khc bit so vi hai nh m trn l : cho php nh m cc i tng n l thnh
nhng i tng phc tp hn.Loi node ny c gi l node nhm.Vic mt nhm
ny vo nhm kia ta thnh mt lc c u trc cc node. a s cc node nhm bao
gm mt trng kiu MFNode children cha cc node con.
Nhng node nh m ny c s dng trong qu trnh xy dng th gii o vi
nhng chc nng khc nhau cho tng loi node nhm.VRML cung c p nhng loi
node nhm sau : anchor, group, switch, transform, billboard, inline.
3.4.3.1. Anchor
Anchor {
eventIn
MFNode
addChildren
eventIn
MFNode
removeChildren
exposedField MFNode
children
[]
exposedField SFString description
""
exposedField MFString parameter
[]
exposedField MFString url
[]
field SFVec3f bboxCenter
0 0 0
# (,
)
field SFVec3f bboxSize
-1 -1 -1 # (0,
) or -1,-1,-1
}

NGUYN VIT LINH

40

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Node Anchor cho php xc nh mt tp hp cc i tng c lin kt n mt


url, chng hn nh l mt siu lin kt n th gii VRML khc, n mt trang HTML
hoc n mt d liu no m ton b trnh duyt c th c c.
Node Anchor l y ni dung ca URL khi ngi dng kch hot (nh p chut).
Nu ng dn URL hp l, th gii ca URL s thay th th gii o hin ti. Node
y

s s
Trng description a ra x u k t m t cho i tng c t trong
Anchor khi ngi dng r chut vo n .
Trng bboxCenter xc nh trung t m ca mt hnh hp ch nht m n bao
quanh t t c cc node trong nh m. Gi tr ca trng ny l mt im trong khng
gian.
Trng bboxSize: xc nh kch thc ca hnh hp ch nht bao quanh t t c
cc node trong nh m. Mc nh trng ny c gi tr -1 -1 -1 ngha l khng c hnh
hp no. T t c cc gi tr thnh phn ca trng ny l ln hn hoc bng 0.Nu t t
c cc node con khng nm trong hnh hp th kt qu khng xc nh.
V d :

Hnh 3.21 V d node Anchor


3.4.3.2. Group
Group {
eventIn
eventIn
exposedField
field
field
}

NGUYN VIT LINH

MFNode
MFNode
MFNode
SFVec3f
SFVec3f

addChildren
removeChildren
children
[]
bboxCenter 0 0 0
#(bboxSize
-1 -1 -1 #(0,

,
)
)# or -1,-1,-1

41

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Node Group to ra mt tp hp cc vt th nh l mt thc th n.


Gi tr cc trng trong node tng t nh node Anchor trnh by trn.
Thao tc trn node Group tng t nh thao tc trn mt thc th n bng
cch s dng c u trc DEF/USE
3.4.3.3. Switch
Switch {
exposedField
exposedField
}

MFNode choice
[]
SFInt32 whichChoice -1

# [-1,

Node Switch to ra b chuyn i tc l ch c mt node con trong nh m c


hin th. V node ny l do ngi dng la chn.
Trng choice a ra danh sch cc node c nh s th t ln lt t 0 v
tham chiu ti gi tr trng whichChoice, trng ny quy nh khng node no hoc
ch mt node i qua c node la chn. Nu whichChoice c gi tr l 0 hoc ln
hn s node trong node choice, th s khng node no c i qua.
3.4.3.4. Transform
Node Transform xc nh h trc ta mi cho cc i tng trong cng mt
nh m. Node ny c trnh by phn trn.
3.4.3.5. Inline
Inline {
exposedField MFString url
[]
field SFVec3f bboxCenter 0 0 0
field SFVec3f bboxSize
-1 -1 -1
}

# (# (0,

,
)
) or -1,-1,-1

Node Inline c s dng trong vic kt ni cc file VRML vi nhau. Node


Inline cho php gi trc tip mt i tng bn ngoi theo ng dn t trng url
vo file hin ti.
V d :

NGUYN VIT LINH

42

N TT NGHIP

TM HIU CHI TIT NGN NG VRML

Hnh 3.23 V d node Inline


3.4.3.6. BillBoard
Billboard {
eventIn
eventIn

NGUYN VIT LINH

MFNode
MFNode

addChildren
removeChildren

43

N TT NGHIP
exposedField
exposedField
field
field
}

TM HIU CHI TIT NGN NG VRML


SFVec3f
MFNode
SFVec3f
SFVec3f

axisOfRotation
children
bboxCenter
bboxSize

0 1 0
# ([]
0 0 0
# (-1 -1 -1 # (0,

,
)

Node BillBoard to ra mt nh m i tng vi h ta c bit. H ta


ny lun c quay v i din vi ngi dng, tc l trc z ca h trc ta lun
hng v pha ngi nhn.
Trng axisOfRotation cho bit trc quay trong php quay bin i h trc ta
v hng ngi nhn.

NGUYN VIT LINH

44

N TT NGHIP

XY DNG CHNG TRNH M PHNG

CHNG IV : NG DNG VRML VIT CHNG


TRNH M PHNG HU CH M NG XUN
4.1. Pht biu bi ton
Nc Vit nam chng ta c r t nhiu nhng di tch lch s , danh lam thng
cnh ni ting, m i km vi nhng di tch, danh lam l nhng nt p vn h a c
trng ca con ngi Vit Nam. Tuy nhin cng s i mi mnh m ca t nc, mt
li sng trong thi i mi xu t hin vi nhng khc bit ln so vi li sng truyn
thng ca con ngi Vit v tnh lm mai mt i nhng nt p vn h a y. c
bit H Ni, th ca nc Vit Nam, l ni khi ngun ca nhiu hot ng vn
h a i sng tt p, tuy nhin y cng l ni chu nh hng r t nhiu t s bin
ng y. Cng cuc bo tn nhng di tch vn c ngha r t quan trng i vi
vic gio dc th h tr : duy tr v pht trin nhng phong tc , li sng tt p ca
ngi Vit Nam
Vi mong mun gp phn nh b vo cng cuc bo tn y, ti s s dng
VRML lm cng c xy dng khu ch m ng Xun mi ngi c th
sng trong mt khng gian vn h a truyn thng ca ngi H Ni ngay trn my
tnh ca mnh. ng Xun l mt trong nhng ch ln v ni ting nh t ca H Ni v
t nm 2003, y ban Nhn dn thnh ph H Ni m mt khu ch m ti khu vc
xung quanh ch ng Xun vi mong mun duy tr mt khng gian vn h a c trng
cho i sng ca ngi H Ni. Cc gian hng trong khu ch m by bn ch yu l
cc sn phm th cng m ngh truyn thng . Bn cnh l cc gian hng m thc
vi nhiu m n n c sc ca H Ni. c bit, ti mt tin ca ch ng Xun hng
tun s m sn kh u biu din ngh thut truyn thng, c bit l ca tr v tro c.
Khu ch o c xy dng t VRML c th a ln mt trang web cho php
nhiu ngi truy cp v tri nghim, cng g p phn vo pht trin du lch cho H Ni
ni ring v Vit Nam ni chung.

4.2. Yu cu bi ton
4.2.1. Yu cu chnh
Yu cu chnh ca bi ton l xy dng nn mt khu ch o m ngi s
dng c th :

i li, di chuyn gia cc khu vc.

Xem hnh nh v tm hiu thng tin v cc mt hng c by bn trong


cc gian hng.

Xem c cc tit mc ngh thut ti khu vc sn kh u.


NGUYN VIT LINH

45

N TT NGHIP

XY DNG CHNG TRNH M PHNG

4.2.2. Kho st :
Cc gian hng khu vc ch m ng Xun c dng ngay trn con
ph Hng ng v khu vc xung quanh ch ng Xun.
4.2.2.1. S ton cnh khu vc ch :

Hnh 4.1 S ton cnh


4.2.2.2. Cng ch

NGUYN VIT LINH

46

N TT NGHIP

XY DNG CHNG TRNH M PHNG

Hnh 4.2 Cng ch( nh chp)


4.2.2.3. Khu vc sn kh u v mt tin ch

Hnh 4.3 Sn kh u v mt tin( nh chp)


NGUYN VIT LINH

47

N TT NGHIP

XY DNG CHNG TRNH M PHNG

4.2.2.4. Cc gian hng

Hnh 4.4 Gian hng( nh chp)

4.3. Thit k khu ch


Do ton b khu vc ch c khng gian ln v phc tp, do khi dng
vi VRML chng ta s chia thnh cc khu vc khc nhau v dng ring bit
tng ng l cc file wrl khc nhau, sau dng node Inline ghp cc phn
ny li.
Cc khu vc cn dng gm :
1.
2.
3.
4.
5.

NGUYN VIT LINH

Cng ch
Dy nh hai bn ng
Gian hng
Ch ng Xun ( mt tin )
Sn kh u

48

N TT NGHIP

XY DNG CHNG TRNH M PHNG

4.3.1. Cng ch
T ti liu kho st, c th chia cng ch thnh 3 thnh phn sau :
2 ct tr
1 li k vung
Dng ch CH M NG XUN
Chng ta thc hin dng tng thnh phn :
a) Dng hnh
2 ct tr
Code:
Transform {
translation -170 0 0
children [
DEF cot Shape {
appearance Appearance {
material Material {
diffuseColor 0.3373 0.3373 0.3373
}
}
geometry Cylinder { radius 3.14
height 260}
}
]}
Transform {
translation 170 0 0
children [
USE cot
]}

Hnh 4.5 Ct tr

NGUYN VIT LINH

49

N TT NGHIP

XY DNG CHNG TRNH M PHNG

Khung li

Hnh 4.6 Khung li


Dng ch
Code:
# Dng ch CH M
Group { chidren [Shape {
appearance Appearance {
material DEF TEXT Material {
diffuseColor 0.3373 0.0549 0
ambientIntensity 1.0
specularColor 0 0 0
shininess 0.145
transparency 0
}
}
geometry Text {
string "CH M"
fontStyle FontStyle {
size 11.5 family VNI-Ariston
style ITALIC
}}
}]
}
#Dng ch NG XUN
Transform{
translation 0 20 0
chidren [Shape {
appearance Appearance {
material USE TEXT
geometry Text {
string "NG XUN"

NGUYN VIT LINH

50

N TT NGHIP

XY DNG CHNG TRNH M PHNG


fontStyle FontStyle {
size 8.66 family .VN-avo
style BOLD}}

}]
}

Hnh 4.7 Dng ch


b) Kt qu hin th

Hnh 4.8 Cng ch


4.3.2. Dy nh hai bn ng
NGUYN VIT LINH

51

N TT NGHIP

XY DNG CHNG TRNH M PHNG

Kt c u pha ngoi ca cc ngi nh r t phc tp v a dng, s lng ngi nh


cn dng cng ln. Nu s dng VRML xy dng s tn km r t nhiu thi gian.
Do y, em s dng cng c 3Ds Max h tr cho vic dng thnh phn
ny. Cc i tng s c v mt cch chi tit bng 3DS Max v chuyn sang ngn
ng VRML ( chng trnh 3DS Max c h tr export sang ui .wrl ). L c ny ta ch
cn t on code ny vo v tr mong mun th hnh nh v dy nh cn dng s hin
ln

Hnh 4.9 To file wrl t 3Ds Max


Kt qu sau khi export

NGUYN VIT LINH

52

N TT NGHIP

XY DNG CHNG TRNH M PHNG

Hnh 4.10 Dy nh
4.3.3.
Kt c

Gian hng
u ca gian hng c chia thnh 4 phn
4 ct tr
Mi
Mn hnh : hin th hnh nh v mt hng by bn
Bc hng : trn c mt mn hnh nh trnh chiu thng tin chi tit mt
hng
Trong s c hiu ng sau :
Khi r chut vo mn hnh, tn mt hng s hin ra
Khi click chut vo mn hnh ny trang web gii thiu v xu t x , quy
trnh sn xu t ,v.vca sn phm s c hin th.
Chng ta xy dng tng thnh phn v cc hiu ng c th nh sau :
a) Dng hnh
4 ct tr
DEF cotleu Group {children[
Transform {children[
Shape {
appearance DEF app1 Appearance {
material Material {
diffuseColor 0.3373 0.3373 0.3373
}
}
geometry Cylinder { radius 1.11 height 60}

NGUYN VIT LINH

53

N TT NGHIP

XY DNG CHNG TRNH M PHNG

}]}
Transform { translation 0 -30 0
children[
Shape {
geometry Box { size 3.14 1.2 3.14}
appearance USE app1
}]}
Transform { translation 0 -31.6 0
rotation 1 1 0 3.14
children[
Shape {
geometry Cylinder { radius 2 height 1}
appearance USE app1
}]}
]}
#Cot phai tren
Transform {
translation
40 0 0
children [
USE cotleu]
}
#Cot trai duoi
Transform {
translation
40 0 -40
children [
USE cotleu]
}
#Cot phai duoi
Transform {
translation
0 0 -40
children [
USE cotleu]
}

Hnh 4.11 Bn ct tr
NGUYN VIT LINH

54

N TT NGHIP

XY DNG CHNG TRNH M PHNG

Mi
Shape {
appearance Appearance {
material Material {
diffuseColor 0.8824 0.7765 0.3412
}
geometry Cone {
bottomRadius 82.68 height 59.06 }
}

Mn hnh
DEF mh Shape {
appearance Appearance {
texture ImageTexture {url "BanhCom.jpg"}
textureTransform TextureTransform
{ rotation 3.14}
}
geometry IndexedFaceSet {
ccw TRUE
solid TRUE
coord DEF sp-COORD Coordinate { point [
-53.15 0 35.43 , -53.15 0 -35.43 , 53.15 0 -35.43, 53.15 0 35.43
]
}
coordIndex [ 1 2 3 4
]
}

Bc hng
Shape {
appearance Appearance {
material Material {
diffuseColor 0.4745 0.3255 0.2275}
}
geometry Box { size 40 28 40 }
}

b) Hiu ng
S dng node nchor to ra hai hiu ng :
Anchor{
description "Banh Com - Dac san so 1 Ha Noi !"
url "htttp://banhcomhn.vn"
children [ USE mh
]
}
NGUYN VIT LINH

55

N TT NGHIP

XY DNG CHNG TRNH M PHNG

c) Kt qu hin th

Hnh 4.12 Gian hng


4.3.4. Mt tin ch ng Xun
Do kt c u mt tin ch ng Xun kh phc tp, nu s dng VRML th quy
trnh dng s phc tp, hiu qu li khng cao, do , ch ng ta s dng cng c 3Ds
Max dng v xu t ra file wrl tng t nh phn 4.3.2.
Sau y l kt qu thu c :

NGUYN VIT LINH

56

N TT NGHIP

XY DNG CHNG TRNH M PHNG

Hnh 4.13 Mt tin ch ng Xun


4.3.5. Sn kh u
Phn sn kh u gm 3 thnh phn:
Mt bc biu din
Mt mn hnh
Cc khi loa
Trong gm cc hiu ng :
Click vo mn hnh, video HatXam.mp4 s chy km theo nhc pht
ra
C th click vo cc khi loa tt m thanh hoc bt li
a) Dng hnh
Bc biu din
Shape {
appearance Appearance {
material Material {
diffuseColor 0.8784 0.3373 0.3373
}
}
geometry Box { size 393.7 0.1969 126 }
}

NGUYN VIT LINH

57

N TT NGHIP

XY DNG CHNG TRNH M PHNG

Mn hnh
DEF manhinh Shape {
appearance Appearance {
texture DEF M1 MovieTexture {
url "HatXam.mp4"}
}
geometry Box {
size 393.7 0 126
}
}
b) Hiu ng
S dng node TouchSensor th hin hiu ng :
#Hiu ng bt video
Group{ children[
USE manhinh
DEF T1 TouchSensor {}
]}
ROUTE T1.touchTime TO M1.startTime
#Hiu ng tt bt m thanh
Group { children[
USE loa
Sound {
source M1}
DEF T2 TouchSensor {}
DEF T3 TouchSensor {}
]}
ROUTE T2.touchTime TO M1.startTime
ROUTE T3.touchTime TO M1.stopTime

c) Kt qu hin th

NGUYN VIT LINH

58

N TT NGHIP

XY DNG CHNG TRNH M PHNG

Hnh 4.14 Sn kh u

4.4. V n di chuyn v quan st trong khu ch


4.4.1. Di chuyn v quan st trong khu ch
Chng ta c th di chuyn trong khu ch o mt cch d dng v linh hot : c
th tin, li, quay tri,quay phi, tng gim tc di chuyn, nh vo h tr ca b
player 3D Cortona Viewer .T ngi dng c th t do xem cc gian hng cng
nh xem cc tic mc khu vc sn kh u.
Tuy nhin , v khu vc ch r t rng, nn chng ta c th gp kh khn khi di
chuyn ti gian hng hay sn kh u t v tr ban u. Do , y, em s dng thm
node Viewpoint quy nh cc gc nhn ti cc v tr xu t pht mong mun. Vic
chuyn i gia cc gc nhn ny s cho php ngi dng chuyn nhanh n cc v tr
mun quan st. Hai Viewpoint c t l :
DEF Cam1 Viewpoint {
position 515.2 165.6 45.26
orientation 0 -1 0.0007854 -3.142
fieldOfView 1.815
description "Camera ti v tr sn khu"
}
DEF Cam2 Viewpoint {
position -1090 85.82 232.7
orientation 0 -1 0 -4.712
fieldOfView 0.7363
description "Camera ti v tr cng ch"}

NGUYN VIT LINH

59

N TT NGHIP

XY DNG CHNG TRNH M PHNG

Ch : Nn s dng cng c 3Ds


x t cc
w
chnh
xc v hi u qu cho cc gc nhn.
4.4.2. nh sng
Mt yu t quan trng trong vic xy dng th gii o l nh sng. y,
tng tnh ch n thc trong vic quan st cc i tng, em s dng node PointLight
quy nh ngun pht sng ti mt s im.
Hai PointLight c t l :
DEF PL1 PointLight {
intensity 30
color 1 1 0.9843
location -675.3 198.5 156.9
on TRUE
radius 5751
}
DEF PL2 PointLight {
intensity 30
color 1 1 0.9843
location 732.5 198.5 156.9
on TRUE
radius 5751
}

Hnh 4.15 PointLight


NGUYN VIT LINH

60

N TT NGHIP

XY DNG CHNG TRNH M PHNG

4.5. Hnh nh khu vc ch m phng


4.4.1. Ton cnh nhn t trn xung

Hnh 4.16 Ton cnh m hnh


4.4.2. Li vo cng ch m

NGUYN VIT LINH

61

N TT NGHIP

XY DNG CHNG TRNH M PHNG

Hnh 4.17 Li vo cng ch


4.4.3. Mt tin ch ng Xun v sn kh u

Hnh 4.18 Mt tin v sn kh u


NGUYN VIT LINH

62

N TT NGHIP

XY DNG CHNG TRNH M PHNG

4.4.4. Dy hng nhn t sn kh u

Hnh 4.19 Dy hng nhn t sn kh u

NGUYN VIT LINH

63

N TT NGHIP

KT LUN

KT LUN
Kt qu t c
Sau qu trnh nghin cu, tm hiu v ng dng, n thu c nhng kt
qu sau:
Nm bt v cng ngh thc ti o: khi nim, ng dng
Nm bt c cch thc lm vic vi ngn ng VRML, nm bt cc c php
v quy tc hot ng ca cc node thng dng trong VRML
Xy dng c chng trnh m phng khu ch m ng Xun nhn chung
m phng li c cnh quan tng th, gii thiu c cc mt hng ni bt ca khu
ch, m phng c khu vc sn kh u vi cc hot ng vn ngh truyn thng.

Tuy nhin cn mt s hn ch thiu st :


Cha nm bt c ton b nhng c im v c ch hot ng ca mt s
node trong VRML
Do hn ch v kin thc v mu sc v nh sng trong ha, do hai yu
t ny trong chng trnh m phng cha tht s gy n tng, c mt s chi tit sai
khc nhiu so vi thc t.
i tng con ngi trong khu ch cn cng, tnh tng tc khng cao,
hn ch ti vic xy dng khng kh thc trong mi trng o

Hng pht trin


Hon thin cc yu t mu sc, nh sng, con ngi trong chng trnh m
phng, b sung thm mt s hiu ng v chuyn ng tng tnh gi tr thm m v
sing ng.
Trin khai chng trnh trn cc website qung b v du lch
Pht trin chng trnh m phng vi quy m ln hn:
o Xy dng thm phn m phng ton b pha trong ch ng Xun
o Xy dng m rng sang m phng ton b khu ph c
o a ton b chng trnh m phng vo th vin cc di tch lch s s,
lu tr v upload ln cc website v du lch

NGUYN VIT LINH

64

[1] thut ho,

TI LIU THAM

HO

Q y

, Nh xu t bn Khoa hc

v K thut 2004
[2]The Annotated VRML 97 Reference, Rikk Carey, Gavil Bell, 1999
[3]VRML Primer and Tutorial, Daniel K. Schneider, Sylvere Martin-Michiellot,
University of Geneva, 1998

Danh sch a ch website tham kho :


http://vrmlworks.crispen.org/models.html
http://www.lighthouse3d.com/vrml/tutorial/
http://www.ocnus.com/models/
http://www.wiley.com/legacy/compbooks/vrml2sbk/toc/toc.htm

You might also like