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

sử dụng công nghệ VR viết chương trình tham quan Phòng Thí Nghiệm

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 (1.26 MB, 38 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC THỦY LỢI HÀ NỘI
---------------------------------------

NGHIÊN CỨU KHOA HỌC SINH VIÊN

ĐỀ TÀI: SỬ DỤNG CÔNG NGHỆ VR XÂY DỰNG CHƯƠNG
TRÌNH THAM QUAN PHÒNG THÍ NGHIỆM KỸ THUẬT ĐIỆN

NGƯỜI HƯỚNG DẪN: Ths. Nguyễn Thị Thanh
Ths. Nguyễn Duy Long
NGƯỜI THỰC HIỆN:
Vũ Hữu Tỉnh

Lớp: 55KTĐ - TĐH

Hoàng Mạnh Hùng Lớp: 55KTĐ - TĐH

Hà Nội – Năm 2017


MỤC LỤC


Lời mở đầu
Hiện nay, với việc học tập lý thuyết đi kèm chặt chẽ với việc
thực hành thì một yêu cầu quan trọng đặt ra là làm sao có thể để
người học, hay sinh viên có thể được tiếp xúc một cách trực quan,
sâu sắc nhất có thể với những mô hình cần thí nghiệm.Vì thế, nhóm
nghiên cứu đã đặt ra mục tiêu là thiết kế một mô hình 3D phòng thí
nghiệm kỹ thuật điện, và một khu nhà học ở trường Đại học Thủy lợi


đi kèm các hiệu ứng giao tiếp như thật có thể đem lại cho người sử
dụng một cảm giác như đang trực tiếp đứng tại ngôi trường này.
Mô hình được thể hiện trên nền một trang web nên mọi người có thể
dễ dàng tham quan trực tiếp phòng thí nghiệm kỹ thuật điện của
trường đại học Thủy Lợi mà không cần cài đặt gì nhiều.


Chương I: Tổng quan về côn nghệ thực tế ảo
(Virtual Reality)
1. Công nghệ thực tế ảo VR
*Lịch sử ra đời
VR không phải là một phát minh mới, mà ngay từ năm 1962 Morton
Heilig (người Mỹ) đã phát minh ra thiết bị mô phỏng SENSORAMA.
Tuy nhiên cũng như nhiều ngành công nghệ khác, VR chỉ thực sự
được phát triển ứng dụng rộng rãi trong những năm gần đây nhờ vào
sự phát triển của tin học (phần mềm) và máy tính (phần cứng). Ngày
nay VR đã trở thành một ngành công nghiệp và thị trường VR tăng
trưởng hàng năm khoảng 21% và dự tính đạt khoảng 3,4 tỷ $ năm
2005 (theo Machover, 2004). Và theo dự đoán của Gartner (tổ chức
nghiên cứu thị trường toàn cầu), VR đứng đầu danh sách 10 công
nghệ chiến lược năm 2009.
1) Khái niệm
-Thực tế ảo hay còn gọi là thực tại ảo (tiếng Anh là virtual reality,
viết tắt là VR) là thuật ngữ miêu tả một môi trường mô phỏng
bằng máy tính. Đa phần các môi trường thực tại ảo chủ yếu là hình
ảnh hiển thị trên màn hình máy tính hay thông qua kính nhìn ba
chiều, tuy nhiên một vài mô phỏng cũng có thêm các loại giác quan
khác như âm thanh hay xúc giác.
-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.
-Là công nghệ giúp con người có thể “cảm nhận” không gian mô
phỏng một cách chân thực hơn nhờ vào một loại kính nhìn 3 chiều
( kính thực tế ảo). Môi trường 3D ảo này được tạo ra và điều khiển
bởi một hệ thống máy tính cấu hình cao.
-Đặc biệt, không chỉ đơn thuần hiển thị hình ảnh 3D, một số hệ
thống VR còn cho phép mô phỏng âm thanh và mùi khá là chân
thực!
Đặc tính chính của VR là Tương tác (Interactive) và Đắm chìm
(Immersion). Tuy nhiên, VR không chỉ là một hệ thống tương tác
Người - Máy, 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 phụ thuộc rất nhiều vào khả năng tưởng tượng
(Imagination) của con người. 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 (“3I” trong tiếng Anh:
Interactive – Immersion - Imagination).
2) Các thành phần một hệ thống VR
Một hệ thống VR tổng quát bao gồm 5 thành phần: phần mềm (SW),
phần cứng (HW), mạng liên kết, người dùng và các ứng dụng. Trong
đó 3 thành phần chính và quan trọng nhất là phần mềm (SW), phần
cứng (HW) và các ứng dụng.

