Tải bản đầy đủ (.docx) (81 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.91 MB, 81 trang )

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
Sinh viên thực hiện
Lớp
Khố
Hệ

:
:
:
:
:

THS. TRỊNH THỊ VÂN ANH
NGUYỄN VIẾT LINH
D07HTT2
2007-2012
ĐẠ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 hướng dẫn



NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆ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
VR
VRML
www
HTML
API

Tên đầy đủ

Ý nghĩa, giải thích

Virtual reality
Virtual Reality Modeling
Language
Word wide web

Hypertext Markup Language
Application Programming
Interface

Thực tại ảo
Ngơn ngữ mơ hình hóa thực tại
ảo
Mạng lưới tồn cầu
Ngơn ngữ đánh dấu siêu văn bản
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 3.3 Ví dụ node Sphere ………………………………………………………...16
Hình 3.4 Hỉnh trụ trong VRML ……………………………………………………..17
Hình 3.5 Ví dụ node Cylinder ……………………………………………………….17
Hình 3.6 Hình nón trong VRML ……………………………………………………18
Hình 3.7 Ví dụ node Cone …………………………………………………………..19
Hình 3.8 Trường maxExtent và length ……………………………………………...20
Hình 3.9 Trường side và space ……………………………………………………...21

Hình 3.10 Ví dụ node Text …………………………………………………………...22
Hình 3.11 Ví dụ node Shape ………………………………………………………….25
Hình 3.12 Ví dụ node Material ……………………………………………………….27
Hình 3.13 Ví dụ node ImageTexture …………………………………………………28
Hình 3.14 Ví dụ node MovieTexture …………………………………………………29
Hình 3.15 Mặt phẳng trong VRML …………………………………………………..31
Hình 3.16 Ví dụ node IndexedFaceSet ……………………………………………….31
Hình 3.17 Ví dụ node BackGround …………………………………………………..33
Hình 3.18 Ví dụ node ViewPoint …………………………………………………….34
Hình 3.19 Ví dụ node CylinderSensor ……………………………………………….35
Hình 3.20 Ví dụ node TouchSensor ………………………………………………….37
Hình 3.21 Ví dụ node TimeSense ……………………………………………………39


ĐỒ ÁN TỐT NGHIỆP

DANH MỤC HÌNH VẼ

Hình 3.22 Ví dụ node Anchor ………………………………………………………..40
Hình 3.23 Ví dụ node Inline ………………………………………………………….42
Hình 4.1 Sơ đồ tồn cảnh …………………………………………………………...44
Hình 4.2 Cổng chợ(ảnh chụp) ………………………………………………………45
Hình 4.3 Sân khấu và mặt tiền chợ( ảnh chụp) ……………………………………..45
Hình 4.4 Gian hàng( ảnh chụp) ……………………………………………………...46
Hình 4.5 Cột trụ ……………………………………………………………………...47
Hình 4.6 Khung lưới …………………………………………………………………47
Hình 4.7 Dịng chữ ………………………………………………………………….48
Hình 4.8 Cổng chợ ………………………………………………………………….51
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 Tồ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 ln 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 đố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 ln 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 tố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
dụng của thực tại ảo
Chương II : Tổng quan ngôn ngữ mơ hình hóa thực tại ảo VRML : giới
thiệu chung về VRML, lịch sử phát triển, các tính năng cơ bản, ứng dụng
Chương III : Tìm hiểu chi tiết ngơn ngữ mơ hình hóa thực tại ảo VRML :
giới thiệu về cấu trúc các file VRML, cách xây dựng và hoạt động của các thành phần
trong VRML.
Chương IV : Ứng dụng VRML – Viết chương trình mơ phỏng khu chợ đêm
Đồng Xuân
Do kiến thức hiểu biết cũng như kinh nghiệm của bản thân cịn hạn chế nên đồ
án khơng tránh khỏi những thiếu sót. Em rất mong nhận được sự đóng góp của q
thầy cơ để hồn thiện thêm nội dung của đồ án.
Em xin chân thành cảm ơn cô giáo ThS. Trịnh Vân Anh đã hướng dẫn, cùng các
thầy giáo trong khoa Công Nghệ Thông Tin I, Học Viện Cơng Nghệ Bưu Chính Viễn
Thơng đã tận tình giúp đỡ em hoàn thành đồ án này.
Hà Nội, ngày … tháng … năm …
Sinh viên thực hiện
NGUYỄN VIẾT LINH

