HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 1
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
Đề tài: “Tìm hiểu ngôn ngữ mô hình hóa thực tại ảo
và xây dựng chương trình mô phỏng”
Giảng viên hướng dẫn : THS. TRỊNH THỊ VÂN ANH
Sinh viên thực hiện : NGUYỄN VIẾT LINH
Lớp : D07HTT2
Khoá : 2007-2012
Hệ : ĐẠI HỌC CHÍNH QUY
Hà Nội, tháng 12 /2011
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
……………………………….……………………………………………………
Ngày tháng năm 2011
Giáo viên phản biện
ĐỒ ÁN TỐT NGHIỆP MỤC LỤC
MỤC LỤC
ĐỒ ÁN TỐT NGHIỆP DANH MỤC THUẬT NGỮ VÀ TỪ VIẾT TẮT
DANH MỤC CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT
Thuật ngữ,
từ viết tắt
Tên đầy đủ Ý nghĩa, giải thích
VR Virtual reality Thực tại ảo
VRML Virtual Reality Modeling
Language
Ngôn ngữ mô hình hóa thực tại
ảo
www Word wide web Mạng lưới toàn cầu
HTML Hypertext Markup Language Ngôn ngữ đánh dấu siêu văn bản
API Application Programming
Interface
Giao diện lập trình ứng dụng
Cắt 2 dòng đi chứ
ĐỒ ÁN TỐT NGHIỆP DANH MỤC HÌNH VẼ
DANH MỤC HÌNH VẼ
Hình 1.1 Binh lính học nhảy dù bằng thực tại ảo…………………………………… 3
Hình 1.2 Lớp học ảo ………………………………………………………………….4
Hình 3.1 Giới thiệu wrl …………………………………………………………… 12
Hình 3.2 Ví dụ node Box ………………………………………………………… 15
Hình 4.9 Tạo file wrl từ 3Ds Max … ………………………………………………52
Hình 4.10 Dãy nhà ………………………………………………………………… 53
Hình 4.11 Cột trụ gian hàng…………………………………………………….…….54
Hình 4.12 Gian hàng …………………………………………………………………56
Hình 4.13 Mặt tiền chợ Đồng Xuân…….…………………………………………….57
Hình 4.14 Sân khấu ……………………………………………………….………….59
Hình 4.15 PointLight ……………………………………………………… ……….60
Hình 4.16 Toàn cảnh mô hình……………………………………………… ……….61
Hình 4.17 Lối vào cổng chợ………………………………………………… ………62
Hình 4.18 Mặt tiền và sân khấu………………………………………… ……….….62
Hình 4.19 Dãy hàng nhìn từ sân khấu ……………………………………… …… 63
ĐỒ ÁN TỐT NGHIỆP DANH MỤC HÌNH VẼ
ĐỒ ÁN TỐT NGHIỆP LỜI MỞ ĐẦU
LỜI MỞ ĐẦU
Đồ họa máy tính luôn là một trong những lĩnh vực được quan tâm nhất trong
ngành công nghệ thông tin nói chung và khoa học máy tính nói riêng. Chúng ta có thể
bắt gặp nhiều ứng dụng của đồ họa máy tính trên nhiều lĩnh vực của đời sống như :
khoa học – y tế ( nghiên cứu, chuẩn đoán từ các hình ảnh mô phỏng ) , quân sự ( huấn
luyện trong môi trường ảo), xây dựng – kiến trúc ( tạo không gian, mô hình ảo), giải trí
v.v…
Trong những ứng dụng ấy, việc mô phỏng lại thế giới thực bằng cách xây dựng
những mô hình “ảo” trên máy tính luôn là một vấn đề lớn mà đồ họa máy tính hướng
tới giải quyết. Từ đó mà công nghệ “thực tại ảo” ra đời, với khả năng mô phỏng một
cách sống động hầu hết những mô hình trong thế giới thực, từ đơn giản cụ thể cho tới
phức tạp trừu tượng.Ngôn ngữ mô hình hóa thực tại ảo (Virtual Reality Modeling
Language - VRML) đã được xây dựng từ nhu cầu phát triển của công nghệ “ thực tại
ảo” – mà dựa trên đó, con người có thể giải quyết bài toán mô phỏng lại thế giới thực
trên máy tính.
Nội dung của đồ án được chia thành 4 chương, cụ thể như sau :
Chương I : Tổng quan về thực tại ảo : giới thiệu chung về thực tại ảo và ứng
phần trong thế giới ảo. Người sử dụng nhìn thấy sự vật thay đổi trên màn hình mô
phỏng ngay theo ý muốn của họ và bị thu hút bởi sự mô phỏng này. Sự thu hút này
được tạo ra bởi những thay đổi trong môi trường ảo đã tác động lên các cơ quan cảm
giác của con người thông qua một số thiết bị hiển thị cũng như tương tác đa dạng như :
thị giác ( từ các hình ảnh 3D ), thính giác ( qua các âm thanh), xúc giác ,v.v
Có thể nói, 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 giác ví dụ như thị
giác, thính giác, xúc giác,v.v…
1.2. Một số ứng dụng quan trọng của thực tại ảo
Ngày nay,tại nhiều nước phát triển, thực tại ảo đã và đang được ứng dụng trong
rất nhiều 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. Lĩnh vực ứng dụng mang lại nhiều hiệu
quả nhất của thực tại ảo đầu tiên phải kể đến là y học. Bên cạnh đó thực tại ảo 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ự, thực tại ảo
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 thực tại
ảo như: thực tại ảo ứng dụng trong sản xuất, thực tại ảo ứng dụng trong ngành rôbốt,
thực tại ảo ứng dụng trong hiển thị thông tin (thăm dò dầu mỏ, hiển thị thông tin
khối, ) thực tại ảo 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.1.1 Quân sự
Với việc phát triển của thực tại ảo, các binh sĩ sẽ được huấn luyện 1 cách trực
quan 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
NGUYỄN VIẾT LINH 13
ĐỒ ÁN TỐT NGHIỆP TỔNG QUAN VỀ THỰC TẠI ẢO
công 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 đã từng đầu tư 36 triệu USD cho
việc một game đặc biệt nhằm huấn luyện binh sĩ trong quân đội Mỹ chống lại khủng
tài liệu này không thể kể hết được. Những điều này cho thấ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, từ đó cho thấy ý nghĩa , đóng góp quan trọng
mà thực tại ảo đem lại cho con người : nếu không có thực tại ảo, nhiều vấn đề khó
khăn sẽ rất khó giải quyết được, hoặc có thể nhưng với hiệu quả thấp và chi phí tốn
kém hơn rất nhiều.
NGUYỄN VIẾT LINH 15
ĐỒ ÁN TỐT NGHIỆP TỔNG QUAN VỀ NGÔN NGỮ VRML
CHƯƠNG II : TỔNG QUAN NGÔN NGỮ MÔ HÌNH THỰC
TẠI ẢO VRML
2.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 đổ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.
Về căn bản VRML chỉ đơn giản là một định dạng trao đổi 3D. Nó định nghĩa
được các vấn đề thường được sử dụng trong các ứng dụng 3D, chẳng hạn như các biến
đổi phân cấp (hierarchical tranformations), nguồn ánh sáng (líght sources), điểm nhìn
(view points), hình học (geometry), sương mù (fog), thuộc tính của chất liệu (material
properties) và các bản đồ kết cấu (texture mapping).
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à quang 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ị hạn chế
này , Mark và Brian Behlendorf đã tạo danh mục mail VRML, www - vrml, và đưa ra
đề nghị về việc công nhận một chuẩn chính thức cho đồ họa 3D trên WWW. Garin
Bell đã nhận thấy sự phù hợp giữa Open Inventor của ông với www – vrml, nên đã
nhanh chóng đưa ra ý tưởng phát triển các yếu tố cơ bản của định dạng file Inventor
kết hợp với các tính năng WWW cần thiết. Trải qua một cuộc bầu chọn, phát minh
Inventor đã được chọn để xây dựng các tài liệu đặc tả kỹ thuật. Sau đó, Gavin, với sự
giúp đỡ của Tony và Rikk cùng một loạt các kỹ sư của Inventor, đã sửa đổi và hoàn
thiện bản dự thảo đầu tiên cho chuẩn VRML 1.0. Tháng 10 năm 1994, tại hội nghị
Quốc tế thứ 2 về World Wide Web được tổ chức tại Chicago (Hoa Kœ), đặc tả về
VRML 1.0 được chấp nhận.
Trong suốt nửa đầu năm 1995, VRML 1.0 đã trải qua một loạt các bản sửa đổi,
chú thích, làm rõ tuy nhiên chức năng thì không hề thay đổi. Tháng 8 năm 1995, có rất
nhiều tranh cãi về việc tạo ra bản VRML mới mang tên VRML 1.1 hoặc VRML 2.0.
Một số nhà nghiên cứu cho rằng VRML chỉ cần phát triển thêm một vài tính
năng,trong khi một số khác lại cho rằng VRML cần phải có sự tu sửa hoàn toàn.
Nhưng tất cả họ đều đồng quan điểm chung là VRML 1.0 vẫn còn thiếu tính năng
chính (như hiệu ứng, tương tác, hành vi), vậy nên việc xây dựng phiên bản mới cho
VRML là điều cần thiết. Các cuộc thảo luận, tranh cãi tiếp tục nổ ra từ suốt tháng 9 tới
tháng 12 mà không đem lại kết quả nào rõ ràng.
NGUYỄN VIẾT LINH 17
ĐỒ ÁN TỐT NGHIỆP TỔNG QUAN VỀ NGÔN NGỮ VRML
Tháng 1 năm 1996, ý tưởng về một phiên bản VRML mới của Silicon Graphics
kết hợp với tập đoàn Sony và Mitra với một đặc tả kỹ thuật về VRML 2.0 đã nhận
được nhiều sự ủng hộ trên toàn thế giới. Tháng 8 năm 1996 tại SIGGRAPH 96 ở New
Orleans, phiên bản đầu tiên của VRML 2.0 được công bố.
Tại một cuộc họp vào tháng 7 năm 1996 ở Tokyo, Tổ chức ISO (Internaltional
Standards Organization’s) đã đồng ý công bố phiên bản VRML 2.0. Và tới tháng 4
năm 1997, VRML 2.0 chính thức được là một chuẩn 3D trên WWW.
2.3. Các tính năng cơ bản của VRML
2.3.1. Scene Graph Structure – C•u trŽc Scene Graph
máy thu sự kiện. Scipts cho phép người sáng tạo ra thế giới định nghĩa được các hành
vi – sự kiện bất kœ. VRML 2.0 quy định các ràng buộc node Script với ngôn ngữ java
hoặc javaScript.
Node Interpolators (người xen vào) được xây dựng trong Script để tính toán tạo
ra các hình ảnh động đơn giản. Interpolators thường được kết hợp với một TimeSensor
và một số node trong Scene Graph để làm cho các đối tượng di chuyển.
2.3.5. Protyping : Encapsulation and Reuse – Đóng gói và tái sử dụng
VRML 2.0 cung cấp một cơ chế tạo mẫu cho đóng gói và tái sử dụng một Scene
Graph (the PROTO statement). Các hình cơ bản, thuộc tính và hình ảnh động
(Animation) đều có thể được đóng gói, đóng gói riêng rẽ hoặc đóng gói cùng nhau.
Protyping cho phép định nghĩa một loại node mới để kết hợp các node hiện tại, nó làm
cho VRML dễ dàng sử dụng và có thể làm giảm kích thước file VRML
2.3.6. Distributed Scenes – Phân tán cảnh
VRML 2.0 sử dụng node Inline cho phép file VRML có thể được lưu trữ bất cứ
nơi nào trên mạng và the EXTERNPROTO statement cho phép định nghĩa node mới
được lấy từ bất cứ đâu trên WWW. Nói chung EXTERNPROTO cho phép các node
được định nghĩa bên ngoài file VRML và nó là cơ chế cơ bản để mở rộng cho VRML.
2.4. Ứng dụng VRML trong thời đại hiện nay – X3D
2.4.1. VRML và web 3d
File VRML có thể tham chiếu tới các file ở nhiều định dạng khác nhau để phục
vụ cho việc “ảo hóa” các yếu tố thực, ví dụ như : JPEG, PNG, GIF cho các yếu tố hình
ảnh, WAV và MIDI cho các yếu tố âm thanh trong thế giới , hay file MPEG cho yếu tố
hình động ( video). Ngoài ra, một file VRML có thể chứa code Java hoặc JavaScript,
các đoạn code Java hay JavaScript này được sử dụng để lập trình cho các đối tượng
trong VRML.
NGUYỄN VIẾT LINH 19
ĐỒ ÁN TỐT NGHIỆP TỔNG QUAN VỀ NGÔN NGỮ VRML
Từ các ưu điểm vốn có của mình cùng với sự phát triển của nền tạng mạng
internet , VRML có thể được sử dụng để phục vụ cho việc xây dựng web 3 chiều –
web 3D. Kể từ khi ra đời cho đến nay, VRML đã được sử dụng để xây dựng , phát
kích thước cồng kềnh, cấu trúc phức tạp của VRML, nó cung cấp một cơ sở hoàn thiện
hơn VRML, cho phép các nhà phát triển có thể mở rộng mà không làm vụn cấu trúc
của bản vẽ kỹ thuật – lỗi thường mắc phải trong VRML.
NGUYỄN VIẾT LINH 20
ĐỒ ÁN TỐT NGHIỆP TỔNG QUAN VỀ NGÔN NGỮ VRML
Đặc biệt, X3D là một nền tảng phù hợp để phát triển các ứng dụng web 3d bởi
khả năng tương thích cao với XML hoặc các giao diên lập trình ứng dụng nâng cao
API. Ví dụ về một đoạn mã X3D :
<?xml version = "1.0" encoding = "UTF-8"?>
<DOCTYPE X3D CÔNG "ISO / / Web3D / / DTD X3D 3,2 / / EN" "http://www.web3d.org/specifications/x3d-
3.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>
Ngoài ra, X3D còn mang một số ưu điểm nội trội so với nền tảng của nó là
VRML như : tăng khả năng tương tác giữa các đối tượng đồ họa , tạo ra khả năng kết
nối ứng dụng 3d với cơ sở dữ liệu cũng như các nguồn thông tin bên ngoài , v.v…
NGUYỄN VIẾT LINH 21
ĐỒ ÁN TỐT NGHIỆP TÌM HIỂU CHI TIẾT NGÔN NGỮ VRML
CHƯƠNG III : TÌM HIỂU CHI TIẾT NGÔN NGỮ MÔ
HÌNH THỰC TẠI ẢO VRML
3.1. Tập tin VRML
3.1.1. Làm việc với file VRML
Chúng ta có thể tạo một file VRML đơn giản bằng cách dùng một trình soạn
Hình 3.1 Giới thiệu file wrl
3.1.3. Trường ( field), eventIn, eventOut trong VRML
Field : Trong một file VRML, các trường được đặt trong các node và chúng xác
định trạng thái của các đối tượng trong thế giới ảo. Trạng thái của các đối tượng sẽ
không xác định nếu như một trường trong cùng một node chứa nhiều giá trị khác
nhau . Ví dụ như khai báo Box { size 1 1 1 size 2 2 2} là không hợp lệ.
EventIn, eventOut : Các node trong VRML cũng có thể tương tác với nhau
qua đó quy định được trạng thái của đối tượng mà chúng xây dựng thông qua các sự
kiện được quy định theo eventIn và eventOut : eventIn và eventOut định nghĩa các loại
và tên của các sự kiện mà mỗi loại node có thể nhận biết hoặc tạo ra. Các sự kiện này
có tính chất tạm thời và giá trị của nó không được ghi trong file VRML.
Quy tắc đặt tên trường, eventIn, eventOut
• Tất cả các trên có chứa nhiều từ phải bắt đầu bằng chữ thường , và ký tự đầu tiên của
mỗi từ sau đó phải viết hoa . Ví dụ : addChildren.
• Tên của các eventIn sẽ chứa tiền tố “set_” trừ hai loại eventIn là addChildren và
removeChildren.
• Tên của các eventOut sẽ chứa hậu tố “_changed” trừ ngoại lệ eventOut của kiểu
SFBool là bắt đầu vàng tiền tố “is”
• Ngoài ra có một số eventIn và eventOut với kiểu SFTime không sử dụng tiền tố hoặc
hậu tố.
3.1.4. Các kiểu dữ liệu trong VRML
Việc xây dựng một đối tượng trong VRML được thực hiện thông qua các node
và thuộc tính của đối tượng được quy định thông qua giá trị của các trường trong node.
Các trường trong VRML lại có nhiều kiểu dữ liệu khác nhau :
NGUYỄN VIẾT LINH 23
ĐỒ ÁN TỐT NGHIỆP TÌM HIỂU CHI TIẾT NGÔN NGỮ VRML
3.1.3.1. SFBool
Là giá trị boolean đơn lẻ, nhận giá trị TRUE hoặc FALSE.
3.1.3.2. SFColor và MFColor :
SFColor là một trường chứa màu đơn lẻ, được tạo nên từ ba số thực dấu chấm
3.1.3.10. SFVec3f và MFVec3f
Các vector hoặc danh sách các vector 3D. Một vector 3D là một bộ 3 các số
thực dấu chấm động.
3.1.3.11. SFNode và MFNode
SFNode là một node đơn lẻ. MFNode là danh sách các node. Ví dụ : Trường
children với nhiều node là kiểu MFNode.
3.1.5. C•u trŽc DEF/USE trong VRML
Khi làm việc với các node trong VRML, chúng ta có thể sử dụng cấu trúc
DEF/USE để định nghĩa một node với tên riêng và sử dụng lại chúng khi cần.
CŽ pháp : DEF "4 "$e {fields}
USE "4
Trong đó :
• "4 là tên node do người sử dụng đặt ( tên này là duy nhất không trùng
nhau ).
• "$ là kiểu node.
Ví dụ :
Shape {
appearance Appearance {
material DEF RedColor Material {
diffuseColor 1 0 0 }
}
geometry. . .
}
Shape {
appearance Appearance {
material USE RedColor
}
NGUYỄN VIẾT LINH 25