*Phần cứng
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 vị trí quan sát. Bộ giao diện định vị (Navigation

interfaces) để di chuyển vị trí 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ư Hi-Fi, 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,...
*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.
3) Những đặc tính ưu việt của công nghệ thực tế ảo VR
Một hệ thống thực tế ảo thì tính tương tác, các đồ họa ba chiều thời
gian thực và cảm giác đắm chìm được xem là các đặc tính then chốt.
-Tương tác thời gian thực (real-time interactivity): 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.
-Cảm giác đắm chìm: là một hiệu ứng tạo khả năng tập trung sự chú
ý cao nhất một cách có chọn lọc vào chính những thông tin từ người
sử dụng hệ thống thực tế ảo. Người sử dụng cảm thấy mình là một
phần của thế giới ảo, hòa lẫn vào thế giới đó. VR còn đẩy cảm giác
này “thật” hơn nữa nhờ tác động lên các kênh cảm giác khác. Người
dùng không những nhìn thấy đối tượng đồ họa 3D, điều khiển (xoay,
di chuyển..) được đối tượng mà còn sờ và cảm thấy chúng như có
thật. Các nhà nghiên cứu cũng đang tìm cách tạo những cảm giác
khác như ngửi, nếm trong thế giới ảo.
-Tính tương tác: có hai khía cạnh của tính tương tác trong một thế
giới ảo: sự du hành bên trong thế giới và động lực học của môi
trường. Sự du hành là khả năng của người dùng để di chuyển khắp
nơi một cách độc lập, cứ như là đang ở bên trong một môi trường
thật. Nhà phát triển phần mềm có thể thiết lập những áp đặt đối với
việc truy cập vào những khu vực ảo nhất định, cho phép có được
nhiều mức độ tự do khác nhau (Người sử dụng có thể bay, xuyên


tường, đi lại khắp nơi hoặc bơi lặn…). Một khía cạnh khác của sự du
hành là sự định vị điểm nhìn của người dùng. Sự kiểm soát điểm
nhìn là việc người sử dụng tự theo dõi chính họ từ một khoảng cách,
việc quan sát cảnh tượng thông qua đôi mắt của một con người
khác, hoặc di chuyển khắp trong thiết kế của một cao ốc mới như
thể đang ngồi trong một chiếc ghế đẩy… Động lực học của môi
trường là những quy tắc về cách thức mà người, vật và mọi thứ
tương tác với nhau trong một trật tự để trao đổi năng lượng hoặc
thông tin.



Chương II: Ứng dụng của công nghệ Thực tế ảo
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í, du lịch, địa ốc… và đáp ứng mọi nhu cầu: Nghiên cứu- Giáo dụcThương mại-dịch vụ. Y học, du lịch 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í, du lịch ảo (Virtual Tour), bất động sản… 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ư: giả lập môi
trường game, tương tác ảo. Khi đeo loại kính thực tế ảo, các game
thủ sẽ thấy mình như được hòa mình vào thế giới không gian 3D với
góc nhìn rộng lên tới 110 độ, thật hơn rất nhiều so với khi chúng ta
ngồi trước màn hình máy tính với góc nhìn chỉ 45 độ. Bạn sẽ cảm
thấy choáng ngợp đặc biệt khi chơi các game nhập vai hay FPS.
Ứng dụng trong quân sự

Ứng dụng môi trường thực tế ảo để huấn luyện quân đội. Chương
trình huấn luyện quân đội mới của hãng Cubic cho phép người lính
có thể tự do di chuyển trong một môi trường thực tế ảo 360 độ.
Thông qua một chiếc kính đeo trước mắt, họ có thể nhìn và tương
tác với cảnh vật xung quang trong môi trường ảo đó để di chuyển và
tập luyện chứ không bị bó buộc phải đứng một chỗ như các hệ thống
huấn luyện ảo như trước đây, thường là phải thông qua các máy
chiếu hoặc tập luyện trên các màn hình kích thước lớn.


Với hệ thống mới này, người lính có thể tự do di chuyển trong một
môi trường thực tế ảo. COMBATREDI chủ yếu bao gồm một chiếc