11


ĐỒ ÁN TỐT NGHIỆP


NGUYỄN VIẾT LINH

LỜI MỞ ĐẦU

12


ĐỒ ÁN TỐT NGHIỆP

TỔNG QUAN VỀ THỰC TẠI ẢO

CHƯƠNG I : TỔNG QUAN VỀ THỰC TẠI ẢO
1.1. Khái

niệm thực tại ảo (cỡ chữ này có chuẩn khơng?)

Thực tại ảo ( Virtual reality – VR ) là thuật ngữ mô tả một mơi trường được tạo
mơ phỏng bằng máy tính. Trong đó đồ họa máy tính được sử dụng để đảm báo yếu tố
“real”- “ như thật” của môi trường này .
Có thể mơ tả yếu tố “ như thật “ này tức là các thành phần trong mơi trường ảo
đó có thể thay đổi theo các tác động của người sử dụng qua các hành động, lời nói, cái
nhìn thậm chí là suy nghĩ … Đó chính là đặc tính chính của thực tại ảo : tương tác thời
gian thực (real-time 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 các thành
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
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 qn đội.

Hình 1.1 Binh lính học nhảy dù bằng thực tế ảo

1.1.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ệ thực tại ảo 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 (game nhập vai trực tuyến nhiều người chơi) ,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 ả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.

NGUYỄN VIẾT LINH

14


ĐỒ ÁN TỐT NGHIỆP

TỔNG QUAN VỀ THỰC TẠI ẢO

Hình 1.2. Lớp học ảo


1.1.3 Y học
Đây là lĩnh vực mà thực tại ảo đem lại nhiều lợi ích thiết thực và cần thiết nhất
trong cuộc sống. 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ế. Nhiều phương pháp chuẩn đoán và chữa trị
trong y học đã được ra đời dựa trên các nghiên cứu trong môi trường thực tại ảo.
1.1.4 Xây dựng
Xiệc thiết kế và xây dựng một ngôi nhà ngày nay đã được hỗ trợ rất nhiều bởi
công nghệ thực tại ảo. Kiến trúc sư khơng chỉ hồn thiện các bản vẽ của mình trên giấy
theo ý tưởng của khách hàng nữa mà có thể xây dựng hồn tồn một khơng gian ngơi
nhà, cơng trình mà khách hàng mong muốn, thêm vào đó là các thao tác đi lại, quan sát
: “ sống thử “ trong không gian ảo được tao ra với sự hỗ trợ của công nghệ thực tại ảo.
Ngoài một số lĩnh vực quan trọng kể trên, thực tại ảo trong thời đại hiện nay
còn có mặt trong rất nhiều trong các lĩnh vực khác trong cuộc sống mà trong phạm vi
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
q 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ế
nhiều.
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.2.

Lịch sử ra đời và phát triển của VRML

Năm 1989, một dự án với tên gọi là Scenario được bắt đầu được triển khai tại
công ty Silicon Graphics (Hoa Kỳ), do Rikk Carey và Paul Strauss thiết kế nhằm xây
dựng một cơ sở hạ tầng cho các ứng dụng đồ họa 3D có khả năng tương tác với người
NGUYỄN VIẾT LINH

16


ĐỒ ÁN TỐT NGHIỆP

TỔNG QUAN VỀ NGÔN NGỮ VRML

sử dụng. Hai mục tiêu ban đầu của dự án là xây dựng một môi trường phát triển mới,
giúp tạo ra một loạt các tương tác, các ứng dụng 3D phân tán, và sử dụng chính mơi
trường này để xây dựng nên một loại giao diện desktop 3D mới. Giai đoạn đầu của dự
án tập trung vào thiết kế, xây dựng ngôn ngữ và cơ chế cho các khung (frame work)
nền tảng.
Năm 1992, sản phẩm đầu tiên của dự án – công cụ Iris Inventor 3D được phát
hành. Iris Inventor là một bộ cơng cụ C++, nó đã chỉ ra được nhiều ngữ nghĩa của vẫn
dùng trong VRML ngày nay. Kết quả quan trọng của bộ công cụ này là đã định dạng
được các file được dùng để lưu trữ các đối tượng ứng dụng. Ngay từ ban đầu, các định
dạng file Inventor đã được thiết kế để có dung lượng nhỏ và dễ sử dụng.
Tới năm 1994, phiên bản thứ hai của Iris Inventor được phát hành, và được gọi

là “Open Inventor” – bởi khả năng tương thích trên rất nhiều nền tảng khác nhau và vì
nó được dựa trên cơng nghệ OpenGL của Silicon Graphics. Gavin Bell đã nghiên cứu
và soạn ra các bản thảo đầu tiên gồm các tài liệu tham khảo, hướng dẫn sử dụng, mô tả
các đối tượng và định dạng file trong bộ công cụ Open Inventor. Từ đó VRML 1.0 ra
đời.
Trong năm 1994, Mark Pesce và Tony Parisi đã xây dựng một nguyên mẫu ban
đầu cho một trình duyệt 3D với World Wide Web (WWW) gọi là Labyrinth. Cuối năm
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

VMRL mô tả các đối tượng 3D và thế giới ảo bằng cách sử dụng một đồ thị
cảnh phân cấp. Các đối tượng trong đồ thị Scene Graph được gọi là các node. VRML
2.0 định nghĩa 54 loại node khác nhau, bao gồm các hình khối cơ bản, các thuộc tính
appearance, âm thanh, và các kiểu khác nhau của node Group. Node lưu trữ dữ liệu
của nó ở trong các trường (fields), VRML 2.0 định nghĩa 20 loại trường khác nhau.
VRML scene graph là một đồ thị phi chu trình. Các node có thể chứa các node
khác (một số loại node có thể chứa node con (children)) và có thể được chứa trong
nhiều node (mỗi node có thể có nhiều hơn một node cha (parent)), nhưng một node
phải bao gồm chính nó. Cấu trúc đồ thị scene graph này có tác dụng làm cho người lập
trình dễ dàng tạo ra một thế giới ảo bao gốm rất nhiều đối tượng và có các cấu trúc
phức tạp.
2.3.2. Event Architecture – Kiến trúc sự kiện

VRML 2.0 định nghĩa cơ chế sự kiện thông qua các node trong Scene Graph,

các sự kiện có thể giao tiếp được với nhau. Mỗi loại node xác định tên và loại của các
sự kiện mà các sự kiện đó có thể tạo ra hoặc nhận vào, và xác định tuyến (ROUTE) –
đường dẫn sự kiện giữa các đối tượng phát (hay nhận) sự kiện.
2.3.3. Sensor – Cảm biến

Cảm biến (Sensor) là tương tác cơ bản giữa người dùng và đối tượng 3D. Node
TimeSensor tạo ra các sự kiện (như thời gian trôi) và là cơ sở cho tất cả các hành vi
hoạt ảnh. Những cảm biến khác đều là cơ sở cho tất cả các tương tác giữa người dùng
với thể giới, các cảm biến tạo ra các sự kiện với tư cách người xem, có khả năng di
chuyển thông qua thế giới, hay khi người dùng tương tác với một số thiết bị đầu vào do
người lập trình định sẵn. Cảm biến chỉ tạo ra các sự kiện, nó cần phải kết hợp với các

NGUYỄN VIẾT LINH

18


ĐỒ ÁN TỐT NGHIỆP

TỔNG QUAN VỀ NGÔN NGỮ VRML

node khác thơng qua node ROUTE để có hiệu lực – lúc này sự kiện tương tác cảm biến
đó mới có tác dụng.
2.3.4. Scripts và Interpolators

Các node kịch bản (Scripts) có thể được chèn vào giữa các máy phát sự kiện
(đối tượng được đặt để tạo ra sự kiện) (ở đây thường gắn với cảm biến là các nút) và
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 tố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 ngồi file VRML và nó là cơ chế cơ bản để mở rộng cho VRML.

2.4.
Ứng dụng VRML
2.4.1. VRML và web 3d

trong thời đại hiện nay – X3D

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). Ngồ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
triển các hình ảnh 3 chiều , xây dựng một thế giới ảo có khả năng tương tác với người
dùng. VRML phù hợp với hầu hết các kết cấu hạ tầng hiện có của Internet và word
wide web. VRML được kết hợp với HTML và Java để tạo ra những trải nghiệm trên
website mới và thú vị cho người sử dụng.
Có rất nhiều cách để kết hợp VRML, HTML và Java với nhau :
File VRML bên trong một file HTML : Sử dụng chuẩn bán HTML, bằng cách dùng
<EMBED> hay <OBJECT> HTML tag. Mã Java bên trong một file VRML : Đây là
một chuẩn không bắt buộc của VRML 2.0 . Sử dụng nút Script để soạn thảo đoạn mã
Java
• Java applet giao tiếp với mợt trình dụt VRML.
• File HTML bên trong một file VRML : Sử dụng một file HTML như một texture map
để hiển thị nó bên trong thế giới 3D - VRML
• Java applet bên trong một file VRML : Tương tự, sử dụng java applet như một texture
map



