Ờ Ả Ơ L I C M N
ỏ ế ơ ấ ớ ầ ầ Em xin bày t lòng bi ắ t n sâu s c nh t t ậ ứ i th y giáo Vũ Đ c Huy, th y đã t n
ươ ậ ớ ớ ự ẫ ỡ ố tình h ỉ ả ng d n và giúp đ em trong su t quá trình làm bài t p l n. V i s ch b o
ữ ầ ị ướ ố ự ệ ể ệ ủ c a th y, em đã có nh ng đ nh h ng t t trong vi c tri n khai và th c hi n các yêu
ậ ớ ầ c u trong quá trình làm bài t p l n.
ớ Nhóm 22 L p KTPM2K7
ả ơ Em xin chân thành c m n !
ứ
GV: Vũ Đ c Huy
1
Ụ Ụ M C L C
Ờ Ả Ơ L I C M N
1 .......................................................................................................
Ụ
Ụ
2 M C L C .............................................................................................................
Ờ Ở Ầ 4 L I M Đ U .......................................................................................................
ƯƠ
ổ
CH
NG 1. T ng quan v th c t
ề ự ạ ả i o
5 ...........................................................
ự ế ả
1.1 Th c t
5 o là gì ? ..........................................................................................
ệ ự ế ả
ử
ị
ể ủ 1.2 L ch s phát tri n c a công ngh th c t
6 o ...............................................
ủ
ặ
6 1.3 Các đ c tính chính c a VR ............................................................................
ộ ệ ố
ầ
1.4 Các thành ph n m t h th ng VR
7 ................................................................
ầ ứ
1.4.1 Ph n c ng (Hardware)
7 ...........................................................................
ầ
ề 1.4.2 Ph n m m (Software)
8 ............................................................................
1.5 Các thi
ế ị ơ ả 8 t b c b n ........................................................................................
ế ị
ướ
ể
ộ
1.5.1 Thi
ị t b đ nh h
8 ng và chuy n đ ng ....................................................
ả
1.5.2 Thi
ế ị ươ t b t
ồ 12 ng tác và ph n h i ............................................................
ộ ố ứ
ủ
ụ 13 1.6 M t s ng d ng chính c a VR .................................................................
1.6.1 Quân sự 13 .................................................................................................
1.6.2 Giáo d cụ 14 ................................................................................................
1.6.3 Xây d ngự
15 ...............................................................................................
1.6.4 Y h cọ 15 .....................................................................................................
ƯƠ
ữ
CH
NG 2. Ngôn ng VRML
16 .........................................................................
ớ
ệ
2.1 Gi
ề i thi u v VRML
16 ...................................................................................
16 2.1.1 VRML là gì ? ........................................................................................
ề
ị
16 2.1.2 Đ nh nghĩa v VRML ...........................................................................
ể ủ
ử
ờ
ị
17 2.1.3 L ch s ra đ i và phát tri n c a VRML ..............................................
ơ ả ủ
ể
ặ
2.1.4 Đ c đi m c b n c a VRML
18 ..............................................................
ề ơ ả ủ
ấ
19 2.2 Các v n đ c b n c a VRML ...................................................................
ầ ơ ả ủ
2.2.1 Các thành ph n c b n c a VRML
19 .....................................................
ị
ụ ể 19 2.2.2 Công c hi n th VRML ......................................................................
ủ
ậ
2.2.3 T p tin c a VRML
20 ...............................................................................
ớ Nhóm 22 L p KTPM2K7
ứ
GV: Vũ Đ c Huy
2
ể
ế ề
2.3 Tìm hi u chi ti
t v VRML
21 ........................................................................
ố ượ
ọ ơ ả
ự 2.3.1 Xây d ng các đ i t
21 ng hình h c c b n ...........................................
ứ ạ
ộ ố
ự
23 2.3.2 Xây d ng m t s hình ph c t p ..........................................................
ổ
ế 29 2.3.3 Các phép bi n đ i trong VRML ...........................................................
ắ
2.3.4 Màu s c trong VRML
32 ...........................................................................
33 2.3.5 Nhóm node ............................................................................................
ộ ố ươ
ẽ
2.3.6 M t s ph
ng pháp v trong VRML
35 ................................................
2.3.7 Texture Mapping
36 ...................................................................................
37 2.3.8 Script .....................................................................................................
ƯƠ
Ứ
ụ
ự
ọ
ệ
CH
NG 3. ng d ng VRML trong vi c xây d ng xóm tr Hoàng
Tr
ngườ
39 ..................................................................................................................
39 3.1 Bài toán .........................................................................................................
ầ
ặ
ướ
ả
3.2 Yêu c u đ t ra và h
ng gi
ế 39 i quy t ..........................................................
ự 3.2.1 Xây d ng xóm tr
ọ 39 .................................................................................
3.2.2 Trang trí xóm trọ 40 ...................................................................................
ố ượ
ự 3.2.3 Xây d ng các đ i t
ng bên trong xóm tr
ọ 41 ........................................
ể
3.2.4 Di chuy n bên trong xóm tr
ọ 41 ...............................................................
ố ượ
ọ 3.2.5 Ch n đ i t
ng
42 ....................................................................................
3.2.6 Ánh sáng
43 ................................................................................................
ở ử 3.2.7 Đóng m c a
43 ........................................................................................
ố ư
44 3.2.8 T i u khung hình ................................................................................
ả ạ ượ
ế
ướ
ể
3.3 K t qu đ t đ
c và h
44 ng phát tri n ......................................................
3.3.1 K t quế
ả 44 .................................................................................................
Ầ
Ậ
Ế 47 PH N K T LU N .............................................................................................
Ả
Ệ
TÀI LI U THAM KH O
48 ..................................................................................
ớ Nhóm 22 L p KTPM2K7
ứ
GV: Vũ Đ c Huy
3
Ờ Ở Ầ L I M Đ U
ự ế ả ữ ớ ư ấ ả ầ ậ ậ ộ ỷ Th c t ệ o là m t thu t ng m i xu t hi n kho ng đ u th p k 90, nh ng ở
ỹ ệ ở ộ M và châu Âu th c t ự ế ả (Virtual Reality) đã và đang tr thành m t công ngh mũi o
ụ ứ ự ứ ả ờ ọ ộ ọ ệ nh n nh kh năng ng d ng r ng rãi trong m i lĩnh v c (nghiên c u và công nghi p,
ụ ạ ươ ả ề ế ư giáo d c và đào t o, th ạ ng m i và gi i trí,..) và ti m năng kinh t , cũng nh tính
ự ủ ụ ụ ạ ệ ộ ưỡ l ng d ng (trong dân d ng và quân s ) c a nó. T i Vi ự t Nam, tuy là m t lĩnh v c
ấ ữ ệ ạ ư ữ ư ớ m i nh ng đã có nh ng công trình r t h u ích nh : tái hi n l ộ i con Sao La hay m t
ử ế ể ả ố ạ ầ Văn Mi u Qu c T Giám o mà ta có th đi l i quan sát trong đó. Chính vì t m quan
ứ ề ự ạ ả ư ả ứ ụ ệ ọ ớ tr ng cũng nh kh năng ng d ng to l n đó nên vi c nghiên c u v th c t i o là vô
ế ơ ở ộ ứ ự ạ ả ự ụ ể ầ cùng c n thi t. Và trên c s đó có th xây d ng m t ng d ng th c t i o hoàn
ỉ ch nh.
ề ậ ọ ố ệ Chính vì v y mà em đã ch n đ tài t ể t nghi p: ” Tìm hi u công ngh th c t ệ ự ế
ả ở ầ ứ ụ ế ầ ậ ồ ồ ộ o và ng d ng”. Đ án này g m có ph n m đ u, k t lu n và n i dung:
ươ ổ Ch ng 1: T ng quan v th c t ề ự ạ ả i o
ươ ữ Ch ng 2: Ngôn ng VRML
ớ Nhóm 22 L p KTPM2K7
ươ Ứ ụ ự ệ ọ ườ Ch ng 3: ng d ng VRML trong vi c xây d ng xóm tr Hoàng tr ng
ứ
GV: Vũ Đ c Huy
4
ề ự ạ ả ổ
ƯƠ
T ng quan v th c t i o
CH
NG 1.
ự ế ả o là gì ?
1.1 Th c t
ự ế ả ỏ Th c t ồ ọ ộ ệ ố oVirtual Reality( VR ) là m t h th ng mô ph ng trong đó đ h a
ượ ử ụ ể ạ ế ớ ộ ư ậ ế ớ ữ máy tính đ c s d ng đ t o ra m t th gi ơ i "nh th t". H n n a, th gi i "nhân
ạ ạ ả ứ ệ ổ ố ạ t o" này không tĩnh t i, mà l ủ i ph n ng, thay đ i theo ý mu n (tín hi u vào) c a
ườ ử ụ ộ ờ ộ ặ ề ị ng ờ i s d ng (nh hành đ ng, l ủ i nói,..). Đi u này xác đ nh m t đ c tính chính c a
ươ ự ở ự ờ ờ VR, đó là t ng tác th i gian th c (realtime interactivity). Th i gian th c đây có
ậ ả ủ ệ ườ ử ụ nghĩa là máy tính có kh năng nh n bi ế ượ t đ c tín hi u vào c a ng i s d ng và thay
ậ ứ ế ớ ả ườ ử ụ ấ ự ậ ổ ổ đ i ngay l p t c th gi i o. Ng i s d ng nhìn th y s v t thay đ i trên màn hình
ố ủ ọ ở ự ỏ ị ngay theo ý mu n c a h và b thu hút b i s mô ph ng này.
ỏ ơ ể ẻ ề ậ ấ Đi u này chúng ta có th nh n th y ngay khi quan sát tr nh ch i video game.
ỏ ở ẻ ả ơ ị ứ Theo báo Bild (Đ c), có hai tr nh ế Anh b thu hút và m i mê ch i Nintendo đ n
ề ả ị ế ươ ỗ n i ngay c khi nhà chúng đang b cháy cũng không h hay bi t! T ng tác và kh ả
ầ ớ ủ ắ ả ả năng thu hút c a VR góp ph n l n vào c m giác đ m chìm (immersion), c m giác tr ở
ủ ầ ộ ộ ườ ử ụ ả thành m t ph n c a hành đ ng trên màn hình mà ng ệ i s d ng đang tr i nghi m.
ư ữ ậ ẩ ả ơ ờ ộ ấ ả Nh ng VR còn đ y c m giác này "th t" h n n a nh tác đ ng lên t t c các kênh
ủ ườ ự ế ườ ấ ả c m giác c a con ng i. Trong th c t , ng ố ữ i dùng không nh ng nhìn th y đ i
ồ ọ ổ ở ư ố ọ ướ ượ t ổ ng đ h a 3D n i (nh hình n i trang cu i báo Hoa h c trò đã đăng tr c kia),
ề ể ể ượ ố ượ ư đi u khi n (xoay, di chuy n,..) đ c đ i t ng trên màn hình (nh trong game), mà
ư ả ậ ả ấ ờ ị còn s và c m th y chúng nh có th t. Ngoài kh năng nhìn (th giác), nghe (thính
ể ạ ứ ứ ả ờ giác), s (xúc giác), các nhà nghiên c u cũng đã nghiên c u đ t o các c m giác khác
ử ư ứ ế ệ ả ị nh ng i (kh u giác), n m (v giác). Tuy nhiên hi n nay trong VR các c m giác này
ượ ử ụ ế cũng ít đ c s d ng đ n.
ừ ủ ị ể ấ T các phân tích trên, chúng ta có th th y đ nh nghĩa sau đây c a C. Burdea và
ề ươ ộ ệ ố ự ố P. Coiffet v VR là t ệ ế Ả ng đ i chính xác: VR Th c T o là m t h th ng giao di n
ữ ườ ử ụ ệ ố ự ậ ỏ ấ c p cao gi a Ng ệ i s d ng và Máy tính. H th ng này mô ph ng các s v t và hi n
ự ờ ươ ớ ườ ử ụ ợ ổ ượ t ng theo th i gian th c và t ng tác v i ng ả i s d ng qua t ng h p các kênh c m
ớ Nhóm 22 L p KTPM2K7
ứ ồ ị ị giác. Đó là ngũ giác g m: th giác, thính giác, xúc giác, kh u giác, v giác.
ứ
GV: Vũ Đ c Huy
5
ử ị ể ủ 1.2 L ch s phát tri n c a công ngh th c t ệ ự ế ả o
ự ế ả ư ề ậ ệ Khái ni m th c t o đã có trong nhi u th p niên nh ng nó ch th c s đ ỉ ự ự ượ c
ứ ữ ữ ữ ậ ầ ỹ nh n th c vào đ u nh ng năm 90. Vào gi a nh ng năm 50 Morton Heilig (M ) đã
ế ị ỏ ế ị ề ể phát minh ra thi t b mô ph ng SENSORAMA. Đó là 1 thi t b đi u khi n 1 ng ườ ử i s
ự ể ạ ạ ộ ồ ụ d ng g m có : m t màn hình th c th kính, qu t, máy t o mùi, loa âm thanh và 1
ế ế ể ể ượ ề chi c gh có th di chuy n đ c. Ông cũng phát minh ra màn hình truy n hình đ ượ c
ụ ụ ữ ể ể ả ẩ ầ ệ ả ắ g n vào đ u đ có th xem phim 3D. Tuy là nh ng s n ph m ph c v cho đi n nh
ủ ư ữ ệ ề ề ở nh ng nh ng khái ni m c a Heilig đã tr thành ti n đ cho VR sau này.
ỹ ư ủ ữ ữ ườ ầ ể Nh ng k s c a Công ty Philco là nh ng ng i đ u tiên phát tri n HMD vào
ệ ố ắ ả ọ ộ ồ 1961, g i là Headsight. Cái mũ s t bao g m m t màn nh và h th ng theo dõi video
ế ớ ữ ộ ệ ố ọ ự ị ạ ỹ ư đã nh ng k s liên k t t ử ụ i m t h th ng camêra m ch đóng. H d đ nh s d ng
ể ộ ườ ể ộ ố HMD trong các tình hu ng nguy hi m m t ng i có th quan sát m t môi tr ườ ng
ự ự ừ ề ằ ầ ỉ th c s t xa, đi u ch nh góc quay camera b ng cách quay đ u. Bell Laboratories đã
ữ ự ế ọ ớ ử ụ s d ng HMD cho nh ng phi công lai máy bay tr c thăng. H liên k t HMD v i
ạ ắ ữ ể ồ nh ng camera h ng ngo i g n bên ngoài máy bay giúp phi công có th nhìn rõ ngay
ườ ế ả c trong môi tr ng thi u ánh sáng.
ề ộ ọ Vào 1965, m t nhà khoa h c máy tính có tên Ivan Sutherland hình dung đi u mà
ử ụ ể ọ ộ ị ườ ông ta g i là "Ultimate Display". S d ng hi n th này, m t ng ộ ể ấ i có th th y m t
ế ớ ả ư ế ớ ậ ệ ậ ị ướ th gi i o hi n ra nh th gi ề i v t lý th t. Đi u này đã đ nh h ộ ầ ng toàn b t m
ề ệ ồ ủ nhìn v VR. Khái ni m c a Suntherland bao g m :
ế ớ ả ể ộ ộ M t th gi i o mà ta có th quan sát thông qua m t HMD
ể ộ ờ ự M t máy tính đ duy trì các mô hình trong th i gian th c
Các kh năng cho ng
ả ườ ử ụ ố ượ ữ ể i s d ng đ thao tác nh ng đ i t ng th c t ự ế ộ m t
ự ấ cách tr c quan nh t.
ủ ặ 1.3 Các đ c tính chính c a VR
ư ủ ươ ặ Nh trên đã trình bày, 2 đ c tính chính c a VR là T ắ ng tác và Đ m chìm, đây
ớ Nhóm 22 L p KTPM2K7
ề ườ ế ầ là hai "I" (Interactive, Immersion) mà nhi u ng i đã bi ặ t. Tuy nhiên VR c n có 1 đ c
ứ
GV: Vũ Đ c Huy
6
ứ ườ ể ớ ộ ệ ố ỉ ươ ườ tính th 3 mà ít ng i đ ý t i. VR không ch là m t h th ng t ng tác Ng i Máy
ứ ụ ủ ớ ả ề ậ ế tính, mà các ng d ng c a nó còn liên quan t ệ i vi c gi ấ i quy t các v n đ th t trong
ự ứ ể ậ ọ ế ế ụ ỹ k thu t, y h c, quân s ,...Các ng d ng này do các nhà phát tri n VR thi ề t k , đi u
ộ ấ ụ ề ả ưở ượ ủ ườ này ph thu c r t nhi u vào kh năng T ng t ng c a con ng ặ i, đó chính là đ c
ợ ủ ứ ủ ể ổ tính "I" (Imagination) th 3 c a VR. Do đó có th coi VR là t ng h p c a 3 y u t ế ố :
ươ ưở ượ ế T ắ ng tác Đ m chìm T ng t ng, (3 I trong ti ng Anh: Interactive Immersion
Imagination)
ộ ệ ố ầ 1.4 Các thành ph n m t h th ng VR
ữ ầ ổ ộ ồ T ng quát m t VR bao g m nh ng thành ph n sau
ầ ủ ộ ệ Hình 1.1 Các thành ph n c a m t h thông VR
ầ ứ 1.4.1 Ph n c ng (Hardware)
ầ ứ ủ ộ ồ Ph n c ng c a m t VR bao g m:
Máy tính (PC hay Workstation v i c u hình đ h a m nh).
ớ ấ ồ ọ ạ
Các thi
ế ị ầ ể ộ ị ị t b đ u vào (Input devices): B dò v trí (position tracking) đ xác đ nh
ớ Nhóm 22 L p KTPM2K7
ể ể ệ ộ ị ị ị ị v trí quan sát. B giao di n đ nh v (Navigation interfaces) đ di chuy n v trí
ứ
GV: Vũ Đ c Huy
7
ườ ử ụ ệ ử ỉ ư ộ ng ữ ệ i s d ng. B giao di n c ch (Gesture interfaces) nh găng tay d li u
ể ườ ử ụ ố ượ ể (data glove) đ ng ể ề i s d ng có th đi u khi n đ i t ng.
Các thi
ế ị ầ ị ồ ọ ư ể ồ t b đ u ra (Output devices): g m hi n th đ h a (nh màn hình,
ể ổ ế ị ể HDM,..) đ nhìn đ ượ ố ượ c đ i t ng 3D n i. Thi t b âm thanh (loa) đ nghe đ ượ c
ồ ả ư ả ộ âm thanh vòm (nh HiFi, Surround,..). B ph n h i c m giác (Haptic feedback
ờ ắ ể ạ ố ượ ư ả ộ ồ nh găng tay,..) đ t o xúc giác khi s , n m đ i t ự ng. B ph n h i xung l c
ể ạ ự ư ạ ộ ườ (Force Feedback) đ t o l c tác đ ng nh khi đ p xe, đi đ ng xóc,...
ầ ề 1.4.2 Ph n m m (Software)
ủ ề ầ ồ ư ố ớ ấ ứ ộ ệ ố Ph n m m luôn là linh h n c a VR cũng nh đ i v i b t c m t h th ng
ề ặ ấ ứ ữ ậ ệ ể ắ ạ máy tính hi n đ i nào. V m t nguyên t c có th dùng b t c ngôn ng l p trình hay
ồ ọ ề ể ầ ỏ ố ph n m m đ h a nào đ mô hình hóa (modelling) và mô ph ng (simulation) các đ i
ụ ư ủ ữ ể ễ ượ t ng c a VR. Ví d nh các ngôn ng (có th tìm mi n phí) OpenGL, C++, Java3D,
ề ầ ươ ư ạ VRML, X3D,. ..hay các ph n m m th ng m i nh WorldToolKit, PeopleShop,...
ủ ấ ỳ ụ ề ả ạ ầ ả ả Ph n m m c a b t k VR nào cũng ph i b o đ m 2 công d ng chính: T o hình vào
ố ượ ỏ ủ ượ ề ầ ờ Mô ph ng. Các đ i t ng c a VR đ c mô hình hóa nh chính ph n m m này hay
ể ừ ế ế ề ầ ờ chuy n sang t các mô hình 3D (thi t k nh các ph n m m CAD khác nh ư
ề ả ầ ả ộ ỏ ọ AutoCAD, 3D Studio,..). Sau đó ph n m m VR ph i có kh năng mô ph ng đ ng h c,
ử ủ ố ượ ỏ ứ ự ọ ộ đ ng l c h c, và mô ph ng ng x c a đ i t ng.
ế ị ơ ả 1.5 Các thi t b c b n
ế ị ướ ể ộ 1.5.1 Thi ị t b đ nh h ng và chuy n đ ng
DataGloves
ế ị ườ ả ả ậ ượ ả ộ Thi t b đo l ng bàn tay ph i c m nh n đ ủ c c đ cong c a các ngón tay và
ự ị ướ ủ ổ ự ờ ạ ầ ị v trí, s đ nh h ng c a c tay trong th i gian th c. Thi ế ị ươ t b th ng m i đ u tiên là
ừ ệ ứ ẹ ồ DataGloves t vi n nghiên c u VPL. DataGloves bao g m 1 găng tay nylon nh có các
ớ Nhóm 22 L p KTPM2K7
ọ ượ ắ ở ế ả c m bi n quang h c đ c g n các ngón tay.
ứ
GV: Vũ Đ c Huy
8
Hình 1.2 DataGloves
3D Mouse and SpaceBall
Hình 1.3 3D Mouse và SpaceBall
ự ế ả ộ ộ ị Chu t Logitech 3D d a trên m t m ng các v trí siêu âm tham chi u, đó là 1 cái
ặ ở ề ồ ệ ki ng g m 3 loa siêu âm đ t 3 góc tam giác phát ra tín hi u siêu thanh. Nó đ ượ ử c s
ể ế ị ị ướ ể ộ ị ụ d ng đ theo dõi thi t b thu, đ nh h ầ ng và chuy n đ ng. Nó qui đ nh thành ph n
ớ Nhóm 22 L p KTPM2K7
ấ ả ứ ự ủ ỷ ệ ử c a t l g i ra trong t t c 6. m c t do: X, Y, Z, Pitch, Yaw, và Roll.
ứ
GV: Vũ Đ c Huy
9
Hình 1.4 Mouse
Shutter glasses
Hình 1.5 Shutter glasses
ớ Nhóm 22 L p KTPM2K7
HeadMounted Displays
ứ
GV: Vũ Đ c Huy
10
Hình 1.6 HeadMounted Displays
Cave
ướ ượ ặ CAVE là 1 nhà hát có kích th c 10 X 10 X 9 đ ớ c đ t bên trong 1 phòng l n
ướ ả ượ ế ơ h n có kích th c 35 X 25 X 13. Phòng bên ngoài ph i đ ố c chi u sáng trong su t
ử ụ ứ ườ ủ ượ ạ ế ở quá trình s d ng CAVE. Các b c t ng c a CAVE đ c t o b i các màn chi u và
ứ ế ế ộ ộ ả ị ẳ sàn nhà cũng là m t màn chi u th ng đ ng. Máy chi u đ phân gi ể i cao hi n th hình
ả ứ ấ ằ ả ộ ươ ế ả ườ nh lên toàn b nh ng màn nh khác b ng các t m g ng ph n chi u. Ng i dùng
ặ ệ ể ể ấ ẽ s đi vào bên trong CAVE và đeo 1 chiêc kinh đ c bi ữ t đ có th nhìn th y nh ng
ữ ề ế ể ả ớ ị ườ hình nh 3 chi u mà CAVE hi n th . V i nh ng chi c kính này ng i dùng có th ể
ố ượ ấ ự ự ổ ể ạ th y các đ i t ng th c s n i trong không khí và có th đi l i xung quanh chúng.
ệ ử ế ề ả ả ớ ượ Đi u này la hoàn toàn kh dĩ v i các c m bi n đi n t ủ . Khung c a CAVE đ c làm
ừ ệ ể ể ộ ố ế ấ ả ừ t inox không t tính đ có th can thi p m t cách t ệ t nh t vào các c m bi n đi n
ộ ườ ạ ọ ượ ủ ể ộ ở ừ t . Khi m t ng i đi l i trong CAVE, chuy n đ ng c a h đ c theo dõi b i các
ẽ ề ẽ ể ế ệ ợ ỉ ả c m bi n này và video s đi u ch nh cho phù h p. Máy tính s ki m soát vi c này
ư ả ữ ề ấ ạ ượ ặ ủ c a CAVE cũng nh c khía c nh âm thanh n a. Có r t nhi u loa đ c đ t trong
ướ ề ề ả ả ộ ỉ CAVE d i nhi u góc đ giúp cho không ch có hình nh 3 chi u mà có c âm thanh
ớ Nhóm 22 L p KTPM2K7
ề ữ 3 chi u n a.
ứ
GV: Vũ Đ c Huy
11
Hình 1.7 Cave
1.5.2 Thi ế ị ươ t b t ả ồ ng tác và ph n h i
ế ị ộ ố ả ố ế ị Các thi ậ t b này c m nh n m t s nhân t ủ sau c a thi t b khác gây ra: nhi ệ t
ạ ự ự ự ể ể ộ ộ ậ ố đ , v n t c di chuy n, s chuy n đ ng, áp l c và các ngo i l c khác.
CyberTouch
ớ Nhóm 22 L p KTPM2K7
Hình 1.8 CyberTouch
ứ
GV: Vũ Đ c Huy
12
CyberGrasp
Hình 1.9 CyberGrasp
ộ ố ứ ụ ủ 1.6 M t s ng d ng chính c a VR
ạ ướ ể ể ấ ậ ượ ứ T i các n c phát tri n, chúng ta có th nh n th y VR đ ụ c ng d ng trong
ự ự ế ậ ọ ọ ỹ ả ứ ọ m i lĩnh v c: Khoa h c k thu t, ki n trúc, quân s , gi i trí,... và đáp ng m i nhu
ụ ươ ụ ề ạ ọ ứ ầ c u: Nghiên c u Giáo d c Th ố ự ứ ng m i. Y h c là lĩnh v c ng d ng truy n th ng
ượ ứ ụ ụ ệ ậ ả ạ ủ c a VR. Bên c nh đó VR cũng đ c ng d ng trong giáo d c, ngh thu t, gi i trí.
ự ự ượ ứ ề ở ụ ấ ướ Trong lĩnh v c quân s , VR cũng đ c ng d ng r t nhi u các n ể c phát tri n.
ứ ụ ề ạ ố ở ộ ố ứ ớ ổ ụ Bên c nh các ng d ng truy n th ng trên, cũng có m t s ng d ng m i n i lên
ứ ứ ụ ủ ư ấ ả ầ ờ ụ trong th i gian g n đây c a VR nh : VR ng d ng trong s n xu t, VR ng d ng
ụ ứ ể ầ ố ỏ ị ể trong ngành rôb t, VR ng d ng trong hi n th thông tin (thăm dò d u m , hi n th ị
ứ ụ ề ể ố ớ ạ thông tin kh i,....) VR có ti m năng ng d ng vô cùng l n. Có th nói tóm l ộ i m t
ộ ố ự ế ả ể ứ ự ụ ề ề ậ ọ đi u: M i lĩnh v c "có th t " trong cu c s ng đ u có th ng d ng "th c t o" đ ể
ứ ệ ể ơ nghiên c u và phát tri n hoàn thi n h n.
1.6.1 Quân sự
ẽ ượ ệ ể ớ ự ệ ấ ủ V i vi c phát tri n c a VR, các binh sĩ s đ c hu n luy n 1 cách tr c quan
ớ Nhóm 22 L p KTPM2K7
ấ ế ư ướ nh t các kĩ năng cân thi t nh : lái máy bay, lai xe tăng, . .. tr c khi tham gia công
ứ
GV: Vũ Đ c Huy
13
ự ế ệ ừ ả ừ ề ả ế ượ vi c th c t . Đi u này v a b o đ m an toàn cho binh sĩ, v a ti ệ t ki m đ c chi phí
ẽ ầ ư ế ị ệ ầ ấ cho các khoa hu n luy n th c t ừ ư ự ế L u Năm Góc v a đ a ra quy t đ nh s đ u t . 36
ệ ể ặ ộ ộ ệ ệ ằ ấ ỹ ể tri u USD cho quân đ i M đ phát tri n m t game đ c bi t nh m hu n luy n binh
ạ ố ướ ạ ớ ệ ố ủ ế ậ ố sĩ ch ng l i kh ng b d i d ng chi n thu t th c t o ơ ặ ự ế ả .V i h th ng trò ch i đ c
ệ ậ ủ ể ậ ữ ữ ạ bi ệ t này, nh ng binh sĩ có th t p luy n nh ng bài t p c a mình ngay t ằ i nhà nh m
ạ ự ế ữ ố ẽ ộ ố ch ng l ể i nh ng tình hu ng có th phát sinh ra trong th c t ấ . Đây s là m t game r t
ộ ộ ớ ườ ố ả ớ ố s ng đ ng, có tình hành đ ng cao v i môi tr ng và b i c nh bám sát v i th c t ự ế .
ữ ườ ả ậ ụ ẽ ấ ả ữ ỹ ượ Nh ng ng i lính s ph i v n d ng t t c nh ng k năng đã đ c rèn giũa trong
quân đ i.ộ
ự ế ả ả ằ ọ Hình 1.10 Binh lính h c nh y dù b ng th c t o
1.6.2 Giáo d cụ
Ở ướ ươ ệ ở ề ọ ớ các n c ph ng Tây vi c nhà h c qua Internet không còn là đi u m i m ẻ
ị ơ ấ ệ ẽ ệ ề ở ố ữ n a. Và công ngh VR s làm cho vi c này tr nên thú v h n r t nhi u. Gi ng nh ư
ậ ạ ề ệ ạ ạ ộ ạ ể m t game MMORPG b n đi u khi n 1 nhân v t đ i di n cho b n đi l i trong 1
ườ ượ ấ ứ ớ ự ể ạ tr ọ ả ng h c o đ ọ c xây d ng trên máy tính. B n có th tham gia vào b t c l p h c
ớ Nhóm 22 L p KTPM2K7
ả ư ệ ạ ớ ớ o nào mà b n thích, nói chuy n v i nh ng thành viên khác trong l p.
ứ
GV: Vũ Đ c Huy
14
ộ ớ ả ọ ả Hình 1.11 C nh trong m t l p h c o
1.6.3 Xây d ngự
ư ế ạ ạ ố ộ ế ế ươ B n mu n xây nhà. B n thuê m t ki n trúc s thi t k cho ngôi nhà t ng lai
ể ưở ệ ẽ ả ạ ượ ủ ạ c a b n. Anh ta hoàn thành nó trên b n v và li u b n có th t ng t ng ra nó th ế
ư ể ể ượ ắ nào không ?Có th nh ng ch c là không th chính xác đ c. Và khi hoàn thành thì
ủ ạ ư ắ ờ ượ ự ch a ch c nó đã đúng ý c a b n. Gi đây ngôi nhà đó đ c xây d ng trên máy tinh,
ể ạ ư ấ ắ ơ ỏ ạ b n có th đi l i kh p n i trong nhà, xem xét t ng ngõ ngách nh nh t.
1.6.4 Y h cọ
ự ạ ả ả ế ượ ấ ề ề ấ ấ ọ Th c t i o gi i quy t đ c r t nhi u v n đ trong y h c: cung c p môi
ườ ấ ữ ọ ậ ự ứ ệ ỏ tr ng th c hành cho nghiên c u và h c t p, r t h u ích trong vi c mô ph ng các ca
ự ế ủ ẫ ậ ph u thu t tránh gây r i ro trong th c t
ư ậ ự ạ ả ự ủ ộ ố ụ ứ ầ Nh v y th c t ế i o có ng d ng trong h u h t các lĩnh v c c a cu c s ng.
ậ ấ ượ ệ ứ ự ạ ả ụ ủ ớ Qua đó cũng nh n th y đ c ý nghĩa to l n c a vi c ng d ng th c t ở i o, b i
ự ạ ả ữ ế ề ấ ả ế ặ nh ng v n đ khó khăn mà n u không có th c t ấ i o thì r t khó gi ể i quy t ho c hi u
ớ Nhóm 22 L p KTPM2K7
ả ố qu không cao mà chi phí t n kém.
ứ
GV: Vũ Đ c Huy
15
ƯƠ CH NG 2. ữ Ngôn ng VRML
ớ ệ ề 2.1 Gi i thi u v VRML
2.1.1 VRML là gì ?
ữ VRML (Virtual Reality Modeling Language) là ngôn ng mô hình hóa th c t ự ế
ả ộ ị ậ ượ ử ụ ệ ả ế ớ ạ o, m t đ nh d ng t p tin đ c s d ng trong vi c mô t các th gi ố i và các đ i
ồ ọ ươ ượ ế ế ượ t ng đ h a t ề ng tác ba chi u. VRML đ c thi t k dùng trong môi tr ườ ng
ụ ộ ệ ố Internet, Intranet và các h th ng máy khách c c b (local client). VRML còn đ ượ ự c d
ồ ọ ề ề ẩ ổ ộ ở ợ trù tr thành m t chu n trao d i đa năng cho đ h a ba chi u tích h p và truy n thông
ươ ể ượ ử ụ ự ứ ệ ề ấ đa ph ng ti n. VRML có th đ ụ c s d ng trong r t nhi u lĩnh v c ng d ng
ư ự ệ ễ ậ ẳ ạ ọ ỹ ch ng h n nh tr c quan hóa các khái ni m khoa h c và k thu t, trình di n đa
ươ ả ỗ ợ ế ớ ả ụ ẻ ph ệ ng ti n, gi i trí và giáo d c, h tr web và chia s các th gi i o.
ế ả ầ ờ Ra đ i phiên b n đ u tiên vào tháng 10 năm 1994 (VRML 1.0), cho đ n nay
ể ớ ứ ẽ ả ạ ớ VRML đã phát tri n t i phiên b n 2.0 v i các ch c năng m nh m , nhanh chóng tr ở
ể ề ẩ ươ ồ ọ ữ thành chu n phát tri n cho nhi u ch ng trình đ h a. VRML là ngôn ng Interner
ẽ ớ ồ ọ ể ể ấ ặ ả ạ 3D dùng đ phát tri n đ h a 3D trên Web, có c u trúc ch t ch , v i kh năng m nh
ự ụ ứ ẽ ệ ộ ự m , giúp cho vi c xây d ng các ng d ng 3D m t cách nhanh chóng và chân th c
nh t.ấ
ề ị 2.1.2 Đ nh nghĩa v VRML
ữ ử ụ ữ ệ ấ ể ệ Ngôn ng VRML là ngôn ng s d ng mô hình phân c p trong vi c th hi n
ươ ố ượ ủ ượ ử ụ các t ớ ng tác v i các đ i t ng c a mô hình, VRML đ ể ể c s d ng đ phát tri n
ữ ứ ả ả ỏ nh ng hình nh 3D và qung c nh trên Web. Các file VRML có kích th c nh , th ườ ng
không quá 1Mb.
ự ạ ả ứ ữ ộ Ngôn ng mô hình hóa th c t ẩ i o VRML là m t chu n không chính th c đ ể
ệ ề ụ ộ mô t ả ự ế ả th c t ỉ ớ o mà không ph thu c vào h đi u hành thông qua Internet. Ch v i
ể ộ ế ớ ả ề ể ộ ạ m t file text b n có th mô t ả ươ , t ng tác, đi u khi n m t th gi i o mà không b ị
ớ Nhóm 22 L p KTPM2K7
ề ế ạ h n ch nhi u.
ứ
GV: Vũ Đ c Huy
16
ữ ề ả ớ ướ ạ VRML cho phép truy n đi trong m ng nh ng hình nh 3D. V i kích th c kh ả
ầ ớ ớ ỏ ớ ạ ả nh so v i băng thông, ph n l n gi i h n trong kho ng 100 200Kb nên các file
ượ ề ễ ế ạ ả ộ ị VRML đ c truy n đi m t cách khá d dàng. N u HTML là đ nh d ng văn b n thì
ố ượ ạ ệ ợ ự ơ ế ả ị VRML là đ nh d ng đ i t ng 3D. Hi n nay VRML có l i th là s đ n gi n, h tr ỗ ợ
ụ ị d ch v web3D.
ể ủ ử ờ ị
2.1.3 L ch s ra đ i và phát tri n c a VRML
ữ ệ ẩ ộ ở ỏ ươ VRML đã tr thành m t ngôn ng chu n cho vi c mô ph ng t ng tác th gi ế ớ i
ụ ạ ẩ ớ ị ự 3D tren Web. V i m c đích xây d ng đ nh d ng chu n cho phép mô t ả ế ớ th gi ự i th c
ạ ườ ẩ ở trên máy tính mà cho phép ch y trên môi tr ng web, VRML đã tr thành chu n ISO
ừ t năm 1997.
ờ ở ộ ượ ổ ứ ầ VRML ra đ i vào mùa xuân năm 1994 ị h i ngh WWW đ ch c đ u tiên c t
ụ ổ ứ ọ ạ t i Gieneva, Th y Sĩ. Tim BernersLee và Dave Raggett đã t ch c ra phiên h p có tên
ể ả ự ế ả ề là Birds of a Feather (BOF) đ mô t ệ giao di n th c t o trên WWW. Nhi u thành
ự ọ ả ự ự ự ệ ệ ề viên tham d phiên h p BOF đã mô t nhi u d án th c hi n vi c xây d ng các công
ị ồ ọ ữ ữ ề ụ ể c hi n th đ h a 3D cho phép có nhi u thao tác h u ích trên Web. Nh ng thành viên
ự ầ ấ ế ụ ữ ộ ồ này đã nh t trí đ ng ý s c n thi t cho các công c này có m t ngôn ng chung, ph ổ
ế ệ ạ ạ ị ế bi n cho đ nh d ng, xác đ nh vi c mô t ả ế ớ th gi i 3D và các siêu liên k t WWW. Vì
ừ ờ ừ ế ụ th c m t “the Virtual Reality Markup Language” ra đ i, t Markup sau đó đã đ ượ c
ấ ự ả ả ể ổ đ i thành Modelling đ ph n ánh b n ch t t ủ nhiên c a VRML.
ắ ọ ờ ổ ứ ộ Sau phiên h p BOF m t th i gian ng n thì t ch c wwwvrml mailing list đ ượ c
ể ậ ự ưở ự ả ầ ậ thành l p đ t p trung vào xây d ng phiên b n VRML đ u tien. S h ứ ng ng l ờ i
ờ ủ ổ ứ ế ầ ộ ộ ờ m i c a t ự ch c này kéo dài đ n m t tu n và có trên m t nghìn khách m i tham d .
ế ủ ổ ọ ủ ị ư ạ ả T i bu i h p ch t ch Mark Pesce đã thông báo ý ki n c a mình là đ a ra phiên b n
ẵ ở ộ ự ả ị phác th o xây d ng VRML đã có s n h i ngh mùa xuân năm 1994 đ ượ ổ c t ứ ch c
ả ủ ả ớ ượ ự ồ m i cách đó 5 tháng. B n phác th o c a Mark Pesce đã có đ c s đ ng ý chung.
ả ộ ậ Vào tháng 3/ 1995 thì có m t th o lu n trên wwwvrml mailing list liên quan
ệ ạ ữ ươ ủ ườ ử ụ ạ ả ớ ế đ n vi c t o ra nh ng t ng tác c a ng i s d ng v i ho t c nh và t ấ ả ọ t c m i
ớ Nhóm 22 L p KTPM2K7
ườ ề ứ ớ ư ự ự ầ ữ ế ế ấ ố ế ng i đ u đi đ n th ng nh t ý ki n nh ng th m i đ a ra đó th c s c n thi t cho
ứ
GV: Vũ Đ c Huy
17
ể ư ộ ớ VRML. Công ty Silicon Graphics c ng tác v i hãng Sony Research và Mitra đ đ a ra
ệ ả ả ớ ủ phiên b n m i cho VRML. B n đ trình c a Silicon Graphics có tên là Moving Worlds
ự ệ ả ả ớ ế ổ ứ đ n t ch c Request for Proposals cho vi c xây d ng phiên b n m i VRML, b n đ ệ
ự ộ ủ ấ ả ứ ộ trình này là m t minh ch ng cho s c ng tác thành công c a t ủ t c các thành viên c a
ạ ầ ả Silicon Graphics, Sony và Mitra. Năm 1996 t ủ i New Orleans, phiên b n đ u tiên c a
ượ ư VRML 2.0 đ c đ a ra.
ổ ứ ố ế ề ẩ ế ấ Vào tháng 7/1996 t ch c ti u chu n qu c t (ISO) đã thông nh t ý ki n phiên
ộ ề ẽ ượ ủ ư ấ ư ả b n năm 1996 c a VRML 2.0 nh là m t đ xu t mà s đ c đ a ra xem xet vào
ề ế ẩ ỏ ượ ư thang 4/1997. Sau khi b phi u v chu n ISO thì VRML97 đ ư ộ c đ a ra nh m t
ẩ chu n ISO vào năm 1997.
ơ ả ủ ể ặ 2.1.4 Đ c đi m c b n c a VRML
ố ượ ệ ế ẩ ị ự ế ả Ti u chu n cho vi c xác đ nh đ i t ng 3D, quang c nh và cho s liên k t các
ớ mô hình v i nhau là:
ụ ứ ạ ầ ộ ả ể Không ph thu c ph n c ng: có th ch y trên các máy tính do các nhà s n
ế ạ ấ xu t khác nhau ch t o.
Có th m r ng: có th ch p nh n các l nh m i do ng
ể ở ộ ệ ể ấ ậ ớ ườ ử ụ i s d ng thêm vào
ặ ị ho c quy đ nh.
Thao tác đ
ượ ế ớ ả ườ ấ c th gi i o thông qua môi tr ng Internet có băng thông th p.
ể ớ Cùng v i VRML thì có th xem thông tin trong mô hình 3D trên Internet. VRML
ượ ế ế ị ế ớ ể ệ đ c thi t k dành riêng cho vi c hi n th th gi ự ở ộ ả i 3D và không ph i là s m r ng
ố ượ ể ị ả ủ c a HTML. HTML có kh năng hi n th các đ i t ộ ng tĩnh và đ ng, các đ i t ố ượ ng
ư ế ế ả ớ multimedia cùng v i các siêu liên k t khác đ n các media khác nh là văn b n, âm
ớ Nhóm 22 L p KTPM2K7
thanh, phim và hình nh.ả
ứ
GV: Vũ Đ c Huy
18
ề ơ ả ủ ấ 2.2 Các v n đ c b n c a VRML
ầ ơ ả ủ 2.2.1 Các thành ph n c b n c a VRML
ệ ả ạ ồ ộ G m các trình duy t (Browses) và b so n th o dành riêng cho ngôn ng ữ
ể ọ ế ệ ố ệ ỉ VRML. Các file ch có th đ c n u h th ng có trình duy t VRML.
ư ệ ệ ố Trình duy t VRML cũng gi ng nh trình duy t Internet( Internet Explorer hay
ượ ệ ợ Fire Fox) và đ c tích h p trong các trình duy t này.
ộ ạ ả ườ ệ B so n th o VRML cho phép ng ề i dùng gõ mã VRML. Hi n nay có nhi u
ư ự ụ ế ể ả ế ộ ạ b so n th o nh ng VRML Pad là khá thông d ng khi có th cho xem tr c ti p k t
ệ ả ầ qu mà không c n qua trình duy t Internet.
ị ụ ể 2.2.2 Công c hi n th VRML
ể ể ử ụ ị ươ Đ hi n th các file VRML thì ta s d ng ch ng trình Cortona VRML Client
ươ ẽ ệ ạ ậ ắ ơ ủ c a hãng Parallrl Graphics. Ch ng trình s giúp b n thu n ti n h n khi xem c c mô
ự ả ộ ộ hình o trên máy tính m t cách tr c quan sinh đ ng.
ầ ướ ặ Yêu c u tr c khi cài đ t Cortona VRML Client:
ệ ề H đi u hành Microsoft® Windows® ME/2000/XP
ệ ở ở Trình duy t Web Internet Explorer 6.0 tr lên, Netscape Navigator 8.0 tr lên,
ở ở Mozilla Firefox 1.5 tr lên, Opera 8.5 tr lên
ở CPU Pentium® II 300 MHz tr lên.
ố ể RAM t i thi u 64 MB.
ộ ả ố ể Đ phân gi i màn hình t i thi u 1024x768.
ồ ọ ỗ ợ ặ Card đ h a h tr 3D và cài đ t DirectX 9
ươ ớ ầ ư ế ệ Cortona VRML Client t ng thích v i h u h t các trình duy t nh Internet
ụ Explorer, Netscape Browser, Mozilla, Mozilla Firefox và các công c văn phòng nh ư
ớ Nhóm 22 L p KTPM2K7
Word, PowerPoint...
ứ
GV: Vũ Đ c Huy
19
ủ ẽ ễ Tính năng c a Cortona VRML ClientCortona VRML Client s trình di n toàn
ư ả ộ ườ ạ ứ ộ b mô hình 3D trên máy tính m t cách hoàn h o nh khi ng ụ i t o ra đó. ng d ng
ộ ệ ứ ệ ố ư ỉ ề hoàn ch nh trên toàn b hi u ng trên nhi u h th ng nh Flash, DirectX9, MPEG4...
ộ ứ ẽ ượ ụ ạ ấ ộ ỏ Khi b n truy xu t vào m t ng d ng VRML, toàn b hình mô ph ng s đ c trình
ễ ươ ở ấ ấ ượ ề ạ ắ di n t ng tác trên n n 3D d ng m . R t n t ắ ng và b t m t.
ủ ậ 2.2.3 T p tin c a VRML
ể ạ ủ ậ ừ ề ạ ả T p tin c a VRML có th t o ra t ộ nhi u cách: dùng m t trình so n th o văn
ể ạ ở ộ ư ư ầ ặ ả ớ ả b n nh Nopepad đ so n th o, sau đó l u file v i ph n m r ng là. wrl. Ho c ta co
ể ạ ư ả ả ạ ộ ạ th so n th o trên m t trình so n th o dành riêng cho VRML nh VRML Pad và ch y
ự ế ứ ụ tr c ti p ng d ng.
ư ầ ồ ộ M t file VRML g m có các ph n nh : header, scene graph, prototype và event
routing.
Header: dùng đ nh n d ng t p tin VRML và cách mã hóa. Header c a file
ủ ể ạ ậ ậ
ắ ầ ệ ầ ấ ấ ấ ằ ầ VRML b t đ u b ng d u #. Ngoài l n xu t hi n đ u tiên ra thì d u # đánh
ề ủ ữ ầ ạ ấ d u nh ng gì theo sau nó là ph n chú thích. File tiêu đ c a VRML có d ng:
ả #VRML V1.0 ascii dành riêng cho phiên b n VRML 1.0 và #VRML V2.0 utf8
ả dành cho phiên b n 2.0.
ữ ả ố ượ các đ i t ộ ng và các thu c tính đi kèm. ứ Scene Graph: ch a nh ng node mô t
ả ệ ồ ư ộ ố ượ ầ Nó g n nh m t cây ph h g m các nhóm đ i t ng.
Prototype: cho phép m t t p các nút ki u VRML đ
ộ ậ ể ượ ở ộ ở c m r ng b i ng ườ ử i s
ể ượ ể ị ụ d ng. Các đ nh danh ki u này có th đ c bao hàm trong file (mà chúng đ ượ c
ị ở ử ụ s d ng) hay đ nh nghĩa bên ngoài (file đó).
Event routing: m t s nút có th phát sinh nh ng s ki n đáp tr nh ng thay
ự ệ ộ ố ữ ữ ể ả
ườ ươ ườ ổ đ i môi tr ng do t ng tác phía ng i dùng. “Event routing” cho phép m t s ộ ự
ệ ượ ệ ố ữ ế ề ừ ki n phát sinh đ c truy n đ n các “đích” nh ng nút trong h th ng, t đó
ớ Nhóm 22 L p KTPM2K7
ệ ố ữ ổ gây ra nh ng thay đ i cho riêng nút đó và h th ng
ứ
GV: Vũ Đ c Huy
20
ể ế ề 2.3 Tìm hi u chi ti t v VRML
ố ượ ọ ơ ả ự 2.3.1 Xây d ng các đ i t ng hình h c c b n
ế ớ ộ ượ ấ ạ ừ ố ượ ư M t th gi i VRML đ c c u t o nên t các đ i t ọ ng hình h c nh : hình
ụ ả ầ ộ h p, hình tr , hình nón, hình c u, văn b n.
ố ượ ế ượ ể ị ẻ Shape là th mà các đ i t ng trong nó đ u đ c hi n th . Trong node Shape
ọ ượ ạ ỉ ẽ ế có node con là geometry ch rõ d ng hình h c đ c v ra th nào. Node geometry co
Box hình h pộ
ộ các thu c tính:
Ví d :ụ
Shape{
geometry Box{ size 2.0 2.0 2.0 }
}
Các tham số
ề ộ ề ề
size X Y Z (chi u r ng, chi u cao, chi u sâu)
Cone hình nón
Ví d :ụ
Shape{
Geometry Cone{
height 2.0
bottomRadius 1.0
bottom TRUE
side TRUE
}
}
Các tham số
ủ ề
height X
: chi u cao c a hình nón
ủ
bottomRadius Y : bán kính c a đáy
ớ Nhóm 22 L p KTPM2K7
ứ
GV: Vũ Đ c Huy
21
ệ ẩ bottom TRUE / FALSE : hi n / n đáy
ệ ặ ẩ
side TRUE / FALSE : hi n / n m t bên
Cylinder : v hình tr
ẽ ụ
Ví d :ụ
Shape{
Geometry Cylinder{
height 2.0
radius 1.0
bottom TRUE
top TRUE
side TRUE
}
}
Các tham số
ề height X : chi u cao
ặ radius Y : bán kính m t đáy
ệ ặ ẩ bottom TRUE / FALSE : hi n / n m t đáy
ệ ẩ top TRUE / FALSE : hi n / n m t n p ặ ắ
ệ ẩ ặ side TRUE / FALSE : hi n / n các m t bên
ẽ ầ Sphere : v hình c u
Ví d :ụ
Shape{
Geometry Cylinder{
Radius 1.0
}
}
Các tham số
ớ Nhóm 22 L p KTPM2K7
Radius X : bán kính
ứ
GV: Vũ Đ c Huy
22
Text : văn b nả
ứ ạ ộ ố ự 2.3.2 Xây d ng m t s hình ph c t p
Cú pháp
Shape{
Geometry Text{
String [“Text”,”Shape”]
fontStyle FontStyle{
family “SERIF”
style “BOLD”}
}
}
Các tham số
ả ộ string [“N i dung văn b n”]
family SERIP / SANS / TYPEWRITER
style BOLD / ITALIC / BOLDITALIC / PLAIN
ủ ữ size X : chi u cao c a ch ề
spacing Y :
justify FIRST / BEGIN / MIDDLE / END
ọ
horizontal TRUE / FALSE : trình bày ngang / d c màn hình
ừ ả
leftToRight TRUE / FALSE : trình bày t
ph i / trái sang
ừ
topToBottom TRUE / FALSE : trình bày t
trên / d ướ i
Ví dụ
Shape{
Geometry Text{
String [“Hi all, Today is fine.”]
fontStyle FontStyle{
family “TYPEWRITER”
style “plain”
ớ Nhóm 22 L p KTPM2K7
horizontal TRUE
ứ
GV: Vũ Đ c Huy
23
justify “MIDDLE”
leftToRight TRUE
size 0.9
spacing 1.0
topToBottom TRUE
}
Lenght [6]
maxExtent 6
}
}
ườ ệ ọ ộ ề ẳ ự Xây d ng các đ ng th ng trong h t a đ ba chi u
ộ ậ ẻ ợ ị ườ ệ ọ ẳ Th IndexedLineSet xác đ nh m t t p h p các đ ng th ng trong h t a đ ộ
ế ớ ủ ề ậ ợ ươ ứ không gian ba chi u c a th gi i VRML và t p h p các màu t ng ng cho các
ườ đ ẳ ng th ng đó.
ẻ ộ Th này có các thu c tính:
ầ ấ
ố ớ ườ ườ ả ế ng color không nh t thi t ph i ạ ẳ ng coord. Ch ng h n khi
Coord và color: s thành ph n trong tr ố ầ thành ph n trong tr ị
ằ b ng v i s ậ colorPerVexter nh n giá tr là FALSE.
ộ ỉ ố ứ ự ạ
CoordIndex: bao g m m t dãy ch s th t ồ ụ
ẳ ể ấ ố ớ
ườ ố ớ ẻ ể ả ứ ị ượ
ở ng th ng: m t đ
ẳ ộ ườ ể ả cho các đi m nh t o nên ượ ẳ c ng th ng đ ứ ứ ứ c xác đ nh trong th Coordinate. ệ ế t hình dãy kí hi u 1 cho bi ạ ẳ ộ ườ ng th ng t o ạ ẳ ng th ng khác t o
ấ ố ớ ố ớ ườ đ ng th ng. Ví d colorIndex [0 1 2 3] có nghĩa là đ ể ứ ạ ở t o b i đi m th nh t n i v i đi m th hai,th hai n i v i th ba, th ố ớ ứ ư ba n i v i th t , các đi m nh đ ụ ộ M t ví d khác coordIndex [0 1 1 2 3] ườ ượ ạ ả c t o trong VRML g m hai đ nh đ ứ ể ứ ở b i đi m th nh t n i v i đi m th hai và m t đ ứ ể ở b i đi m th ba n i v i th t ồ ể ứ ư .
ượ ử ụ ậ
ColorIndex: đ
ị
ườ ậ ẻ
ể ả ế ậ ầ ả ắ ỗ ị c s d ng khi colorPerVexter nh n giá tr FALSE, khi ể ỏ ậ ng colorINdex colorPerIndex nh n giá tr TRUE thì có th b qua tr ị ế ở trong th IndexedLineSet b i vì n u colorPerIndex nh n giá tr TRUE ộ thì b t bu c ph i thi t l p m u cho m i đi m nh.
ậ
ạ ả
ColorPerVexter: có giá tr boolean. Khi colorPerVexter nh n giá tr ị ẽ i hai
n th ng s là màu trung bình c hai màu t
ủ ườ ườ ể ả ạ TRUE thì màu c a đ đi m nh t o nên đ ị ẳ ẳ ng th ng.
ớ Nhóm 22 L p KTPM2K7
Cú pháp
ứ
GV: Vũ Đ c Huy
24
IndexedLineSet{
Coord coordinate[]
coordIndex
color Color[]
colorIndex[]
colorPerVexter TRUE
}
Ví dụ
Shape{
Appearance Appearance{}
Geometry IndexedLineSet{
Coord Coordinate{
Point[
0.0 0.0 0.0,0.0 4.0 0.0, 2.0 0.0 0.0,]
}
Color Color{
Color[
1.0 1.0 1.0,1.0 0.0 0.0,0.0 0.0 1.0
]
}
coordIndex[
0 1 2 0
]
colorPerVexter TRUE
}
}
Xây d ng khung b m t trong không gian
ề ặ ự
ề ặ ằ ế ợ ẽ ạ ể ẻ ớ Th IndexedFaceSet s t o lên b m t b ng cách k t h p các đi m v i nhau.
Cú pháp
ớ Nhóm 22 L p KTPM2K7
IndexedFaceSet
ứ
GV: Vũ Đ c Huy
25
{
Coord Color[]
coordIndex[]
color color[]
colorIndex[]
colorPerVexter TRUE
convex TRUE
solid TRUE
}
ặ
ở ị
ượ ể ế ả ầ ỉ ẳ Coord, coordIndex, color, colorIndex, colorPerVexter có đ c đi m t ươ ể ng ở c xác đ nh b i các ộ ạ i m t ư ề ặ trên. Chú ý là b m t luôn luôn đ ng th ng khép kín vì th không ph i ch ra đi m đ u tiên l
ườ ự nh đã nói t ườ đ ầ ữ l n n a trong tr ng coord.
Ví dụ
Coord Coordinate
{
Point [0 0 0,1 0 0,1 1 0,0 1 0]
}
ẽ ạ ể ế ể ố ị ằ Đã có b n đi m xác đ nh, khi liên k t các đi m này s t o ra hình vuông b ng
ử ụ ứ ể ằ ộ ấ cách s d ng thu c tính coordIndex[] và coordIndex[0 1 2 3] nói r ng đi m th nh t
ố ớ ố ớ ứ ứ ứ ứ ể ể ể ể ể ố ớ n i v i đi m th hai, đi m th hai n i v i đi m th ba, đi m th ba n i v i đi m
ứ ư ứ ư ố ớ ứ ấ th t ể và đi m th t ể n i v i đi m th nh t.
ị ồ Convex đ nh nghĩa b m t là l
ộ
ườ i hay lõm, tr ỉ ẽ ề ặ ồ ề ặ ệ ộ
ị ể ề ặ ng này có giá tr ki u ẽ ợ ườ ệ ng h p v i, trong tr boolean. B trình duy t VRML ch v b m t l ơ ề ặ ồ ề ặ b m t lõm, b trình duy t chia b m t đó thành các b m t l i bé h n ể ẽ đ v .
Ví dụ
Shape
{
Appearance appearance{}
Geometry IndexedFaceSet
ớ Nhóm 22 L p KTPM2K7
{
ứ
GV: Vũ Đ c Huy
26
Coord coordinate
{
Point[0 0 0,1 1 0,0 1 0,1 1 0,1 0 0,1 0 1]
}
coordIndex[0 1 2 3 1 4 5 6]
color Color
{
Color[1 1 1,1 0 0]
}
colorIndex [0 1]
colorPerVexter FALSE
convex FALSE
solid FALSE
}
}
ướ ả ồ ự Xây d ng khung l i và b n đ trong không gian
ự ẻ ướ ượ ạ ể ở Th ElevationGrip cho phép xây d ng khung l c t o b i các đi m có đ i đ ộ
ấ ữ ự ệ ẻ ạ ị cao xác đ nh trong không gian. Th này r t h u ích cho vi c xây d ng các m ng l ướ i
ặ ị ho c đ a hình.
ự ả ượ ủ ặ ặ ẳ Hình nh xây d ng đ ể c đ t trong không gian c a m t ph ng OXYZ. Đi m
ố ọ ể ộ ạ ạ ướ ả ằ ướ ắ ầ b t đ u là g c t a đ , các đi m còn l i t o nên l i ph i n m theo h ng d ươ ng
ụ ủ c a các tr c OX avf OZ.
Cú pháp
ElevationGrid
{
xDimension 0
xSpacing 0.0
zDimension 0
zSpacing 0.0
ớ Nhóm 22 L p KTPM2K7
height[]
ứ
GV: Vũ Đ c Huy
27
color color[]
colorPerVexter TRUE
convex TRUE
solid TRUE
}
Tham số
ấ ươ ự ư Color, colorPerVexter, convex, solid có tính ch t t ng t nh đã nói ở
ầ ph n trên.
ứ ố ể ướ ằ ụ xDimension ch a s đi m bên trong l i n m trên tr c X.
ứ ố ể ướ ằ ụ zDimension ch a s đi m bên trong l i n m trên tr c Z.
ủ ể ế ả ướ xSpacing là kho ng cách c a hai đi m liên ti p nhau theo h ủ ng c a
ụ tr c X.
ủ ế ể ả ướ zSpacing là kho ng cách c a hai đi m liên ti p nhau theo h ủ ng c a
ụ tr c Z.
ị ộ ứ ủ ể ộ ỗ ướ height ch a m t danh sách các giá tr đ cao c a m i đi m trong l i.
ượ ứ ự ừ ả ừ ố ướ ể Các đi m này đ c tính theo th t t trái sang ph i t trên xu ng d i.
Ví dụ
Shape {
appearance Appearance {
material Material { }
}
geometry ElevationGrid {
xDimension 9
zDimension 9
xSpacing 1.0
zSpacing 1.0
solid FALSE
height [
0.0, 0.0, 0.5, 1.0, 0.5, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 2.5, 0.5, 0.0, 0.0, 0.0,
ớ Nhóm 22 L p KTPM2K7
0.0, 0.0, 0.5, 0.5, 3.0, 1.0, 0.5, 0.0, 1.0,
ứ
GV: Vũ Đ c Huy
28
0.0, 0.0, 0.5, 2.0, 4.5, 2.5, 1.0, 1.5, 0.5,
1.0, 2.5, 3.0, 4.5, 5.5, 3.5, 3.0, 1.0, 0.0,
0.5, 2.0, 2.0, 2.5, 3.5, 4.0, 2.0, 0.5, 0.0,
0.0, 0.0, 0.5, 1.5, 1.0, 2.0, 3.0, 1.5, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 1.5, 0.5,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0,
]
}
}
ả K t quế
ụ ề ự ướ ồ Hình 2.1 Ví d v xây d ng khung l ả i và b n đ
ế ổ
2.3.3 Các phép bi n đ i trong VRML
ầ ủ ế ớ ả ự ặ ọ ộ M t file VRML xây d ng các thành ph n c a th gi ị i o. M c đ nh m i hình
ả ượ ự ề ượ ặ ở ọ ộ ố ế ạ ổ nh đ c xây d ng trong VRML đ u đ c đ t ộ t a đ g c. Bi n đ i là t o ra m t
ệ ụ ọ ộ ớ ệ ị ươ ố ệ ố h th ng h tr c t a đ m i mà h truc này có v trí t ớ ệ ọ ộ ặ ng đ i so v i h t a đ m c
ớ Nhóm 22 L p KTPM2K7
ư ể ế ổ ị đ nh. Có các phép bi n đ i nh : di chuy n, co giãn, xoay.
ứ
GV: Vũ Đ c Huy
29
ứ ạ ơ ả ụ ớ Hình 2.2 Tr c XYZ v i 1 hình c b n và 1 hình ph c t p
ư ế ả ổ ị Nhóm Node Transform qu n lý các phép bi n đ i trong VRML nh : d ch
ể ồ chuy n, co dãn, xoay. Node transform g m có các node con: translation, rotation,
scale, children.
ể Phép di chuy n ( Translation )
Ví d :ụ
Transform {
translation 2.0 0.0 0.0
children [. . . ]
}
Tham s :ố
Phép xoay ( Rotation )
translation X Y Z
Ví d :ụ
Transform {
rotation 0.0 0.0 1.0 0.52
children [. . . ]
}
Tham s :ố
rotation X Y Z Góc
ớ Nhóm 22 L p KTPM2K7
Góc = radians = degrees / 180.0 * 3.141
ứ
GV: Vũ Đ c Huy
30
ể ẽ ố ượ ư ệ ắ L u ý: đ d dàng trong vi c xoay đ i t ề ng theo đúng chi u ta có quy t c
bàn tay ph i.ả
ụ Hình 2.3 Quay theo tr c X, Y, Z
ả ạ ắ ẽ N m bàn tay ph i l ỉ ư i, choãi ngón cái ra theo nh hình v . Ngón tay cái ch
ươ ề ừ ổ ề ươ ủ ụ ế ph ng c a tr c quay thì chi u t c tay đ n các ngón tay chi chi u d ng
ố ượ khi quay đ i t ng.
Scale : co dãn đ i t
ố ượ ng
Ví d :ụ
Transform {
scale 0.5 0.5 0.5
children [. . . ]
}
Tham s :ố
scale X Y Z
Children : Các đ i t
ố ượ ướ ị ả ẽ ẽ ưở ủ ng đ c v trong này s ch u nh h ng c a các phép
ế ổ bi n đ i trong node Transform.
Vi d :ụ
Transform {
translation 2.0 1.0 0.0
children [
Shape {
appearance Appearance {
ớ Nhóm 22 L p KTPM2K7
material Material { }
ứ
GV: Vũ Đ c Huy
31
}
geometry Cylinder {
radius 0.3
height 6.0
top FALSE
}
}
]
}
Shape {
Geometry Box { size 1.0 1.0 1.0}
}
ớ ọ ộ ố ụ ẽ ị ư ụ ụ ể Nh ví d trên thì hình tr s d ch chuy n so v i t a đ g c theo tr c X là
ụ ằ ộ 2.0 và theo tr c Y là 1.0, còn hinh h p thì n m t ạ ọ ộ ố i t a đ g c
ắ 2.3.4 Màu s c trong VRML
ố ượ ể ể ặ ị ẽ ẽ ắ ạ Các đ i t ng khi v s có m c đ nh là màu tr ng và b n có th ki m soát các
ư ứ th nh : Shading color, Glow color, Transparency, Shininess, Ambient intensity. Màu
ượ ể ệ ố ớ ắ s c trong VRML đ c th hi n qua 3 thông s là R G B( redgreenblue) v i giá tr ị
ả ừ ằ n m trong kho ng t ế 0.0 đ n 1.0.
ằ ệ ả Node material n m trong node appearance qu n lý vi c này. Node material có
các node con là :
diffuseColor : màu s c khuy t tán
ế ắ
emissiveColor : màu s c c a ánh sáng phát ra t
ắ ủ ừ ố ượ đ i t ng
transparency : đ trong su t ( 0 : t
ộ ố ố ờ i m , 1 : nét )
ambientIntensity : xác đ nh hàm l
ị ượ ố ượ ế ng ánh sáng mà đ i t ả ng ph n chi u
specularColor : cho bi
ế ề ặ ủ ố ượ ắ ủ t màu s c c a các pixel trên b m t c a đ i t ng
shininess : c
ớ Nhóm 22 L p KTPM2K7
ườ ộ ng đ sáng
ứ
GV: Vũ Đ c Huy
32
Ví d : ụ not
Shape {
appearance Appearance {
material Material {
diffuseColor 0.8 0.8 0.8
emissiveColor 0.0 0.0 0.0
transparency 0.0
specularColor 0.71 0.70 0.56
shininess 0.16
ambientIntensity 0.4
}
}
geometry. . .
}
2.3.5 Nhóm node
ố ượ ể ơ ẻ ố ượ Ta có th nhóm các đ i t ng đ n l ữ thành nh ng đ i t ệ ứ ạ ng ph c t p. Vi c
ộ ượ ạ ộ ồ ấ ộ ặ đ t m t nhóm này vào nhóm kia t o thành m t l c đ c u trúc các node. M t node
ể ặ ấ ườ trong nhóm có th có b t kì các node con nào đ t bên trong tr ng children.
ượ ỗ ợ Có các node nhóm sau đ c h tr trong VRML: Anchor, Billboard, Group,
Switch, Transform, Inline
ộ ậ ố ượ ợ ế ế ng và cách liên k t đ n ị Anchor: cho phép xác đ nh m t t p h p các đ i t
ế ế ế ớ ư ạ ẳ ộ ộ ế m t url, ch ng h n nh là m t siêu liên k t đ n th gi ộ i VRML khác, đ n m t
ộ ữ ệ ệ ế ặ ộ ể ọ trang HTML ho c đ n m t d li u nào đó mà toàn b trình duy t có th đ c
ố ượ ượ đ ộ c. Khi kích vào m t trong các đ i t ng bên trong node Anchor thì toàn b ộ
ệ ẽ ư ố ượ ư ế ộ ị ỉ trình duy t s đ a đ n đ a ch url. Khi đ a chu t qua đ i t ứ ng nào đó ch a
ấ ượ ị ủ ể ỉ trong node thì có th nhìn th y đ c đ a ch url c a nó.
Ví dụ
Anchor{
ớ Nhóm 22 L p KTPM2K7
Children[
ứ
GV: Vũ Đ c Huy
33
Shape{
Geometry Sphere{}}]
url http://www.cuasoit.com
description “Toi trang web cua lop CT 901”
}
ộ Các thu c tính
ứ ấ ả t c các node bên trong nhóm
children: ch a t
ề ặ
url: cho bi
ỉ ế ị t đ a ch url đ ộ ể ữ ệ ượ ệ ẽ ị ị
ứ ự ư ầ ả ế c tìm ki m. Có th có nhi u v trí đ t trong ế url, khi đó b trình duy t s tìm ki m d li u trong các v trí này theo th t u tiên gi m d n.
ệ ấ ộ ụ
parameter: cung c p thông tin thêm vào cho b trình duy t. Cho ví d
ử ổ ầ ể ỉ ể ị có th ch rõ là c a s c n xem mà url hi n th vào đó.
ẽ ể ị ườ i dùng di
description: đ a ra m t xâu, xâu này s hi n th khi ng
ộ ộ ứ ư ố ượ chu t qua đ i t ng ch a trong node Anchor.
ữ ậ ộ ị
ấ ả ị ủ ộ
bboxCenter: xác đ nh trung tâm c a m t hình h p ch nh t mà nó bao ủ ể ng này là m t đi m
ộ ườ t c các node trong nhóm. Giá tr c a tr
quanh t trong không gian.
ậ ộ
ườ
ườ ị
ặ ơ
ườ ế
bboxSize: xác đ nh kích th ữ ướ ủ ị ấ ả c c a hình h p ch nh t bao quanh t t c ặ ị ị các node trong nhóm. M c đ nh tr ng này có giá tr 1 1 1 nghĩa là ấ ả ộ ầ ủ không có hình h p nào. T t c các giá tr thành ph n c a tr ng này là ế ấ ả ằ ằ ớ l n h n ho c b ng 0.N u t t c các node con không n m trong hình ị ả ộ h p thì k t qu không xác đ nh. Hai tr ng bboxCenter và bboxSize là tùy ch n.ọ
ộ ậ ể ơ ư ự ậ ạ ộ ợ ể Group: t o ra m t t p h p các v t th nh là m t th c th đ n. Node này có
ườ ườ ươ ự các tr ng: ng này t ng t nh ư children, bboxCenter, bboxSize. Các tr
ể ấ ả ủ c a node Anchor. T t c các node con trong ị ề Group đ u hi n th .
Ví d :ụ
Group{
Children[]
bboxCenter 0 0 0
bboxSize 1 1 1
ớ Nhóm 22 L p KTPM2K7
}
ứ
GV: Vũ Đ c Huy
34
ể ạ ộ ộ ỉ ượ c ổ Switch: t o ra m t nhóm chuy n đ i. Ch có m t node con trong nhóm đ
ể ị ườ ự ọ hi n th . Và node này là do ng i dùng l a ch n. Node con tuy t đ i đ ệ ố ượ c
ố ừ ự ọ đánh s t 0, không l a ch n đánh là 1.
Ví d :ụ
ộ Các thu c tính:
whichChoice
choice
Transform: xác đ nh h tr c t a đ m i cho các đ i t
ệ ụ ọ ộ ớ ố ượ ị ộ ng trong cùng m t
ượ ở nhóm. Node này đã đ c trình bày trên.
Billboard: node này t o ra m t nhóm v i h t a đ d c bi
ớ ệ ọ ộ ặ ạ ộ ệ ấ ả t. T t c các node
ề ượ ể ị ượ ệ trong nhóm đ u đ ệ ọ ộ c hi n th . H t a đ này luôn đ ớ ề ố c quay v đ i di n v i
ườ ng i dùng.
Vi d :ụ
Billboard{
axisOfRotation 0.0 1.0 0.0
children [....]
}
ộ Các thu c tính:
axisOfRotationbboxCenter
bboxSize
Inline: node này s đ
ẽ ượ ở c trình bày ầ ph n sau
ộ ố ươ ẽ 2.3.6 M t s ph ng pháp v trong VRML
ể ẽ ự ố ượ ế Trong VRML chúng ta có th v tr c ti p đ i t ề ng. Tuy nhiên trong nhi u
ườ ố ượ ợ ượ ử ụ ế ẽ ấ ề ầ ẽ ự ệ ấ tr ng h p, đ i t ng đ ờ c s d ng nhi u l n thì vi c v tr c ti p s r t m t th i
ứ ượ gian, công s c và tăng dung l ể ng file lên đáng k .
ớ Nhóm 22 L p KTPM2K7
ấ ể ả ụ ế Có 2 cách thông d ng nh t đ gi ệ i quy t vi c này đó là:
ứ
GV: Vũ Đ c Huy
35
Inline: hàm Inline cho phép ta g i tr c ti p m t đ i t
ộ ố ượ ọ ự ế ng bên ngoài file vào
ệ ạ file hi n t i.
Cú pháp:
ườ Inline {url ”Tên đ ẫ ng d n”}
Vi d :ụ
Inline {url ”robo.wrl”}
DEF ( DEFine ): cho phép ta đ nh nghĩa m t đ i t
ộ ố ượ ị ộ ộ ể ng hay m t ki u thu c tính
Vi dụ
Shape {
appearance Appearance {
material DEF RedColor Material {
diffuseColor 1.0 0.0 0.0
}
}
geometry. . .
}
Shape {
appearance Appearance {
material USE RedColor
}
geometry. . .
}
ố ượ ư ụ ị ể ố Nh ví d trên ta đ nh nghĩa đ i t ng RedColor ki u Material. Sau đó mu n
ạ ằ ọ ừ ử ụ s d ng l i ta g i hàm b ng t khóa USE.
2.3.7 Texture Mapping
ể ỗ ế ế ấ ộ ố ượ ủ ỏ Ta có th mô hình m i chi ti t k t c u nh bé c a m t đ i t ả ng. Thay vì ph i
ề ặ ế ấ ể ẽ ể ấ ư ấ ờ ộ ứ ả m t th i gian đ v ta có th l y m t b c nh dán lên b m t k t c u nh là dán
ớ Nhóm 22 L p KTPM2K7
ậ ượ ọ ạ ế ấ decal. Kĩ thu t này đ c g i là ánh x k t c u.
ứ
GV: Vũ Đ c Huy
36
ể ử ụ ạ ả ị ộ Trong VRML có th s d ng m t trong các đ nh d ng nh sau đây:
GIF: 8bit, có h tr trong su t, không là s l a chon t
ỗ ợ ự ự ố ố t cho texture mapping.
JPEG: t
ừ ỗ ợ ự ự ọ ố ố 816 bit, không h tr trong su t, là s l a ch n t t cho texture
mapping.
PNG: t
ừ ể ả ỗ ợ ự ự ừ ố ố 816 bit, h tr trong su t trên t ng đi m nh, là s l a chon t ấ t nh t
cho texture mapping.
2.3.8 Script
ể ở ộ ư ư ẻ ẻ ề ầ ạ ả ạ Th script đ a ra kh năng linh ho t, m m d o đ m r ng g n nh vô h n
ủ ư ả ầ ộ ộ ợ các yêu c u hành đ ng c a chúng ta cũng nh hành đ ng mong đ i ph n h i t ồ ừ ế th
ớ ả ủ ẻ ị ươ ớ gi i o c a chúng ta. Th script cho phép chúng ta xác đ nh cách t ng tác v i th ế
ớ ả ệ ử ụ ữ ậ ư ặ ằ gi i o b ng vi c s d ng các ngôn ng l p trình nh Java, Javascript ho c VRML
ượ ư ở ớ script m i đây đ c đ a ra b i Silicon Graphics, Inc.
ể ể ộ ườ ư ộ Trong m t th Script có th có các tr ng hay các thu c tính, nh ng không
ự ệ ẻ ể ẻ ớ ố ị gi ng v i các th khác, trong th script chúng ta có th xác đ nh các s ki n mà th ẻ
ử ự ệ ể ẽ ẻ ậ ộ ộ ộ ị ỗ này có th nh n và g i s ki n. M t th script s xác đ nh m t hành đ ng nào đó m i
ộ ự ệ ể ạ ẻ ậ ỗ ề ự ệ ộ lúc nó nh n m t s ki n, trong m i hành đ ng th script có th t o ra nhi u s ki n.
ể ượ ụ ở ạ ủ ụ ữ ự ể ẻ ơ H n n a th script có th đ c d ng đ xây d ng các th t c kh i t o (initiazation
ừ ắ procedures) và d ng, t t (shutdown procedures).
ự ệ ự ệ ấ ỳ ẻ ể ậ ộ ị M t th script có th nh n b t k các s ki n, các giá tr mà các s ki n này có
ượ ự ệ ủ ủ ế ế ạ ộ đ c là các bi n thu c lo i eventIn. Tên c a các bi n này là tên c a các s ki n mà
ậ ự ệ ể ọ ẻ ế ỉ th script nh n s ki n đó. Các bi n này là ch có th đ c nghĩa là chúng ta không th ể
ế ậ ấ ỳ ế ị ự ế ẻ ạ ộ ộ thi ạ t l p giá tr tr c ti p cho b t k bi n nào thu c lo i này. M t th script cũng t o
ự ệ ự ệ ấ ỳ ị ượ ế ra b t k các s ki n nào, các giá tr mà các s ki n này có đ ộ c là các bi n thu c
ạ lo i eventOut.
Cú pháp
Script
ớ Nhóm 22 L p KTPM2K7
{
ứ
GV: Vũ Đ c Huy
37
url[]
directOutput FALSE
mustEvaluate FALSE
eventIn Datatype EventName
eventOut Datatype EventName
field Datatype FieldName InitialValue
}
ươ ượ ữ ầ ử t ch c x lí. Các ngôn ng g n đây h
url cho bi ợ
ế ệ ng trình script đ ự ươ ỗ ng trình script này là: JAVA, JavaScript,
tr cho vi c xây d ng các ch VRMLScript.
ể ệ ử ụ ế ớ ả ổ
Có hai cách mà có th thay đ i th gi
ằ ặ ự ệ ế ế ẻ ấ ộ
ứ ứ ẻ ả
ế ệ ề i o b ng vi c s d ng script: ử ụ th nh t là s d ng m t bi n eventOut và đ t s ki n đ n th khác, ủ ườ ự ậ ng c a th khác, chú ý là c hai th hai là truy c p tr c ti p các tr ự ả cách này đ u ph i th c hi n trong ther script.
ả ẽ ế ớ ả ộ ả ừ i o v a ph i
ớ Nhóm 22 L p KTPM2K7
Đi u khó khăn cho b trình duy t là v a ph i v th gi ộ ự ệ ở ệ ờ ừ cùng m t th i gian. ề ử x lý các s ki n
ứ
GV: Vũ Đ c Huy
38
Ứ ụ ự ọ ệ
ƯƠ
ng d ng VRML trong vi c xây d ng xóm tr Hoàng
CH
NG 3.
Tr ngườ
3.1 Bài toán
ờ ơ ậ ị ớ ườ ạ ọ ẳ Bây gi trên các thành th l n, n i t p trung các tr ọ ng đ i h c cao đ ng m c
ọ ủ ự ề ấ ấ ầ ợ ế lên r t nhi u, nhu c u thuê tr c a sinh viên là r t cao nên d a vào l i th đó các h ộ
ườ ọ ế ứ ự ữ ộ ầ dân g n các tr ng đã xây d ng lên nh ng xóm tr h t s c khang trang và r ng rãi,
ầ ủ ế ị ứ ề ậ ọ đáp ng đúng nhu c u c a sinh viên. Chính vì v y chúng em quy t đ nh ch n đ tài
ệ ự ạ ả ọ ể ề ể ỏ ử ụ s d ng công ngh th c t ấ i o đ mô ph ng 1 trong r t nhi u xóm tr đ sinh viên
ể ưở ượ ượ ả ọ ư ế có th t ng t ng ra đ c c nh xóm tr nh th nào
ọ ượ ể ệ ề ọ ề ơ Xóm tr đ ộ c th hi n trên n n m t trang web nên m i ng ườ ở i nhi u n i có
ự ế ọ ả ể ề ặ ả ầ th tham gia tr c ti p vào xóm tr o mà không c n ph i cài đ t gì nhi u.
ặ ướ ả ng gi ế i quy t ầ 3.2 Yêu c u đ t ra và h
ự ọ
3.2.1 Xây d ng xóm tr
V n đ đ t ra
ề ặ ấ
ọ ầ ự ượ ự ề ồ Xóm tr c n xây d ng đ c chia làm nhi u khu v c, g m có:
Các phòng tr ọ
Khu đ xeể
ả ướ H ng gi ế i quy t
ỗ ợ ệ ư ộ ơ ả ữ ẽ ầ Ngôn ng VRML có h tr vi c v các hình c b n nh : h p, c u, nón...Vì
ệ ử ụ ể ễ ự ế ờ ượ ơ ả th nh vào vi c s d ng các hình c b n này ta có th d dàng xây d ng đ c b ộ
ớ Nhóm 22 L p KTPM2K7
ọ ủ khung c a xóm tr .
ứ
GV: Vũ Đ c Huy
39
ơ ồ ọ Hình 3.1 S đ xóm tr
ơ ồ ế ọ Hình 3.2 S đ chi ti t phòng tr
3.2.2 Trang trí xóm trọ
V n đ đ t ra
ề ặ ấ
ộ ộ ả ượ ả ầ ọ ơ ỉ Xóm tr không ch là m t b khung đ n gi n mà c n ph i đ ộ c trang trí m t
ớ Nhóm 22 L p KTPM2K7
ư ậ ỉ ỉ ườ ớ ượ ả ư ộ ố cách t m . Có nh v y ng i dùng m i có đ c c m giác gi ng nh m t xóm
ứ
GV: Vũ Đ c Huy
40
ọ ậ Tr th t.
ướ ả H ng gi ế i quy t
ượ ậ ệ ề ậ ớ ể Ta có th làm đ c đi u này v i texture mapping. Gán v t li u lên các v t th ể
ư ườ ẽ ầ ượ ả ư ế ố ươ ứ t ng ng nh sàn, t ng hay tr n ta s thu đ c các k t qu nh ý mu n.
ố ượ ọ ng bên trong xóm tr ự 3.2.3 Xây d ng các đ i t
V n đ đ t ra
ề ặ ấ
ả ườ ậ ụ ẩ ạ ọ Trong xóm tr ph i có ng i, các v t d ng sinh ho t,...Và các tác ph m này s ẽ
ượ ẹ ắ ộ ườ ư ễ ả đ c bài trí m t cách đ p m t giúp ng i dùng d quan sát cũng nh có c m giác
ư ộ ố ọ ậ gi ng nh m t xóm tr th t
ả ướ H ng gi ế i quy t
ỉ ỗ ợ ẽ ọ ơ ả ứ ạ ữ ạ ạ VRML ch h tr v nh ng d ng hình h c c b n còn các d ng ph c t p thì
ể ự ệ ượ ế ầ ề ầ ộ ấ r t khó có th th c hi n đ c. Vì th c n dùng m t ph m m m bên ngoài đ gi ể ả i
ọ ở ế ệ ề ầ ố ượ quy t vi c này. Và ph n m m em ch n đây là 3DS Max. Các đ i t ng s đ ẽ ượ ẽ c v
ộ ế ằ ữ ể ươ m t cách chi ti t b ng 3DS Max và chuy n sang ngôn ng VRML ( ch ng trình 3DS
ỗ ợ ỉ ầ ặ ạ ị Max có h tr export sang đuôi .wrl ). Lúc này ta ch c n đ t đo n code này vào v trí
ố ượ ẽ ấ ố mong mu n là đ i t ọ ệ ng đó s xu t hi n trong xóm tr .
Hình 3.3 Export sang file VRML
ể ọ
3.2.4 Di chuy n bên trong xóm tr
V n đ đ t ra
ề ặ ấ
ư ế ể ẽ ể ế ượ S là thi u sót n u nh ta không th di chuy n đ ộ c trong m t th gi ế ớ ả i o.
ọ ả ậ ườ ể ạ Xóm tr o cũng v y, ng i dùng có th đi l ạ ọ ộ i bên trong xóm tr m t cách linh ho t,
ể ể ả ượ ạ ộ ọ ườ tho i mái đ có th quan sát đ c ho t đ ng bên trong xóm tr . Ng i dùng có th ể
ế ả ả ố ố ộ ậ quay trái, quay ph i, ti n, lùi, th m chí là tăng t c và gi m t c đ .
ớ Nhóm 22 L p KTPM2K7
ả ướ H ng gi ế i quy t
ứ
GV: Vũ Đ c Huy
41
ế ề ộ ơ ể ẵ ượ ợ ẵ ữ Có s n m t c ch đi u khi n đ ớ c tích h p s n trong ngôn ng VRML v i
ỉ ầ ủ ẽ ộ ớ ế ợ chu t và các phím mũi tên. Ta ch c n k t h p nó v i góc quay c a camera thì ta s có
ạ ậ ự ở ể ọ ả c m giác là đang đi l i v y. Th c ra ậ đây xóm tr và các v t th bên trong nó đ ượ c
ộ ố ượ ư ề ể ể ọ ỉ xem nh là m t đ i t ư ng và khi ta đi u khi n thì ch có xóm tr là di chuy n. Nh ng
ờ ế ợ ế ạ ầ ả ậ nh k t h p góc quay nên ta có c m giác khi ti n l i g n thì v t to ra, và khi ra xa thì
Mã ngu nồ
ỏ ạ ư ể ậ ố ậ v t nh l i gi ng nh là đang di chuy n v y.
Viewpoint
{
#góc nhìn
orientation 0.024791 0.99938 0.024992 1.57938
ọ ộ ể ặ #t a đ đ đ t góc nhìn
position 4.79336 1.25 4.7879
}
ọ ố ượ 3.2.5 Ch n đ i t ng
V n đ đ t ra
ề ặ ấ
ườ ử ụ ạ ọ ọ ể ấ Khi ng i s d ng đi l ẩ i bên trong xóm tr , h có th nhìn th y các tác ph m
ậ ở ệ ư ượ ể ộ ngh thu t đây nh t ể ng, tranh, phù điêu,...Đ có th quan sát m t cách kĩ càng và
ườ ử ụ ẽ ớ ể ậ ộ ọ ỉ ỉ t m ng i s d ng có th kích chu t vào v t mà mình ch n. Sau đó ta s t ộ i m t
ở ườ ử ụ ể ỏ ộ không gian khác mà đây ng i s d ng có th phóng to, thu nh , xoay m t cách linh
ạ ể ề ậ ộ ỉ ỉ ho t đ xem xét v t mà mình đã chon m t cách t m . Ngoài ra còn có thông tin v tác
ả ẩ ượ ườ ẩ gi và tác ph m đ ấ c cung c p cho ng i dùng ngay trên tác ph m.
ả ướ H ng gi ế i quy t
ẽ ử ụ ủ ụ ạ ộ ộ ế ữ Ta s s d ng m t node c a ngôn ng VRML có tác d ng t o ra m t liên k t
ể ậ ặ ớ t i file HTML ho c VRML khác. Lúc này khi di chuy n vào v t đã đ ượ ử ụ c s d ng
ộ ẽ ỏ ổ ế node này, con tr chu t s thay đ i và bi n thành hình bàn tay. Khi ta kích vào s t ẽ ớ i
ặ ố trang HTML ho c file VRML mà ta mu n.
ớ Nhóm 22 L p KTPM2K7
ọ ồ Mã ngu n minh h a
ứ
GV: Vũ Đ c Huy
42
Anchor {
ế ố ỉ ị # Đ a ch mà ta mu n đ n
url "cuasoit.com"
ẽ ệ ố ượ ộ #Dòng thông tin s hi n lên khi ta di chu t và đ i t ng
description "Twisty Stairs"
children [ . . . ]
}
3.2.6 Ánh sáng
V n đ đ t ra
ề ặ ấ
ư ở ể ậ ọ ố ả ầ ờ ứ ở Đ làm cho m i th tr nên th t gi ng nh ngoài đ i thì ta c n ph i có ánh
ố ượ ẽ ở ơ ộ ố ườ sáng. Ánh sáng s làm các đ i t ng 3D tr nên s ng đ ng h n, giúp ng i dùng
ơ ọ ứ h ng thú h n khi đi tham quan xóm tr .
ả ướ H ng gi ế i quy t
ư ề ể ạ ị ướ Trong VRML có nhi u lo i ánh sáng nh : ánh sáng đi m, ánh sáng đ nh h ng.
Mã ngu nồ
ẽ ử ụ ạ ồ ừ ể Ta s s d ng 2 lo i này đ làm thành các ngu n sáng t ọ các đèn bên trong xóm tr .
DEF DL1 DirectionalLight
{
direction 0.8 0.5 1.2
}
ở ử 3.2.7 Đóng m c a
V n đ đ t ra
ề ặ ấ
ử ể ọ ồ ế ẽ Xóm tr g m có 20 phòng chính. Vì th s có các c a đ ngăn cách các phòng
ớ ườ ở ử ả ấ ố này v i nhau. Ng i dùng mu n đi vào phòng nào thì ph i m c a phòng đ y.
ả ướ H ng gi ế i quy t
ả ạ ộ ươ ể ề ể Ta ph i dùng m t đo n Script nhúng vào trong ch ệ ng đ đi u khi n vi c
ớ Nhóm 22 L p KTPM2K7
ở ử ự ệ ờ ẽ ễ đóng m c a. Vi c này s di n ra trong th i gian th c.
ứ
GV: Vũ Đ c Huy
43
ố ư 3.2.8 T i u khung hình
V n đ đ t ra
ề ặ ấ
ệ ử ụ ể ẽ ố ượ ớ ọ ẽ V i vi c s d ng 3DS Max đ v các đ i t ng bên trong xóm tr s làm cho
ấ ặ ố ượ ề ế ở ượ ẽ ẽ các file này tr nên r t n ng. Vì th khi có quá nhi u đ i t ng đ c v s làm cho
ả ầ ọ ậ ẽ ấ ả ậ ố khung hình gi m xu ng ch m tr ng, gây gi t, ch m hình nh và s r t khó khăn đ ể
ườ ng i dùng quan sát.
ả ướ H ng gi ế i quy t
ẽ ượ ự ỗ ề ộ M i khu v c, phòng khác nhau s đ c chia thành nhi u file thay vì m t file
ư ướ ở ế ả ộ ố nh tr c. Khi ta phòng này mà mu n đ n phòng khác thì ph i click chu t vào th ứ
ả ử ẽ ọ ế ử ẽ ộ gì đó (gi s là m t cánh c a), khi đó máy tính s g i đ n file v phòng kia và phòng
ẽ ượ ạ ỏ ố ượ ẽ ệ ở ữ này s đ c xóa đi. Vi c này s giúp lo i b đi các đ i t ng nh ng phòng khác
ẫ ượ ư ẽ nh ng v n đ c máy tính v ra.
ả ạ ượ ế ướ ể c và h ng phát tri n
3.3 K t qu đ t đ
ả 3.3.1 K t quế
ớ Nhóm 22 L p KTPM2K7
ừ ệ ữ ụ ượ ả T vi c áp d ng ngôn ng VRML ta thu đ ế c các k t qu sau
ứ
GV: Vũ Đ c Huy
44
ả ọ Hình 3.4 Toàn c nh xóm tr
ớ Nhóm 22 L p KTPM2K7
Hình 3.5 Phòng chi ti tế
ứ
GV: Vũ Đ c Huy
45
ớ Nhóm 22 L p KTPM2K7
ố ượ ượ Hình 3.6 Đ i t ng t ng
ứ
GV: Vũ Đ c Huy
46
Ậ Ầ Ế PH N K T LU N
ể ủ ọ ỹ ớ ự ậ ạ ữ ệ Ngày nay v i s phát tri n c a khoa h c k thu t đã mang l i nh ng hi u qu ả
ặ ớ ệ ọ Ở ộ ố ự ấ ọ to l n đ c bi t là tin h c. ủ trong b t kì lĩnh v c nào c a cu c s ng tin h c cũng có
ả ủ ệ ề ặ ộ ọ ườ ặ ệ m t và hi u qu c a nó là m t đi u m i ng ợ i mong đ i. Đ c bi ự t trong lĩnh v c
ự ế ả ấ ớ ự ầ ọ ớ th c t ẻ ư o là lĩnh v c còn khá m i m nh ng có t m quan tr ng r t l n.
ự ế ả ư ự ủ ệ ố Cũng gi ng nh các lĩnh v c khác c a công ngh thông tin, th c t o có ngôn
ữ ủ ụ ể ằ ơ ồ ng riêng c a mình đó chính là VRML. Đ án này nh m m c đích tìm hi u rõ h n v ề
ữ ủ ư ứ ề ể ả ngôn ng này. Qua tìm hi u, nghiên c u cũng nh tham kh o đ tài c a khóa trên và
ộ ố ạ ượ ủ ề ồ ở ộ ố ụ ạ m t s mã ngu n m trên m ng nên đ tài c a em đã đ t đ c m t s m c đích:
ể ổ Tìm hi u t ng quan v th c t ề ự ạ ả i o
ữ ự ạ ả ể Tìm hi u v ngôn ng th c t ề i o VRML
ự ượ ươ ụ Xây d ng đ c ch ứ ng trình ng d ng
ự ạ ả ế ứ ữ ể ằ ộ ọ ở Có th nói r ng th c t ấ i o đóng m t vai trò h t s c quan tr ng b i nh ng v n
ự ạ ả ể ả ế ế ề đ khó khăn mà n u không có th c t ấ i o thì r t khó đ gi ứ ư i quy t. Nh ng khi ng
ự ạ ả ẽ ở ề ả ấ ớ ờ ơ ụ d ng th c t ơ i o vào thì v n đ đó s tr nên đ n gi n h n v i chi phí và th i gian ít
h n.ơ
ủ ề ấ ạ ờ ề Tuy nhiên vì th i gian làm bài c a chúng em có h n nên đ tài còn r t nhi u
ế ạ ầ thi u sót. Mong các th y và các b n góp ý.
ớ Nhóm 22 L p KTPM2K7
ả ơ Chúng em xin chân thành c m n!
ứ
GV: Vũ Đ c Huy
47
Ả Ệ TÀI LI U THAM KH O
ấ ả ậ ồ ế ắ ạ ấ ỹ ỳ [1]. Lê T n Hùng, Hu nh Quy t Th ng, K thu t đ ho , Nhà xu t b n Khoa
ậ ỹ ọ h c và K thu t – 2000, 2002, 2004
[2]. http://tecfa.unige.ch/guides/vrml/pointers.html
ớ Nhóm 22 L p KTPM2K7
[3]. http://www.lighthouse3d.com/vrml/tutorials.shtml
ứ
GV: Vũ Đ c Huy
48