kính đeo trên đầu dùng để chiếu hình ảnh độ phân giải cao của một
môi trường thực tế ảo 3 chiều cung cấp tầm nhìn 360 độ, một bộ tai
nghe stereo để giả lập âm thanh trong môi trường ảo đó, một khẩu
súng không dây đeo ống nhòm giả lập hình ảnh và quan trọng hơn
hết đó là “bộ não” gồm một chiếc máy tính nhỏ gọn đeo trên lưng
người lính, chứa bộ vi xử lý Intel Core 2 Duo, 2 GB RAM DDR2 và ổ
cứng để tạo nên môi trường giả lập cho người lính. Chưa hết, các bộ
cảm biến bên trong COMBATREDI có khả năng nhận biết trạng thái
của người lính như đang đứng yên, di chuyển hay đang quỳ gối, nằm
xuống… để từ đó thay đổi tầm nhìn trên chiếc mắt kính cho phù hợp.
Tuy sử dụng khẩu súng trường giả lập nhưng nó vẫn buộc người lính
phải thao tác lựa chọn chế độ bắn và thay băng đạn mỗi khi hết bạn
để nâng cao tính thực tế của hệ thống huấn luyện này.
Ứng dụng trong khoa học – kỹ thuật
Với sự trợ giúp của thực tại ảo, ngày nay, con người không những có
thể xem được hình ảnh trực quan của các thiết bị cần sản xuất mà
thậm chí người ta còn có khả năng sử dụng hay thay đổi các chi tiết
của các thiết bị đó. Việc này nhằm giúp cho các nhà khoa học và các
kỹ sư thuận lợi hơn trong việc tạo ra một sản phẩm hợp ý muốn mà
không cần tốn nhiều chi phí.

Ứng dụng trong y tế
Trong y học ứng dụng của công nghệ thực tế ảo VR là cùng lớn, nó
được dùng trong hầu hết các lĩnh vực của y tế như phẫu thuật, phân


tích tâm lý, điều trị chứng sợ hãi, hay đào tạo nhận thức cho trẻ em
bị tự kỉ,….Các lixh vực đó cụ thể như sau:
*Điều trị tiếp xúc
Đây là cách điều trị đang được áp dụng với bệnh nhân có những ám

ảnh về tâm lý. Ví như các bác sĩ tâm thần học thuộc đại học
Louisville đã sử dụng VR để giúp bệnh nhân vượt qua nỗi sợ hãi khi
nhìn thấy những vật thể bay hoặc chứng sợ những nơi tù túng, chật
hẹp.
VR sẽ mô phỏng lại môi trường chứa những nỗi sợ hãi của các bệnh
nhân. Qua đó, bệnh nhân phải học cách đối mặt và làm quen dần với
các nỗi sợ hãi đó theo mức độ tăng dần. Ngoài ra, với những môi
trường giả định như vậy, bệnh nhân sẽ được điều trị và hướng dẫn
để thực hành cách đối phó với những chứng sợ của riêng mình.
*Kiểm soát cơn đau
VR được sử dụng để giúp bệnh nhân giảm tập trung vào cơn đau
thay cho thuốc giảm đau. Ví dụ, với những nạn nhân bỏng, đau đớn
kéo dài là điều không thể tránh khỏi.
Các bác sĩ Đại học Washington (Mỹ) sẽ cho bệnh nhân đeo VR để tập
trung vào những trò chơi thú vị được gọi là Thế giới tuyết
(SnowWorld) hoặc nghe những bản nhạc có tác dụng làm họ giảm
tập trung vào các cơn đau bằng cách áp đảo các giác quan và cản
trở việc não bộ cảm nhận cơn đau đó. Điều này giúp ích rất nhiều
cho việc chăm sóc vết thương, vật lý trị liệu.
Cụ thể, năm 2011, những người lính bị bỏng trong vụ nổ IED đã được
giảm đau bằng cách sử dụng SnowWorld tốt hơn so với morphine.
*Đào tạo phẫu thuật


Tập huấn cho bác sĩ phẫu thuật buộc phải trải qua nhiều quá trình
có liên quan đến tử thi mới có kinh nghiệm để đảm nhận những ca
phẫu thuật cho các bệnh nhân. VR trở thành một phương tiện thực
hành mà không hề gây ra bất kì rủi ro nào cho những cơ thể sống
của bệnh nhân.
Đại học Stanford, nơi mà VR được sử dụng trong các buổi thực thành

phẫu thuật. Thậm chí là thực hành phẫu thuật trong không gian ảo
nhưng vẫn cả những thông tin phản hồi xúc giác kèm theo.
Từ năm 2002, Đại học Stanford đã thực hành mổ xoang nội soi sử
dụng công nghệ scan CT để tạo ra mô hình 3D từ bệnh nhân. Trong
khi đó, nếu sử dụng VR thì không cần đến một mô hình 3D đầu
người.
*Đào tạo nhận thức xã hội cho trẻ em tự kỷ
Các giáo sư thuộc Đại học Tesax (bang Dallas, Mỹ) đã thiết kế một
bộ giáo trình học tập trên VR để giúp trẻ tự kỷ học được những kỹ
năng xã hội cần thiết.
VR sẽ được nối với bộ cảm biến để theo dõi sóng não và đặt trẻ em
vào những tình huống cơ bản trong cuộc sống như phỏng vấn xin
việc, cuộc hẹn với những người chưa từng gặp bao giờ.
Sau khi hoàn chỉnh một quá trình đào tạo, khi quét não bộ của trẻ tự
kỷ, các bác sĩ nhận thấy rõ sự gia tăng hoạt động vùng não gắn liền
với sự phát triển hiểu biết xã hội.
*Đánh giá tổn thương não và phục hồi chức năng
VR hỗ trợ về mặt kỹ thuật trong việc phục hồi chức năng của những
bệnh nhân bị tổn thương, khuyết tật ở não.