2.4.2. X3D – phát triển của VRML

Mặc dù đã được sử dụng để xây dựng nhiều mô hình 3D để đem lại nhiều tiện
ích, trải nghiệm có giá trị cho người dùng. Tuy nhiên, tại thời điểm nó ra đời, cơ sở hạ
tầng máy tính và mạng internet chưa đủ đáp ứng được nhu cầu cho việc đưa các ứng
dụng 3D đó lên mơi trường web một cách hoàn thiện. Mà theo Toni Parisi- một trong
những nhà đồng sáng lập nên VRML thì : “mọi thứ đều chưa chín muồi: đường truyền
khơng đủ lớn, máy tính khơng đủ nhanh, trình duyệt Web và hệ điều hành chưa có đủ
tính năng để xây dựng 3D”.
Sau đó, trong những năm cuối thế kỷ 20 đầu thế kỷ 21 với sự phát triển mạnh
mẽ của máy tính cũng như nền tảng web, khả năng hiển thị và truyền tải 3D trở nên
mạnh mẽ hơn trước rất nhiều. VRML khi đó đã có thể đáp ứng được nhu cầu của một
nền tảng xây dựng web 3D.
Tuy nhiên, VRML mới những nhược điểm còn tồn tại lại chưa thực sự phù hợp
với nền tảng mạnh mẽ hiện tại, do đó, một chuẩn đồ họa dụa trên nền tảng VRML đã
ra đời . Đó là X3D .
Là một phát triển của VRML, X3D đã khắc phục được các nhược điểm như
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" " /> ">
<Scene>
<Shape>
<IndexedFaceSet CoordIndex = "0 1 2">
<Coordinate point = "0 0 0 1 0 0 0,5 1 0" />
</ IndexedFaceSet>
</ Shape>
</ Scene>
</ X3D>