Ban đầu, VR được phát triển để tạo ra những môi trường ảo nhằm
giúp các bác sĩ hoặc nhà tâm lý đánh giá khả năng nhận thức của
bệnh nhân trong những trường hợp cụ thể.
Hiện nay, VR bước thêm một bước nữa để hỗ trợ phục hồi chức năng
não bộ như rối loạn hành vi, trí nhớ kém, khả năng tập trung kém,
chứng sợ những hình ảnh đa diện và nhiều khiếm khuyết khi não bị
tổn thương. Trong tương lai, VR sẽ trở thành một phần không thể
thiếu trong việc đánh giá nhận thức và phục hồi chức năng não bộ.
Ứng dung trong lĩnh vực giải trí

Hiện nay điện ảnh và Game là 2 lĩnh vực ứng dụng công nghệ thực
tế ảo nhiều nhất. Nhiều trò chơi được lập trình, phát triển dựa trên
công nghệ này giúp con người có thể hòa mình vào không gian sống
động 3D trong game. Bên cạnh đó, điện ảnh cũng đang phát triển
mạnh mẽ công nghệ này. Trong đó, rất nhiều chuyên gia trong
ngành đã nhận định, kính VR dần dần sẽ thay thế kính 3D, trong khi
công nghệ chiếu phim thực tế ảo sẽ "soán ngôi" chuẩn định dạng 3D
hay IMAX như hiện nay.
Game thực tại ảo hiện nay đã trở thành một ngành công nghiệp thu
được nhiều lợi nhuận. Ở nước ta hiện nay thì game thực tại ảo chưa
được biết tới nhiều song ở một số nước phát triển thì đây là một
ngành giải trí thu lợi nhuận khổng lồ, ví dụ các nước Mỹ, Nhật,
Anh, ...

Ứng dụng trong giáo dục

Có thể nói, lợi ích lớn nhất của thực tế ảo (VR) là khả năng tương tác
độc đáo, cho phép con người trên khắp thế giới giao tiếp với nhau


một cách thoải mái mà không còn bị hạn chế bởi vấn đề kinh tế hoặc
địa lý. Trong số này, giáo dục là một trong những ngành được hưởng
lợi nhiều nhất, bởi giáo viên và người học sẽ có được cái nhìn thực
tiễn và trực quan hơn bao giờ hết.
Việc ứng dụng công nghệ thực tế ảo vào các giờ học sẽ mang đến
cái nhìn trực quan và toàn diện nhất cho học sinh.
Ở 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ẻ. Công nghệ VR sẽ làm cho việc này trở nên thú vị hơn
rất nhiều. Người học có thể điều khiển một nhân vật đại diện cho
mình đi lại trong một trường học ảo được xây dựng trên máy tính.

Người học cũng có thể tham gia vào bất cứ lớp học ảo nào mà họ
thích và nói chuyện với những thành viên khác trong lớp.

Ứng dụng trong thể thao
Cùng với sự phát triển của xã hội, công nghê thực tế ảo VR cũng
đang dần phát triển lớn mạnh trong lĩnh vực mô phỏng có bộ môn
thể thao, tương tác với con người để mọi người đều có thể chơi thể
thao ở bất cứ đâu, bất cứ nơi nào.


Chương III: Tổng quan về ngôn ngữ VRML và phần
mềm
đồ họa 3D Sketchup
Để mô phỏng phòng thí nghiệm Kỹ thuật điện, chúng em sử dụng
phần mềm đồ họa kỹ thuật 3D sketchup để vẽ mô hình 3D của
phòng kỹ thuật. Bằng phần mềm này chúng em sẽ cụ thể hóa được
các chi tiết của phòng thí nghiệm Kỹ thuật điện như: bàn, ghế, bảng
tủ, khung cảnh phòng thí nghiệm. Sau đó, từ file skepchup sẽ
chuyển sang file định dạng của 3Dcontona để mô hình hóa không
gian 3D thực tế ảo, tại đó người xem có thể tương tác với các đồ vật
có trong mô hình. Để từ đó, mọi người khi xem không gian thực tế ảo
sẽ có cái nhìn cụ thể nhất về phòng thí nghiệm, từ đó giúp các bạn
sinh viên nắm rõ hơn về phòng thí nghiệm và các bài học khi tham
gia thí nghiệm ở đây.
Để tương tác được với các chi tiết, đồ vật trong mô hình mô phỏng
chúng em sử dụng ngôn ngữ VRML để điều khiển tương tác.
3.1. Tìm hiểu về ngôn ngữ VRML
3.1.1. Khái niệm VRML
VRML (Virtual Reality Modeling Language) là ngôn ngữ mô hình hóa
thực tại ảo, một định dạng tập tin được sử dụng trong việc mô tả thế

giới thực và các đối tượng đồ họa tương tác ba chiều, sử dụng mô
hình phân cấp trong việc thể hiện tương tác với các đối tượng của
mô hình, đượ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) mà không phụ thuộc
vào hệ điều hành.
Các ứng dụng 3D của VRML có thể truyền đi một cách dễ dàng trên
mạng 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ếu HTML là định dạng văn bản thì VRML
là định dạng đối tượng 3D có thể tương tác và điều khiển thế giới ảo.
Hiện nay, VRML có lợi thế là sự đơn giản, hỗ trợ dịch vụ Web3D, 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 đồ họa ba chiều một cách nhanh chóng và chân thực
nhất.
VRML là một trong những 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, đượ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ớ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 và cho
phép chạy trên môi trường web, VRML đã trở thành chuẩn ISO từ
năm 1997
3.1.2. Lịch sử ra đời và phát triển của VRML
Năm 1994, lần đầu tiên VRML được thảo luận tại hội nghị
WWW, Gieneva, Thụy Sĩ. Tim Berners-Lee 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ại ả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 WWW-VRML được
thành lập để tập trung vào xây dựng phiên bản VRML đầu tiên.
Vào tháng 3/ 1995, 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” gửi đế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 lấy phiên bản năm 1996 của VRML 2.0 để đưa ra xem xét vào
tháng 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.
3.1.3. Đặ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.
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.
3.2. Các kiểu dữ liệu và đối tượng trong VRML
3.2.1 Các kiểu dữ liệu trong VRML
Trong VRML, các nút có thể chứa các nút khác và có thể chứa các
trường. Mỗi trường có các kiểu dữ liệu khác nhau. Sau đây là mô tả
của chúng:
SFBool
Đây là giá trị kiểu logic, có thể nhận giá trị “TRUE” hay “FALSE”.
SFColor & MFColor
SFColor là trường chứa màu sắc, được tạo nên từ ba số thực từ 0 đến
1 tương ứng với các giá trị màu red, green và blue (RGB) (ví dụ: 0 1
0 là green). MFColor là một tập hợp gồm các màu sắc (ví dụ: [0 1 0,
1 0 0, 0 0 1] là tập hợp gồm ba màu green, red và blue).
SFFloat & MFFloat
SFFloat là giá trị kiểu số thực (ví dụ: 7.5). MFFloat là một tập các giá
trị số thực (ví dụ: [1.0, 3.4, 76.54]).
SFImage
SFImage là hình ảnh hai chiều được tạo nên từ các điểm ảnh. Nó bao
gồm:
Hai số nguyên, đại diện chiều rộng và chiều cao của hình ảnh cũng
chính là số điểm nằm trên chiều rộng và chiều cao của hình.
Một số nguyên biểu thị số thành phần của hình ảnh. Số thành phần
là 1 tức hình ảnh trắng đen, là 2 cũng tương tự nhưng có thêm độ
trong suốt, là 3 thì hình sẽ có màu (RGB), và 4 là hình ảnh có màu
kết hợp với độ trong suốt.
Sau đó, là các con số được biểu diễn dưới dạng thập lục phân đại
diện cho màu sắc của từng điểm ảnh. Ví dụ 0xFF là màu trắng trong
hình ảnh một thành phần và 0xFF00007F sẽ là màu đỏ nhạt trong
hình ảnh bốn thành phần.
Các điểm được chỉ rõ theo thứ tự từ trái sang phải, từ trên xuống

dưới.