Ngồ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 ngồ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.
3.1.1.

Tập tin VRML
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
thảo văn bản như Notepad hay WordPad, rồi sau đó lưu file với phần mở rộng wrl. Bên
cạnh đó , giúp cho việc soạn thảo code VRML hiệu quả hơn , cịn có một số cơng cụ
khác như VrmlPad – đây là công cụ sẽ được sử dụng để tạo các file VRML trong các
phần
sau
của
tài
liệu.(
Download
công
cụ
VrmlPad
tại
)
Việc dịch và chạy một file *.wrl lại yêu cầu một bộ Player trợ giúp cho hiển thị
các đối tượng và hiệu ứng trong VRML . Trong nhiều bộ Player hỗ trợ VRML hiện
nay, em chọn sử dụng bộ Cortona 3D Viewer được cung cấp miễn phí tại địa chỉ
/>Sau khi cài đặt bộ player trên, chúng ta có thể mở file .wrl với đầy đủ các đối
tượng và hiệu ứng VRML cùng các trình duyệt web như IE, FireFox,Chrome hoặc
build thơng qua bộ debug trong VrmlPad .
3.1.2. Cấu trúc file VRML *.wrl


1 file VRML (*.wrl) có 3 thành phần cơ bản :

• Tiêu đề (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 utf-8 dành cho phiên bản 2.0.
• Phần chú thích (comment) : bắt đầu bằng dấu # và được chương trình bỏ qua khi dịch
và chạy
• Các node : hay còn gọi là các thẻ , là thành phần chính của một file VRML, bao gồm
các phần tổng quát sau:
o Loại node ( bắt buộc ) . Tên node phải viết hoa
o Các cặp dấu đóng mở ngoặc {…} ( bắt buộc phải có)
o Các trường (field) : có thể có nhiều trường trong một node, các node này là
tùy chọn, không bắt buộc. Thứ tự các trường trong node không bắt buộc

NGUYỄN VIẾT LINH

22


ĐỒ ÁN TỐT NGHIỆP
o






TÌM HIỂU CHI TIẾT NGƠN NGỮ VRML


Các trường gồm nhiều giá trị thì phải nằm trong các cặp […] , tên các trường
luôn bắt đầu bằng chữ thường

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”
Ngồ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

3.1.3.1.

TÌM HIỂU CHI TIẾT NGƠN NGỮ VRML

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
động giá trị trong khoảng từ 0 đến 1, tương ứng với các giá trị màu Red, Green, Blue.
Ví dụ 1 0 0 là màu đỏ, 0 1 0 là màu xanh lục.
MFColor là một trường chứa nhiều 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à một số các giá trị dấu chấm động, ví dụ [1.0, 2.0, 4.5].

3.1.3.4.


SFInt32 và MFInt32

Các số nguyên đơn lẻ hoặc chuỗi 32bit có thể theo dạng thập phân hoặc hexa.
Các số hexa bắt đầu với 32 bit, ví dụ 0xFF là 255 hệ thập phân.

3.1.3.5.

SFString và MFString

Chứa danh sách các ký tự trong tập ký tự utf-8.
Chuỗi SFString như “Đồ án tốt nghiệp”, là một chuỗi ký tự trong dấu nháy
kép.
Chuỗi danh sách MFString ví dụ như : [ “Đồ án”, “Khoa” ].
SFRotation và MFRotation
SFRotation là một bộ 4 giá trị định nghĩa phép quay tùy ý, 3 giá trị đầu quy
định giá trị quay theo các trục, còn giá trị cuối cùng quy định góc quay tính bằng
radian theo ngun tắc quay “bàn tay phải “
MFRotation quy định một danh sách các phép quay tùy ý.
3.1.3.7.
SFImage
3.1.3.6.

Xác định một điểm ảnh – pixel – không nén 2 chiều
Giá trị pixel được giới hạn đến 256 mức cường độ . Ví dụ 0-255 trong hệ thập
phân hoặc 0x00-0xFF trong hệ 16

3.1.3.8.

SFTime và MFTime

Thời gian đơn lẻ hoặc một danh sách thời gian

NGUYỄN VIẾT LINH

24


ĐỒ ÁN TỐT NGHIỆP

3.1.3.9.

TÌM HIỂU CHI TIẾT NGƠN NGỮ VRML

SFVec2f và MFVec2f

Các vector đơn lẻ hoặc danh sách các vector 2D. Một vector 2D là một cặp các
số thực dấu chấm động.

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 nodeName

nodeType

{fields}

USE nodeName
Trong đó :
nodeName là tên node do người sử dụng đặt ( tên này là duy nhất khơng trùng
nhau ).
• nodeType 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


×