Ví dụ: 1 2 1 0xFF 0x00 # Hình ảnh một thành phần gồm 2
điểm màu trắng và đen.
SFInt32 & MFInt32
Giá trị kiểu số nguyên hoặc dãy các số nguyên 32 bit có thể theo
dạng thập phân hoặc thập lục phân. Các số thập lục phân 32 bit bắt
đầu bằng “0x”, ví dụ 0xFF là 255 hệ thập phân.
SFNode & MFNode
SFNode là một nút đơn lẻ và MFNode là danh sách các nút. Trường
children với nhiều nút là kiểu MFNode.
SFRotation & MFRotation
Các trường này chỉ ra một phép quay xung quanh một trục, nó được
tạo nên từ 4 số thực, ba số thực đầu tiên chỉ rõ các toạ độ X, Y và Z
cho các vectơ tương ứng với trục để quay, số thứ tư là góc (tính bằng
radian) để quay. SFRotation là một tập, MFRotation là một danh sách
các tập.
SFString & MFString
Loại này chứa danh sách các kí tự trong tập kí tự utf-8, Nói đơn giản
thì SFString là một xâu kí tự và MFString là tập các xâu kí tự. Ví dụ
SFString là “Hello” (các kí tự nằm trong dấu nháy kép) còn MFString
thì tham số truyền vào có dạng là [“Hello” “VRML”].
SFTime & MFTime
Kiểu dữ liệu đặc trưng cho một mốc thời gian hoặc danh sách các
mốc thời gian.
SFVec2f & MFVec2f
Các vectơ 2D đơn lẻ hoặc danh sách các vectơ 2D. Một vectơ 2D
được tạo bởi một cặp các số thực.
SFVec3f & MFVec3f

Một vectơ 3D hoặc một danh sách các vectơ 3D. Một vectơ 3D là
một bộ 3 số thực.
3.2.2.. Các đối tượng hình học cơ bản trong VRML
Các đối tượng hình học trong thế giới ảo thường được cấu tạo từ các
đối tượng hình học cơ bản như hình hộp, hình tròn, hình trụ, hình cầu
… Và VRML cung cấp sẵn cho chúng ta một số các đối tượng hình
học đơn giản đó dưới dạng các nút như Box (hình hộp), Cone (hình
nón), Cylinder (hình trụ tròn), Sphere (hình cầu)…


Các nút nội suy (Interpolators nodes)
Các nút thuộc nhóm nút Interpolators có chức năng giữ các giá trị
xen vào các trường khi có sự kiện thay đổi giá trị các trường xảy ra
(trừ các trường có giá trị kiểu logic). Các nút thuộc nhóm nút này có
cú pháp giống nhau (có cùng các trường) chỉ khác nhau về kiểu dữ
liệu.
Trong VRML cung cấp sẵn các nút Interpolators sau:
ColorInterpolator
CoordinateInterpolator
NormalInterpolator
OrientationInterpolator
PositionInterpolator
ScalarInterpolator
Mỗi nút đều có cú pháp như sau:
…Interpolator {
key […]
keyValue […]
}
Trong đó key là tập các giá trị đầu vào còn keyValue là tập các giá trị
đầu ra. Trong các nút Interpolators đều có một sự kiện đầu vào là

set_fraction và sự kiện đầu ra là value_changed, hai sự kiện này
được nối với nhau tức là khi các nút này khi nhận được một sự kiện
thì nó cũng tạo ra một sự kiện. Sự kiện set_fraction xác định một giá
trị key và sự kiện đầu ra xác định một keyValue tương ứng với giá trị
key.
Các nút Interpolators thường được kết hợp với TimeSensor để tạo ra
các hoạt họa. Xem hình vẽ dưới đây để hiểu rõ hơn về các nút
Interpolators.


Sơ đồ mô tả việc nhận và gửi sự kiện của nút ColorInterpolators
Như trong hình vẽ là một mô tả về nút ColorInterpolator (các nút
khác cũng tương tự như vậy). Vậy khi nút TimeSensor được kích hoạt
thì nó sẽ gửi các giá trị liên tục cho các nút Interpolators và các nút
này cũng sẽ gửi liên tục các giá trị cho một nút khác, theo hình vẽ
thì nút ColorInterpolators đã gửi liên tục các giá trị màu sắc đến đối
tượng nào đó trong thế giới.
Ví dụ:
OrientationInterpolator {
key [ 0.0, 0.50, 1.0 ]
keyValue [
0.0 1.0 0.0 0.0,
0.0 1.0 0.0 3.14,
0.0 1.0 0.0 6.28
]
}
Trong ví dụ này nếu nút này nhận một giá trị là 0.0 thì nó sẽ
gửi trả ra giá trị (0.0 1.0 0.0 0.0) và nếu nhận giá trị từ khoảng 0.0
đến 0.5 thì nó sẽ tính toán và gửi ra giá trị nằm trong khoảng 0.0
đến 3.14 (chính xác là ở đây nếu nó nhận được giá trị là 0,3 thì nó sẽ

trả ra giá trị là 1,88), và tương tự với các giá trị khác.
3.3.Các câu lệnh tiêu biểu trong VRML
3.3.1.Phong cảnh nền và môi trường
Việc xây dựng một thế giới ảo gồm tất cả các đối tượng giống như
với thế giới thực là chuyện không thể vì ta không có đủ thời gian để
thực hiện việc đó. Vì thế chúng ta chỉ có thể xây dựng một thế giới
ảo giống một phần (khu vực) nào đó của thế giới thực. Với các khu
vực xung quanh, nếu chúng ta để trống các khu vực này thì thế giới
của chúng ta sẽ không giống như thực được. Đây thật sự là một vấn
đề khó khăn, và VRML cung cấp cho chúng ta một công cụ giúp che
phủ các phần còn lại đó để thế giới của chúng ta trông thực hơn. Nút
Background được cung cấp nhằm mô tả các đường chân trời của
bạn, nó cho phép chúng ta xác định bầu trời, mặt đất và các hình
ảnh xung quanh thế giới của chúng ta.


3.3.2. Dán hình lên đối tượng
Thay vì phải mất thời gian để vẽ hình lên đối tượng như trên ta có
thể lấy một bức ảnh có sẵn dán lên bề mặt đối tượng như là dán
decal. Kĩ thuật này được gọi là ánh xạ kết cấu (texture mapping).
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, nhưng không phải là sự lựa chọn tốt
cho “texture mapping” vì hình ảnh sẽ bị “bể” khi dán lên đối tượng.
JPEG: từ 8-16 bit, không hỗ trợ trong suốt, là sự lựa chọn tốt cho
“texture mapping”.
PNG: từ 8-16 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”.
Ví dụ:
Shape {
appearance Appearance {

material Material {}
texture ImageTexture {
url “hinha.jpg”
repeatS TRUE
repeatT TRUE
}
}
geometry Box { size 3 4 5}
}


Ở ví dụ này chúng ta lấy hình ảnh “hinha.jpg” từ bên ngoài thông
qua thuộc tính url dán lên đối tượng, các thuộc tính repeatS và
repeatT tương tự như nút PixelTexture.
3.3.3.Màu sắc và hình ảnh trên đối tượng trong VRML
Các đối tượng trong thế giới ảo khi được tạo ra sẽ có màu mặc
định là màu trắng nhưng chúng ta có thể thay đổi chúng nhờ vào nút
Appearance được cung cấp sẵn trong VRML, nút này được sử dụng
để quy định các thành phần xuất hiện trên đối tượng như màu sắc,
hình ảnh, video,… Nút Appearance bao gồm các nút con như:
Material, ImageTexture, MovieTexture…
Màu sắc trong VRML
Nút Material có chức năng tạo màu cho các đối tượng trong VRML.
Màu sắc trong VRML được thể hiện qua 3 tham số là R G B (RedGreen-Blue) với giá trị nằm trong khoảng từ 0.0 đến 1.0. Nút Material
có các thuộc tính sau:
diffuseColor: xác định màu sắc của đối tượng.
emissiveColor: xác định màu của ánh sáng phát ra từ đối tượng.
transparency: xác định độ trong suốt của đối tượng (0: hiển thị rõ, 1:
trong suốt).
ambientIntensity: xác định lượng phản chiếu ánh sáng của đối

tượng.
specularColor: xác định màu sắc của các điểm sáng bóng trên bề
mặt của đối tượng.
shininess: điều chỉnh cường độ sáng cho những điểm sáng bóng.
Ví dụ:
Shape {
appearance Appearance {
material Material {
diffuseColor 1.0 0.5 0.0
emissiveColor 0.0 0.0 0.0
transparency 0.5
specularColor 0.5 0.5 0.5
shininess 0.3


ambientIntensity 0.4
}
}
geometry Box { size 1.0 1.0 1.0}
}
3.3.4. Chiếu phim trên bề mặt đối tượng
Ngoài việc cho phép vẽ hay dán hình lên đối tượng, VRML còn hỗ trợ
việc chiếu một tập tin video trên đối tượng.
VRML chỉ hỗ trợ định dạng video MPEG (bao gồm MPEG1-Systems
(âm thanh và hình ảnh) và MPEG1-Video (chỉ có hình ảnh)).
Cú pháp:
MovieTexture {
loop

FALSE


speed
startTime

1.0

0

stopTime
url

0

[]

repeatS

TRUE

repeatT

TRUE

}
Các thuộc tính:
loop: xác định tính lập lại của bộ phim.
speed: xác định tốc độ chiếu phim, ví dụ speed có giá trị là 2 thì tốc
độ chiếu phim sẽ nhanh gấp hai lần.
startTime và stopTime: xác định khoảng thời gian chiếu và dừng
phim dựa trên thời gian thực.

url: tập các liên kết đến các tập tin video định trình chiếu.

Ví dụ:


Shape {
appearance Appearance {
material Material {}
texture MovieTexture {
url “phim.mp4”
loop TRUE
}
}
geometry Cylinder {height 5}
}
3.3.5. Cảm biến (sensor)
Bằng cách dùng ROUTE chúng ta đã có một số trường nối với nhau,
chúng ta cần một cái gì đó sinh ra một sự kiện để truyền qua các
trường đó. Nếu xem xét kỹ các nút của VRML ta thấy, hầu hết chúng
đều có các trường eventOut nhưng các sự kiện này không thể tự sinh
ra được, trong khi hầu hết các sự kiện sinh ra đều là hệ quả của việc
nhận sự kiện nào đó. Chúng ta cần có những nút có khả năng sinh ra
một sự kiện mới và các nút đó được gọi là các sensor.
Các nút thuộc nhóm sensor có nhiệm vụ cảm nhận các sự kiện đầu
vào từ người dùng và sinh ra các sự kiện có thể chuyển đi trong
khung cảnh.
Có 8 kiểu nút sensor (nút gửi sự kiện ra):
TimeSensor
TouchSensor
VisibilitySensor

PlaneSensor
SphereSensor
CylinderSensor
ProximitySensor
Collision


3.3.6 TouchSensor
Nút này cảm biến khi có sự va chạm vào vật thể, được sử dụng để
mô tả tương tác của người dùng với các vật thể trong thế giới, nút
này thường được dùng trong các nhóm các vật thể để khi người
dùng kích chuột hoặc rê chuột lên một vật thể bất kỳ trong nhóm sẽ
tạo ra sự kiện. Nút này chỉ có một thuộc tính duy nhất là enabled để
xác định tình trạng hoạt động của cảm biến nhưng thông thường
chúng ta không cần chỉ ra giá trị cho thuộc tính này vì nó được mặc
định là có hoạt động (TRUE).
Ví dụ:
TouchSensor {
enabled TRUE
}
Các sự kiện đầu ra:
isOver: gửi trả giá trị TRUE / FALSE khi con trỏ đang ở trong / ngoài
vùng vật thể.
isActive: gửi trả giá trị TRUE / FALSE khi con trỏ nhấn / nhả trên vùng
vật thể.
touchTime: đưa ra giá trị thời gian hiện hành khi có sự kiện xảy ra.
hitPoint_changed: trả ra vị trí 3D của con trỏ.
hitNormal_changed và hitTextCoord_changed: trả ra vectơ hướng
của vật thể và kết cấu bề mặt của vật thể tại vị trí con trỏ.
3.3.7 TimeSensor

Nút TimeSensor là cảm biến cho phép điều khiển thời gian bắt đầu
và kết thúc. Nút này giống như một chiếc đồng hồ tạo ra sự kiện, khi
được kích hoạt thì tạo ra chuỗi sự kiện liên tục theo thời gian, chiếc
đồng hồ đó có thể chạy mãi hoặc sẽ dừng tại một thời điểm xác định
nào đó.
Ví dụ:
TimeSensor {
cycleInterval 1.0
enabled TRUE
loop FALSE


startTime 0
stopTime 0
}
Các thuộc tính:
cycleInterval: xác định số giây tạo ra các sự kiện, ví dụ có giá trị là
1.0 thì sẽ tạo ra các sự kiện liên tiếp trong một giây.
enabled: xác định trạng thái hoạt động của cảm biến.
loop: xác định có lặp hay không.
startTime: thời gian bắt đầu chạy.
stopTime: thời gian kết thúc chạy.
Các sự kiện đầu vào:
set_startTime: thiết lập lại thời gian bắt đầu chạy.
set_stopTime: thiết lập lại thời gian kết thúc chạy.
set_enabled: thiết lập lại trạng thái hoạt động.
Các sự kiện đầu ra:
fraction_changed: (sự kiện này chỉ có khi sử dụng cycleInterval) trả
ra giá trị nằm trong khoảng (0, 1) đại diện cho một phần thời gian
của cycleInterval trôi qua.

isActive: trả ra giá trị TRUE khi đồng hồ chạy và FALSE khi đồng hồ
dừng lại.
3.4. Giới thiệu về phần mềm đồ họa 3D Sketchup
SketchUp là một phần mềm mô hình hóa 3D, dành cho
các kiến trúc sư, các kỹ sư, nhà phát triển trò chơi điện tử, các đạo
diễn điện ảnh và các ngành nghề có liên quan. Phần mềm này khởi
đầu được phát triển bởi công ty @Last Software, có trụ sở
tại Boulder, Colorado, Mỹ. Phần mềm này nổi bật như một công cụ
diễn tả ý tưởng đơn giản, nhanh gọn với giao diện đồ họa cho người
sử dụng.


×