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

Nghiên cứu một số kỹ thuật tương tác trong web 3D

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 (391.12 KB, 38 trang )

Bộ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC sư PHẠM HÀ NỘI 2
NGUYỄN QUANG THÀNH
NGHIÊN CỨU MỘT SỐ KỸ THUẬT TƯƠNG TÁC TRONG WEB 3D
Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01
LUẬN VĂN THẠC SĨ MÁY TÍNH
Người hướng dẫn khoa học: PGS.TS Đỗ Năng Toàn
HÀ NỘI, 2013
Trong quá trình thực hiện luận văn này, em luôn nhận được sự hướng dẫn, chỉ bảo tận tình
của PGS. TS. Đỗ Năng Toàn, Viện Công nghệ Thông tin thuộc Viện Khoa học và Công nghệ Việt
Nam là cán bộ trực tiếp hướng dẫn khoa học cho em. Em xin chân thành cảm ơn sự giúp đỡ quý
báu đó.
Em xin chân thành cảm ơn các Thầy, Cô giáo trong khoa Công nghệ thông tin, các thầy cô
thuộc Viện Công nghệ Thông tin thuộc Viện Khoa học và Công nghệ Việt Nam và các cán bộ, nhân
viên phòng Đào tạo Sau đại học, trường Đại học sư phạm Hà Nội 2 cùng các anh chị đồng nghiệp
trong cơ quan đã tạo những điều kiện thuận lợi cho tôi học tập và nghiên cứu tại trường Đại học Sư
Phạm Hà Nội 2.
Xin chân thành cảm ơn các anh, các chị và các bạn học viên lớp Cao học K15KHMT- trường
1
Đại học sư phạm Hà Nội 2 đã luôn động viên, giúp đỡ và nhiệt tình chia sẻ với tôi những kinh
nghiệm học tập, công tác trong suốt khoá học.
Cuối cùng, tôi muốn gửi lòi cảm vô hạn tới gia đỉnh và bạn bè, những người thân yêu luôn
bên cạnh và động viên tôi trong suốt quá trình thực hiện luận văn tốt nghiệp.
Mặc dù rất cố gắng, song luận văn này không thế tránh khỏi nhũng thiếu sót, kính mong được sự
chỉ dẫn của các quý thầy cô và các bạn.
Hà Nội, thảng 12 năm 2013
rp £_ _ • 2
Tác giả
Nguyễn Quang Thành
Tôi xin cam đoan rằng số liệu và kết quả nghiên cứu trong luận văn này là trung thực và
không trùng lặp với các đề tài khác. Tôi cũng xin cam đoan rằng mọi sự giúp đỡ cho việc thực
hiện luận văn này đã được cảm ơn và các thông tin trích dẫn trong luận văn đã được chỉ rõ


nguồn gốc.
Hà Nội, thảng 12 năm 2013
rr’ £ _ • 2
Tác giả
Nguyễn Quang Thành
LỜI CẢM
MỎ ĐẦU
1. Lý do chọn đề tài
- Cùng với sự bùng nổ của Internet, nhu cầu sử dụng Website và số lượng Website ngày
càng tăng cao. Website trở thành một công cụ để người ta quảng bá mọi vấn đề, mọi
lĩnh vực, đặc biệt là trong thương mại.
- Các công nghệ mới luôn được áp dụng vào Website: công nghệ quản trị nội dung, kiết
xuất thông tin, tác tử, Trong đó, sử dụng yếu tố đồ hoạ vào trong Website là một
công nghệ đang rất được quan tâm.
- Công nghệ thiết kế đồ hoạ cho Website cũng có nhiều cách tiếp cận khác nhau. Cách
tiếp cận lâu đời và đang phố biến hiện nay đó là Website sử dụng các hình ảnh 2
chiều. Các hình ảnh hai chiều chỉ thể hiện được các sự vật theo chiều dài và chiều
rộng. Điều này sẽ hạn chế khá nhiều khi muốn quan sát một vật nào đó một cách kĩ
càng. Với các trang Web giới thiệu sản phẩm, nếu giới thiệu một cách tỉ mỉ một sản
phấm nào đó thì người ta phải trình bày các bức ảnh chụp sản phấm ở các góc độ
khác nhau sẽ tốn bộ nhớ, tốn thời gian tải, tốn diện tích trang Web.
- Một cách tiếp cận khác chính là sử dụng các hình ảnh 3 chiều. Trong đó, cũng rẽ ra
làm hai khuynh hướng. Đó là 3D giả lập và 3D.
- 3D giả lập chỉ mô phỏng các nguyên lý dựng hình 3 chiều. Tiêu biếu cho 3D giả lập
là flash. Quả thật dùng flash đã làm cho Website trông sống động hon rất nhiều. Các
file này cũng khá nặng và đòi hỏi ở máy khách phải cài các phần mềm mới có thể đọc
được. Và nói chung, người xem vẫn ở thế bị động vì các flash chuyển động không
phụ thuộc vào ý muốn của người xem.
Từ những vấn đề nêu trên, tôi chọn đề tài “Nghiên CÚĨI một số kỹ thuật tương

tác trong Web 3D ” để làm luận văn tốt nghiệp.
2. Mục đích nghiên cún
- Tìm hiểu các kĩ thuật dựng hình phổ biến hiện nay. Quá trình tìm hiểu này nhằm phân
tích các kĩ thuật dựng hình vốn rất phong phú hiện nay để tìm hiểu thế mạnh của tòng
kĩ thuật và áp dụng kĩ thuật nào vào trường hợp dựng hình cụ thể nào thì cho hiệu quả
tốt nhất.
1
- Tìm hiểu các kĩ thuật tạo Web3D theo khuynh hướng thứ 2, tức là sử dụng các mô
hình 3D thực sự. Thực chất của mục đích này là muốn giới thiệu kĩ thuật đẩy các mô
hình 3D lên trang Web.
3. Nhiệm vụ nghiên cúu
- Nghiên cứu lý thuyết về Web và các kỹ thuật dựng hình 3D.
- Xác định bài toán cụ thể.
- Xây dựng các mô hình 3D và đẩy các mô hình lên trang Web.
4. Đối tưọng và phạm vi nghiên cún
> Đối tượng nghiên cún:
Kỹ thuật tương tác trong Web 3D trong đó đối tượng nghiên cứu chính là các
mô hình 3D.
> Phạm vi nghỉên cún:
Tìm hiểu các kĩ thuật tạo Web3D theo khuynh hướng sử dụng các mô hình 3D
thực sự.
5. Phương pháp nghiên cún
- Phương pháp lý luận
- Phương pháp nghiên cứu thực tiễn.
- Phương pháp nghiên cứu tài liệu.
6. Dự kiến đóng góp mói
- Xây dựng được một Website ứng dụng được trong thực tiễn.
NỘI DƯNG
Chương 1: KHÁI QUÁT VÈ WEB 3D VÀ TƯƠNG TÁC
1.1. Khái quát về Web 3D

1.1.1. Web 3D là gì ?
Web 3D là một thuật ngữ dùng để mô tả một website có chứa những nội dung
3D. Người sử dụng web có thể tương tác với các nội dung 3D đó. Người sử dụng web
có thể tương tác với nội dụng 3D đó và có thể xem bằng những trình duyệt phổ biến
hoặc thông qua những trình xem 3D đặt biệt. Khái niệm Web 3D cũng cho thấy rằng
đang có một sự phát triển rất tích cực trong thế giới web, nơi mà bạn có thế thỏa sức
tương tác trong một không gian 3 chiều. Có thể nói Web 3D là sự kết hợp giữa sức
1
mạnh của Internet và đồ họa 3D.
Trong những năng gần đây, công nghệ 3D đã thực sự phát triển và bùng nả.
Giờ đây 3D đã chinh phục rất nhiều lĩnh vực và đang tạo nên một cuộc cách mạng
công nghệ mới. Tính hiệu quả của công nghệ 3D đã thu hút rất nhiều nhà sản xuất,
kinh doanh, từ đó có thể đưa đến những sản phẩm công nghệ tiêu biểu như Tivi 3D,
phim 3D, game 3D, điện thoại 3D không cần k í n h . . v à không thể không kể đến các
sản phẩm Web 3D. Nhiều người nghĩ rằng trải nhiệm Web 3D cũng giống như xem
phim 3D, cũng có thế nhìn thấy những sản phấm và hình ảnh chân thật và sống động
như đang nhìn ở thế giới bên ngoài. Thực ra công nghệ này không phải là không có
nhung nó mới chỉ dừng lại ở ý tưởng và thử nghiệm vì công nghệ này phụ thuộc khá
nhiều vào phần cứng. Đe trải nghiệm công nghệ này cần phải có màn hình hỗ trợ 3D
và kính xem 3D. Trong khuôn khổ của luận văn này, em chỉ đề cập đến Web 3D với
khả tương tác với các nội dung 3D được hiến thị trên nền web. Ví dụ người dùng web
có thể xem một sản phẩm trên web với nhiều góc độ khác nhau.
Apple - Điện thoại Iphone 4 32GB Black
Cíck & Rè cftuçi đề Xoey Cuộn ctiuót đé ^tìóogtt nay Thu nnô. »háo Ctrl
* Cếck & Rê cftuçt đé У- cnuyẮA Nhen Esc đê trớ lai VI trí 8»fl đỉu,
Hình 1.1: Một sản phẩm 3D được hiển thị trên Web
Sau sự thành công của thời kỳ Web 2.0, người ta bắt đầu có những dự đoán cho một
thời kỳ phát triến tiếp theo của thế giới web - thời kỳ của Web
3.0 (Semantic Web). Tất cả những gì về Web 3.0 đều vẫn chỉ là dự đoán: Web
3.0 sẽ là thời kỳ mà hệ tầng mạng cực kỳ phát triến, và nền tảng của Web 3.0 sẽ là nhũng

hệ thống như SOA (Service Oriented Architecture - Kiến trúc Định hướng Dịch vụ),
Web Services và trí tuệ nhân tạo. Với sự phát triển của hệ tầng mạng, việc hiến thị các
nội dung 3D sẽ trở nên dễ dàng hơn bao giờ hết. Và như vậy rất có the Web 3D sẽ trở
1
thành một điểm sáng trong thời kỳ của Web 3.0.
Một sô công ty lớn đang có nhũng dự án phát trỉến Web 3D:
+ . .Tại Hội thảo Công nghệ GPU NVIDIA (Mỹ) ngày 30/9/2009, một
giải pháp tương tác mô hình 3D trên trình duyệt Web được trình diễn thực tế. Đó là
nền tảng tính toán NVIDIA RealityServer ra đời từ sự kết hợp giữa máy chủ trang bị
bộ xử lỷ đồ họa Testla của NVIDIA và PM Reality Server của Metal Images. Nen
tảng cho phép dựng hình 3D trực tiếp trên máy chủ (xây dựng theo mô hình điện toán
mây - cloud computing) và hiến thị trên trình duyệt máy khách trong vòng 15-20 giây
(trong khi dựng trên máy tính cá nhân có thế mất đến vài giờ). Mô hình 3D còn có thể
tương tác chân thực với nhiều nguồn sáng và môi trường: thể hiện được trạng thái
ngày/đêm, bật đèn/tắt đèn và phản chiếu cảnh quan thực tế.
Trên phương diện hiển thị đầu cuối, NVIDIA hợp tác với Adobe để khai thác
sức mạnh của bộ xử lý đồ họa vào việc tăng tốc trình Flash Player 10.1 và các ứng
dụng đồ họa khác trên thiết bị di động. Ket quả này là một phần trong dự án mang tên
gọi open Screen Project (www.openscreenproject.org) khởi xướng bởi
Adobe, qui tụ gần 50 công ty công nghệ hàng đầu. Điều này mở ra nhiều hướng cung
cấp nội dung, trình bày 3D trên môi trường Internet và cơ hội mới cho những nhà
cung cấp dịch vụ/nội dung I n t e r n e t . . [ 1 0 ]
+ “Khronos Group, tổ chức phát triển và quản lý giao diện OpenGL, tuyên bố
đang hợp tác với Mozilla để đưa đồ họa ba chiều vào thế giới web và một bản dự thảo
cho chuẩn mới, mang tên WebGL, đã hình thành
WebGL cho phép các lập trình viên JavaScript tận dụng card video để xử lý đồ
họa ba chiều. Khronos đang tập hợp những đánh giá của các chuyên gia phát trien
web đế có thế sớm hoàn tất các thông số “không đơn giản chỉ là dự thảo vào quý
1/2010”
Internet Explorer hiện vẫn là trình duyệt được sử dụng nhiều nhất trên thị

trường. Tuy nhiên, bốn đối thủ chính là Mozilla Firefox, Apple Safari, Google
Chrome và opera cũng đang cạnh tranh gay gắt và công nghệ ba chiều là một trong
những mục tiêu mà các trình duyệt này hướng tới.
Hỗ trợ 3D trên web sẽ giúp nâng cao giao diện người dùng của các úng dụng
1
web đặc biệt là game. Tuy vậy, chưa thể xác định thời điểm công nghệ này có mặt
trên máy tính người dùng bởi sau khi WebGL được phê chuẩn, nó phải được tích hợp
vào trình duyệt và giới lập trình viên cũng phải học cách hỗ trợ công nghệ ” [11]
+ “Hai dự án liên quan đến việc phát triển công nghệ web 3D, mục đích tương
tự nhau là tăng tốc phần cứng đồ họa 3D cho web từ Mozilla và Google tưởng chừng
đi đến bế tắc thì bất ngờ một dấu hiệu tốt đẹp đến từ Google hứa hẹn công nghệ web
3D sẽ đến hồi xuất hiện trong thời gian sắp tới.
Hai dự án nổi lên gần như tại cùng một thời điểm trong năm 2009: trình duyệt
03 D đến từ Google và tiêu chuẩn WebGL được đề xuất từ Mozilla và Khronos
Group. 03D là một công nghệ cao cấp, trong khi WebGL được quan tâm nhiều hơn
trong công nghệ đồ họa 3D.
Trong những tháng gần đây, mặc dù 03D đã bị ngừng hoạt động phát triến,
nhưng không phải vì thế mà Google quyết định rời bỏ 3D. Nhiều dự đoán cho rang
Google đang cố gắng tập trung năng lực của mình bằng cách xây dựng nó trên nền
tảng WebGL. Điều này sẽ có tác động tốt cho cả Mozilla và Google khi nó sẽ có dấu
hiệu cho sự hợp tác nhiều hơn là sự cạnh tranh mà cả 2 muốn thực hiện cho các dự án
của mình, làm việc trong một
môi trường cô lập củng cố cho dự án của mình ” [12]
1.1.2. Phân biệt giữa đồ họa 2D, 3D và 2.5D(giả 3D)
Đê mọi người có thê xác định chính xác hon vê những nội dung 3D được hiển
thị trên web. Em xin có một chút sự phân biệt giữa đồ họa 2D, 3D và 2.5D (giả 3D).
Đối tượng 2D được xây dựng trên hệ thống đồ hoạ máy tính 2 chiều (2
Dimensional), cũng như hệ toạ độ 2 chiều của trục toạ độ, nó phản ánh một phong
cách đồ hoạ phang. Đồ hoạ 2 chiều không có sự tham gia hoặc có nhung rất ít của các
hiệu ứng 3 chiều đặc trưng như hiệu ứng chiếu sáng, phản chiếu, đổ bóng. Đặc trưng

dễ nhận dạng nhất của đồ họa 2D là không thể xoay góc quay được, tất nhiên yếu tố
này không thể giúp ta khẳng định chắc chấn là đồ họa 2D, có những đối tượng 3D
vẫn hạn chế không cho xoay màn hình. Đặc trưng kế tiếp là không có ấn tượng 3
chiều rõ rệt. Giả sử bản đồ sẽ được cuộn theo 2 chiều là chiều thẳng và chiều ngang
khác với 3D không dùng hình thức cuộn bản đồ mà dựa vào không gian khối của bản
1
đồ.
Đối tượng 3D được xây dựng trên hệ thống đồ hoạ máy tính 3 chiều hiện đại
(3 Dimentional), hệ thống đồ hoạ này khai thác 3 chiều không gian là chiều ngang -
dọc - sâu tạo nên một thế giới hình khối khác hẳn thế giới hình phang của 2D. Đồ hoạ
3D khai thác tối đa các hiệu ứng 3 chiều như đổ bóng, chiều ánh sáng, sự phản chiếu.
Nếu 2D và 3D dễ định nghĩa và xác định thì 2.5D là một khái niệm trừu tượng.
Theo định nghĩa thì 2.5D là những đối tượng sử dụng một phần hệ thống đồ hoạ 2D
và phần còn lại của 3D hay một đối tượng 2D dùng các hiệu ứng đồ hoạ 3D để mô
phỏng tính chất của 3D (giả 3D).
Hình 1.2: Phân biệt đồ họa 2D, 3D và 2.5D 1. Khối
cầu 2D 2. Khối cầu 2.5D
3. Cách vẽ một khối cầu 2D giả 3D 4. Khối cầu 3D
1.1.3. Lịch sử hình thành và phát triển của Web 3D
Khởi đầu cho sự xuất hiện Web 3D là sự xuất hiện của ngôn ngữ VRML. Một
ngôn ngữ có thế mô tả và xây dụng một môi trường 3D có khả năng tương tác trên
web. Vào năm 1994 Tim Berners - Lee và Dave Raggett trong hội nghị quốc tế đầu
tiền về WWW (World Wide Web) được tổ chức tại Geneva đã có những đề xuất rất
nghiêm túc trong việc hình thành một ngôn ngữ có khả năng miêu tả và liên kết các
nội dung 3D lên thế giới web. Từ đó thì phiên bản VRML đầu tiên đã ra đời.
Sau một sự khởi đầu tuyệt với với rất nhiều kỳ vọng. Rất nhiều công ty đã
tham gia vào việc nghiên cứu và phát triển một lĩnh vực hoàn toàn mới này. Với mục
tiêu là tọa ra một chuẩn trong việc thiết kế Web 3D. Thế nhưng sau một thời gian phát
triển, rất nhiều công ty đã từ bỏ việc nguyên cứu này hoặc chuyến hướng hoạt động.
1

Việc phát triến của Web 3D ngày càng đi vào bế tác. Nguyên nhân là do các kỹ thuật
sử dụng trong VRML 1.0 còn quá đơn giản, khả năng tương tác của các đối tượng 3D
là rất kém, một lý do nữa là do chưa có những công ty thực sự lớn tham gia vào việc
nghiên cứu và phát triển này.
Hơn nữa, sự thiếu hỗ trợ từ các trình duyệt cũng khiến cho VRML rất khó
trong việc tích hợp các kịch bản vào trình duyệt đế hiện thị nội dung 3D. Trong tình
hình như vậy nhiều công ty lớn nhung Macromedia đã quyết định phát triến những
tiêu chuấn riêng dựa trên những ứng dụng sẵn có của họ đế hiện thị nội dung 3D trên
môi trường web. Trực tiếp cạnh tranh với chuẩn VRML và VRML đúng trước nguy
cơ bị thay thê.
Đây là giao đoạn mà có hai hướng phát triển cho VRML, một là phát triển
VRML thành một chuẩn mở (standard open source) hai là hướng phát triến của các
công ty thành một ứng dụng đóng và cố gắng đế khắng định công nghệ của mình trên
những công ty khác. Cả hai xu hướng đều ko dẫn đến bất kỳ một kết luận nào và cũng
ko có một chiến thắng cho một xu hướng nào. Do đó, tình hình lúc bấy giờ là phải có
một loạt các giải pháp cho việc xây dựng các ứng dụng có nội dung 3D trên web, nơi
mà có một số lượng đáng kể các công ty xây dựng các ứng dụng 3D cho mục đích
thương mai thuần túy, mỗi trong số đó thì phát triển trình hiển thị 3D trên web cho
riêng mình. Đấy cũng là lý do ngày hôm nay chúng ta lại phải cài nhiều plug in như
vậy để có thể xem được tất cả các nội dung 3D trên web.
Microsoft cũng đã một lần đưa nhóm “thế giới ảo” (Virtual Worlds) vào trong
chương trình nghiên cún của mình để phát triển một nền tảng Web 3D. Nhưng theo
nhưng điều tra của họ về những eiá trị của việc nghiên cứu này thì họ có nhiều lý do
để ko thực hiện. IE chưa bao giờ cho phép hiển thị các trực tiếp các nội dung
VRML(kế cả sau này là X3D), có thế họ sẽ phát triến trình xem 3D riêng của mình.
Cũng thời điểm đó, rất nhiều cải tiến trong việc xây dựng Web 3D dựa trên
nền tảng Java đã xuất hiện trên thị trường. Hứa hẹn về khả năng tương thích với bất
kỳ trình duyệt nào cho phép chạy một máy ảo Java. Nhưng Java lại gặp vấn đề trong
việc cấp phép giữa Sun và Microsoft dẫn đến một chút rắc rối trong việc khi nào và ở
đâu thì họ được quyền sử dụng các phiên bản khác nhau của máy ảo Java.

1
Java 3D cho phép các nhà phát triển tạo ra những ứng dụng 3D và kết nối
người dung thông qua web. Nhưng không rõ tại sao mà các nội dung 3D không bao
giờ hiện thị một cách hoàn hảo trên trình duyệt. Các nội dung Java 3D chỉ có thể hiện
thị tốt trong các ứng dụng độc lập mà thôi.
về sau này thì có rất nhiều công nghệ cho phép sử dụng web để hiện thị nội
dung 3D, nhưng hầu hết chúng đều yêu cầu cài đặt các chương trình hỗ trợ cho việc
hiện thị. Những fan của Web 3D chỉ mong rằng có những trình duyệt hoặc những máy
tính được tích hợp đầy đủ mọi thứ để phục vụ tốt cho việc hiện thị Web 3D mà ko cần
phải cài đặt thêm bất kỳ một phẩn mềm hỗ trợ nào. Nhưng rất tiếc là tại thời điểm đó
thì không có công ty nào sản xuất ra nhũng chiếc máy tính và nhũng trình duyệt như
vậy cả. Thực ra, ngày nay(2013) thì ước mơ đó cũng phần nào trở thành hiện thực khi
có sự xuất hiện của WebGL và sức mạnh của HTML5. WebGL (Web-based Graphics
Library) là một thư viện phần mềm mở rộng khả năng của ngôn ngữ JavaScript để
cho phép nó tạo ra tương tác đồ họa 3D trong bất kỳ trình duyệt nào tương thích
(Firefox, chrome ). Mã của WebGL thực hiện xử lý trực tiếp trên card xử lỷ đồ họa
(GPU). [13]
Tại thời điểm mà có rất nhiều những công nghệ mới thì những công ty lớn
tham gia vào lĩnh vực phát triển Web3D thì người ra nghĩ rằng VRML là một thất bại
và sẽ nhanh chóng biến mất trong thế giới của những công nghệ 3D dành cho web.
Nhưng không, vào năm 1996 với sự ra đời của Hiệp hội VRML (VRML Consortium),
sau này được gọi là Hiệp hội Web 3D (Web 3d Consortium), một tố chức phi lợi
nhuận đã phát triến VRML với một định hướng rất đúng đắn. Tại thời điểm đó VRML
đã ra phiên bản 2.0 với nhiều cải tiến rõ rệ, khắc phục được sự yếu kém trong việc
tương tác trong phiên bản VRML 1.0. Sau sự thành công của VRML 2.0 là sự phát
triển lên X3D, tiêu chuấn được sự hỗ trợ từ Microsoft, Sun Microsystems và W3C.
X3D được xây dựng dựa trên ngôn ngữ XML nên đã mang lại nhiều cải tiến rõ rệt.
1.1.4. Ngôn ngữ VRML ịVirtual Reality Modeling Language)
VRML là ngôn ngữ mô hỉnh hóa thực tê ảo, một dạng tập tin được sử dụng
trong việc mô tả các đối tượng và thế giới đồ họa có khả năng tương tác ba chiều.

VRML được thiết kế dùng trong môi trường Internet, Intranet (mạng nội bộ) và các
1
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 đoi đ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, 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í, giáo dục, hỗ trợ
web và chia sẻ các thế giới ảo.
về căn bản thì VRML chỉ đơn giản là một 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. Chang hạn như các
biến đổi phân cap (hierachical tranformations), nguồn ánh sáng (light sources), điếm
nhìn (view points), hình học (geometry), sương mù (fog), thuộc tính 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 mô hình, VRML được sử dụng để phát triển những
hình ảnh 3D và những quang cảnh 3D 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 môi trường Internet.
Chỉ với một fie văn bản 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 rất dễ dàng. Neu 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ợ
tương đối tốt các dịch vụ Web 3D.
uns duns của VRML 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, hay
MPEG cho các yếu tố phim. Ngoài ra, một file VRML có thể chứa code Java hoặc
JavaScript, các đoạn code này được sử dụng để lập trình cho các đối tượng trong

VRML.
Từ các un đ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
1
Internet, VRML có thế sử dụng đế phục vụ cho việc xây dựng Web 3D. Ke từ khi ra
đời đến nay, VRML đã được sử dụng đế xây dựng, phát triến các đối tượng 3D trên
nền web, xây dựng một thế giới ảo có khả năng tương tác cao. 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à WWW. VRML được kết hợp với
HTML và Java để tạo ra những trải nhiệm mới mẻ và thụ vị cho người sử dụng web.
Có 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 HTML bằng cách dùng
<EMBED> hoặc thẻ <OBJECT>. Mã Java bên trong file VRML: Đây là một chuẩn
không bắt buộc của VRML 2.0. Sử dụng node Script để soạn thảo một đoạn mã Java
• Java applet giao tiếp với một trình duyệt VRML
• File HTML bên trong một file VRML: Sử dụng 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.
X3D — Sư phát trỉế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 nhu cầu cho công 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 như Tôn Parisi -
một trong những nhà 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
đủ 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 vớ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 sự phát triển của VRML, X3D đã khắc phụ đượ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
1
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.
Đặ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.
Ngoài ra, X3D còn mang một số ưu điểm nổi trội so với nền tảng trước 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
1.2. Một số công nghệ hiện thị đối tưọ’ng 3D phổ biến
Như đã đê cập trong phân lịch sử phát triên của Web 3D, mọi người cũng có
thể thấy một vài công nghệ nổi trội trong việc hiện thị các đối tượng 3D trên nền web.
Sau đây em xin trình bầy cụ thể về một số công nghệ phổ biến.
1.2.1. Adobe Flash
Flash là một công nghệ nền đa phương tiện thường được sử dụng để tạo hoạt
họa, video, tương tác với các trang web, và để phát triển những ứng dụng trên
Intemet(trò chơi, quảng cáo. . . )• Flash sử dụng kỹ thuật đồ họa vector và đồ họa
điểm để tạo hoạt họa cho chữ, hình vẽ, ảnh, hỗ trợ thực thi luồng âm thanh, video. Nó
chứa bên trong một ngôn ngữ hướng đối tượng gọi là ActionScript. Đe hiển thị nội
dung Flash, chúng ta phải sử dụng một số phần mềm chơi Flash như Adobe Flash
Player.
Flash được giới thiệu lần đầu vào năm 1996 bởi Macromedia và hiện tại là
Adobe Systems. Tiền thân của ứng dụng Flash là SmartSketch- Một ứng dụng cho
máy tính dùng bút chạy trên hệ điều hành Penpoint OS phát triển bởi Jonathan Gay,
sau đó được đưa vào phát triến trên hệ điều hành Microsoft Windows và Mac OS.
Cho đến khi Internet trở nên phổ biến SmartSketch được biết tới với tên gọi
mới là FutureSplash. Năm 1995, SmartSketch được thay đổi với đặc điểm hoạt họa

frame-by-frame với tên gọi mới là FutureSplash Animator.
Năm 1996, Macromedia đưa ra tên gọi mới là Flash, sự viết tắt của "Future" và
"Splash". Tệp tin Flash được gọi với tên Shockwave Flash và có phần mở rộng là
.swf.
Flash là một công nghệ đóng hoàn toàn, được độc quyền sở hữu 100% bởi
1
Adobe Systems, một công ty công nghệ lớn của Mỹ với những sản phấm nổi tiếng
như: Adobe PhotoShop, Adobe Reader, Adobe Creative Suite .Các công nghệ của
hãng được sử dụng rộng rãi trên toàn thế giới như chương trình đọc tài liệu Adobe
Reader - đọc tệp tin .pdf, chương trình chơi Flash được bổ sung vào trình duyệt web
như Adobe Flash Player tới những sản phâm chuyên dụng như Adobe Creative Suite
.
Do được sử dụng rộng rãi trên toàn thế giới, Adobe phố biến với số lượng khá
lớn các tài liệu hướng dẫn sử dụng, hướng dẫn thi hành, cơ chế. . . Tuy nhiên, những
tài liệu này chủ yếu hướng tới đối tượng là người sử dụng cuối cùng( người dùng sản
phẩm của hãng) và không hướng tới mục đích cung cấp tài liệu đặc tả kỹ thuật cho
những người phát triển dựa trên công nghệ này. Việc một sản phẩm được phổ biến
một cách rộng rãi không đồng nghĩa với việc đó là công nghệ mở. Nhất là khi những
sản phẩm này được kiểm soát hoàn toàn và chỉ được giới thiệu bởi một mình Adobe.
Họ có quyền quyết định tới tương lai của công nghệ này.
Mặc dù flash không thực sự có dự định phát triến một nền tảng 3D cho web
nhưng rất nhiều thư viện đã được thiết kế để hỗ trợ cho các ứng dụng flash có khả
năng tương tác với những nội dung 3D trên nền web.
1.2.2. Java 3D
Java 3D là một API của Java cho phép phát triển những nội dung 3D. Java 3D
được ra đời từ năm 1998 và đã trải qua nhiều phiên bản khác nhau. Mặc dù công nghệ
này đã không được sử dụng rộng rãi trên các ứng dụng web, nhung Java 3D cũng có
một khả năng xử lý đồ họa và đa phương tiện rất phong phú, được thừa hưởng từ các
lớp Java của nó. Hỗ trợ lập trình hướng đối tượng, lập trình đa luồng, hỗ trợ hiệu ứng
âm thanh và đồ họa 3D là một vài tính năng được cung cấp cho lập trình viên.

Bởi vì Java 3D ko phải là một phần của Java Runtime Enviroment nên hầu hết
người dùng Internet phải tải về và cài đặt những thư viện bố sung đế hỗ trợ việc hiện
thị nội dung 3D. Một bất lợi nữa của API là trình duyệt chỉ có thể chạy mã java trong
applet, mà applet thì lại có xu hướng là không tích hợp tốt với trang HTML, cả trong
cách hiện thị và lập trình.
Mặc dù không được nhà cung câp và cộng đông thực sự đâu tư nghiên cứu và
1
phát triển, nhưng công nghệ Java 3D trên web cũng đã thực sự nổi trội trong một vài
năm.
1.2.3. Extensible 3D(X3D)
Ngôn ngữ X3D được phát triển bởi Hiệp hội Web3D (Web3D Consortium) là
một chuẩn mở hỗ trợ phát triển đồ họa 3D trên web. cấu trúc của X3D bao hàm nhũng
hàm chức năng của VRML và phát tri en thêm những tính năng về đa phương tiện.
X3D đã được bổ sung thêm khá nhiều phần mở rộng như hỗ trợ COP (Computer
Oriented Design), hoạt hình, NURBS(non-uniform rational B-splines) và mô đum
không gian địa lý.
X3D hiếu được các định dạng VRML cơ bản nên nó có thế dễ dàng sử dụng lại
được những nội dung dựa trên nền tảng VRML 2.0.
Niềm hy vọng của những người tạo ra X3D càng được củng cố thêm bởi
những bước phát triến mới trong ngành công nghệ kỹ thuật cao. Những cải tiến về
băng thông rộng và sức mạnh của máy tính, những nâng cấp quan trọng trong giản đồ
ngầm, cùng với sự hậu thuẫn của các tổ chức tiêu chuẩn khác, tất cả đã tạo ra một môi
trường vô cùng thuận lợi cho công nghệ 3D trên mạng.
Chuấn 3D mới đã khắc phục được kích thước cồng kềnh và cấu trúc phức tạp
của VRML cũ. X3D có cấu trúc di động, được xây quanh một động cơ thu phát nhỏ,
hoàn toàn tương phản với "người tiền nhiệm" của nó.
Bản ghi kỹ thuật cũng đồng thời mô tả 3 cấu hình cơ bản của X3D module.
Đầu tiên là Interchange (Trao đổi) phụ trách hình học và hình hoạ cũng như trao đổi
thông tin dữ kiện giữa các công cụ sáng tạo. Trình độ tiếp theo, Interactive (Tương
tác), bổ sung cho chức năng tương tác trong Interchange bằng các yếu tố của một

trang 3D. cấu hình thứ ba, Extensibility (khả năng mở rộng), cho phép các tác giả 3D
sáng tạo ra hợp phần X3D và nối ứng dụng của họ với cơ sở dữ liệu cùng các nguồn
thông tin bên ngoài khác.
Như vậy, về mặt lý thuyết thì X3D 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 hạt nhân của
bản vẽ kỹ thuật - một lỗi mà VRML đã từng mắc phải.
Một yếu tố khác cũng góp phần không nhỏ vào uy tín của X3D là sự ủng hộ
1
của các nhóm chuấn khác. Nhóm chuyên gia hình ảnh động (MPEG) đã đồng ý nạp
X3D vào MPEG 4, một chuấn tiêu biểu cho video và audio kỹ thuật số. Tuy nhiên, do
chương trình này mới bị đình lại vì lý do pháp lý nên con đường đến với thành công
của X3D vẫn còn rất chênh vênh.
Một yếu tố khác có thể kích thích thị trường 3D chính là việc sử dụng đồ hoạ
cao cấp trong các hệ điều hành.
Thế nhưng X3D lại gặp phải khó khăn đến từ Microsoft, vói địa vị thống trị thị
trường trình duyệt Web, lại rất có thể trở thành một kẻ phá hoại ngấm ngầm. Neu
người khổng lồ trong lĩnh vực phần mềm này tích cực ủng hộ cho ứng dụng 3D trên
Internet Explorer thì con đường đến với công chúng của X3D sẽ thông thoáng hon
nhiều so với hiện nay. Trong trường họp ngược lại, sự từ chối họp tác của hãng sẽ chỉ
mang tới tổn thất cho chuẩn mới này mà thôi.
Microsoft sẽ không chịu chơi bài ngửa chừng nào chưa tìm được các nhân tố
chiến lược thích hợp. Họ vẫn còn đang "giằng xé" giữa hai con đường: ủng hộ các
chuẩn mở hay là sử dụng các phần mềm độc quyền. Họ chính là rào cản cho sự phát
triển của X3D, bởi họ đang cố xây dựng một khung độc quyền trong địa hạt đó.
Microsoft cũng có chung vấn đề rắc rối với MPEG4. Chừng nào chưa bị thị trường
dồn tới chỗ không còn sự lựa chọn nào khác, Microsoft sẽ không đời nào sẵn lòng ủng
hộ cho một chuấn mở.
Cũng giống như bất kỳ một chuấn mở nào khác, X3D phải chịu sức ép cạnh
tranh gay gắt từ phía các công ty độc quyền. Điều may mắn là phương thức tiếp cận
chuẩn hoá đã khẳng định được một số ưu điểm vững chắc của nó. Các chuẩn hứa hẹn

sẽ cung cấp cho mọi người nhiều công cụ sáng tạo cùng nội dung có thể sử dụng
nhiều lần. Neu điều đó là sự thực thì cả một ngành công nghiệp mới sẽ ra đời từ đây.
Hãy xem những gì đã diễn ra xung quanh HTML. Điều đó xảy ra bởi vì ai cũng có thể
sử dụng mà không bắt buộc phải sở hữu nó cả. Mọi chuyện hoàn toàn giống với
XML.
Tuy vậy, tổ chức Web 3D Consortium cũng khẳng định rằng một số ứng dụng
3D, chẳng hạn như game nhiều người chơi, vẫn có nhiều khả năng duy trì được tính
độc quyền của mình. Nên biết rằng bản thân Web3D
1
Consortium cũng là một thành viên của hội đồng tiêu chuẩn mạng World Wide Web
Consortium (W3C), và đang có ý định tích hợp chặt chẽ X3D với các công nghệ
W3C.
Trong tương lai, Web 3D thậm chí còn lên kế hoạch thuê SMIL (Ngôn ngữ
tích hợp multimedia đồng bộ) để đồng bộ hoá các yếu tố 3D với các hình thức truyền
thông khác.
Cuối cùng thì công nghệ mới và nhu cầu sử dụng dành cho nó cũng đã được
tăng tốc.
1.2.4. Những công nghệ khác
Danh sách những công nghệ hỗ trợ phát trien Web 3D ngày một dài. Sự phát
triển của phần cứng máy tính và những đòi hỏi từ những người lướt web về những
trải ngiệm 3D thú vị hon đã góp phần hình thành rất nhiều cộng đồng mã nguồn mở,
những tố chức thương mại cố gắng tạo ra những chuấn Web 3D có sức mạnh. Mặc dù
có rất nhiều công nghệ tham gia vào lĩnh vực này nhưng lại chưa có công nghệ thực
sự thành công trong việc tạo ra một nền Web 3D có tính phố biến ở mọi nơi. Một số
công nghệ hỗ trợ Web 3D như: 3DMLW, Canvas 3D, Emma 3D, Croquet,
COLLADA,.v.v
Chương 2: MỘT SỐ KỸ THUẬT TƯƠNG TÁC TRONG WEB 3D
2.1. Cấu trúc tệp tin ,x3d.
File X3D sử dụng một trong hai cách mã hóa là mã hóa theo XML ( file .x3d)
hoặc mã hóa theo kiểu VRML truyền thống (file .x3dv). Mỗi một kiểu mã hóa thì yêu

cầu những kiểu bố trí thông tin và cú pháp khác nhau.
Sau đây là cấu trúc theo thứ tự từ trên xuống của file .x3d:
• File header
• X3D header statement
• Profile statement
• Component statement (optional, multiple)
• META statement (optional, multiple)
• X3D root node (implicit in Classic VRML encoding)
• X3D scene graph child nodes (multiple)
1
Mỗi thành phần sẽ được mô tả chi tiết ở phần sau.
File header.
Phần đầu tệp tin X3D chưa các thông tin thiết lập chính về những đối tượng
3D. Đây là phần bất buộc và nó bao gồm: XML và X3D header, profile, các thành
phần(component) và các mô tả (meta). Kiểu mã hóa XML của file .x3d tương tự
XHTML trong hầu hết các thông tin được chứa trong thẻ <head>.
<?xml version-"1.0" encoding-"UTF-8"?>
<!DOCTYPE X3D PUBLIC ”IS0//Web3D//DTD X3D 3.1//EN"
"
fications/x3d-3.1.dtd”> <X3D
version-"3.1 * profile-"Immersive"
xmlns:xsd-" />/XMLSchema-instance”
xsd:noNamespaceSchemaLocati on-
" fi
cati ons/x3d-3.1.xsd">
<head>
<component name-'DIS' level-'l’/>
<component name-'Geospatial' level-'l'/>
<component name-'H-Anim' level-’1 */>
<component name-'NURBS' level-’4’/>

<meta name-'filename'
content-’HeaderProfi1eComponent
MetaExample.x3d '/> </head>
<Scene>
<!—Scene graph nodes are added here—>
</Scene>
</X3D>
#X30 V3.1 utf8 PROFILE Immersive
# No HEAD statement is provided in
ClassicVRML Encoding COMPONENT
DIS:1
COMPONENT Geospatial:1 COMPONENT H-
Anim:1 COMPONENT NURBS:4
META "filename"
''HeaderProfileComponentMetaExample.x3d”
# Scene graph nodes are added here
Hình 2.1: Cấu trúc tệp tin ,x3d
X3D header
X3D header chứa các thông tin cho phép xác định một tệp tin .x3d. Thông tin
ở trong phần header là phần định danh của X3D, phiên bản X3D, và kiếu mã hóa văn
bản. X3D sử dụng kiếu mã hóa UTF-8, về cơ bản là nó hỗ trợ tất cả cac bảng chữ cái
của các ngôn ngữ khác nhau. Phiên bản X3D cho phép bao gồm 3.0 và 3.1.
Kiểu mã hóa XML của x3d phù hợp với các yêu cầu chung của phần đầu file
XML. Đe bắt đầu với việc khai báo <?xml?> . Do đó tất cả các file .x3d trước tiên là
phải được định dạng đúng kiểu XML: đóng mở các thẻ, các
1
dấu ngoặc đơn, kép Có 2 cơ chế đế có thế xác thực một cách chính xác
định dạng file .x3d: A Document Type Definition và XML Schema reference.
Phiên bản của X3d là một phần khai báo bắt buộc . Kiếu mã hóa thường được
sử dụng là UTF-8. Ta có thể sử dụng phiên bản mới nhất của DOCTYPE hoặc

Schema lớn hơn phiên X3D, bởi vì những phiên bản X3D mới có thể tương thích
ngượi trở lại.
Đe mã hóa theo kiểu Classic VRML thì đoạn mã đầu tiên phải viết như sau :
“#X3D V3.1 Utf8”. Đây phải là dòng mà đầu tiên trong file X3D mà mã hóa theo
kiếu ClassicVRML. Không giống như mã hóa theo kiếu XML, không có phần mở
rộng được cung cấp bởi vì trình duyệt có khả năng tự phân tích một cách chính xác cú
pháp VRML.
Profile.
Có rất nhiều kiểu Profile được định nghĩa trong X3D. Mỗi một kiểu Profile
được xây dụng cho những người dùng và nhũng chức năng khác nhau. Profile cho
phép trình duyệt xây dựng lên những mức độ trung gian hỗ trợ X3D.
• Core : Core Profile không thiết kế dành cho người dùng thông thường. Rather. Nó
cung cấp những định nghĩa chính xác một cách tuyệt đối được yêu cầu bởi trình duyệt
X3D(chủ yếu là về metadata). Những người lập trình chuyên nghiệp có thê xây dựng
nhũng cảnh với độ chi tiêt rât cao một cách rất rõ ràng.
• Interchange : Kieu profile này được thiết kế hỗ trợ cho việc trao đối các đối tượng
hình học giữa các ứng dụng 3D khác nhau. Nó được thiết kế đế dễ dàng export và
import các đối tượng hình học. Tất cả các dạng hình học cơ bản, các kiếu hiện thị và
các đối tượng hoạt hình đều được chứa trong kiếu profile này.
• Interactive : Kiểu profile này dừng như “lớn” hơn một chút kiểu Interchange. Ngoài
những thành phần có trong Interchange thì nó còn chưa thêm một số thành phần cần
thiết hỗ trợ việc tương tác của người dùng với các đối tượng 3D.
• MP4EG - interactive : Đây là kiểu profile được thiết kế riêng cho những ứng dụng 3D
mà có sử dụng đến MPEG-4. về cơ bản thì nó cũng gần giống như Interactive, nhưng
có thêm một số tính năng đặc biệt.
• CADInterchange : Đây cũng là một kieu profile đặc biệt, nó hỗ trợ import mô hình
1
CAD. Nó bao gồm phần lớn các thành phần có trong Interchange và một số thành
phần mới đế hỗ trợ CAD.
• Immersive : Đây là kieu profile gần giống nhất so với phiên bản VRML97. Nó bao

gồm tất cả các định nghĩa trong Interactive và thêm một vài tính năng nâng cao.
• Full: Đây là kiểu profile định nghĩa một cách chi tiết tất cả các thành phần trong
X3D. Nó được coi là phần mở rộng của Immersive.
Component.
Tất cả các đối tượng trong X3D đều sử dụng một phần của một component nào
đó. Component chứa các tính năng mà các đối tượng 3D cần sử dụng đến. Nó được
chia làm nhiều mức độ khác nhau, mức độ càng cao thì những tính năng càng nhiều.
Meta.
Meta cung cấp thông tin hoặc chú thích về X3D. Một số
phần chú thích thường được sử dụng như: tác giả, phiên
bản, bản quyền, tham khảo
1
2.2. Các dạng hình học CO’ bản
“Trái tim” của đồ họa Extensible 3D (X3D) là các dạng hình học, đặc biệt là
các dạng hình học 3D. X3D hỗ trợ rất nhiều các dạng hình học cơ bản đến phức tạp.
Trong phần này chúng ta chỉ đi nghiên cứu những dạng hình học cơ bản: Shape, Box,
Cylinder, Cone, Sphere, Text và FontStyle. Phần Shape được đề cập đầu tiên vì nó là
“thành phần cha”, nó có thể chứa một hoặc nhiều thành phần khác bên trong.
2.2.1. Shape
Thành phần Shape có thế chứa cả các thành phần hình học và các thành phần
thế hiện hình dạng (sẽ được đê cập ở phần sau) cho một đối tượng 3D. Như vậy, một
đối tượng 3D thường chứa nhiều các thành phần Shape khác nhau, mỗi một Shape sẽ
liên kết các thành phần hình học(geometry) với những thành phần thế hiện hình
dạng(appeatance).
Thành phần appearance quy định cụ thể các thuộc tính hình ảnh như vật
liệu(material) hoặc họa tiết (texture). Thành phần geometry tạo ra một đối tượng
được hiện thị ví dụ như: box, cylinder Shape có thể sử dụng cấu trúc DEF hoặc
USE. Việc sử dụng câu trúc này cho phép sử dụng lại các thành phần phức tạp mà
không cần khai báo lại, tạo ra sự trong sáng, rành mạnh và ngắn gọn cho chương
trình. Chú ý: cấu trúc USE không tạo ra một bản sao của một thành phần nào đó và

đưa chính nó dùng lại trong chương trình.
Hầu như tất cả các đoạn mã ví dụ của X3D trong khóa luận này đều được so
sánh với các đoạn mã tương ứng viết bằng VRML
Trong đoạn mã trên chúng ta có thể dễ dàng thấy được trong Shape chứa 2
thành phần là Box (thành phần hình học) và Appearance (thành phần hiện thị).
XML Syntax (.x3d) Gassic VRML Syntax (.x3dv)
<Shape DEF= ” MyShapeNode"
bboxCenter= " 0 0 0”
bboxSize="-l -1 -1 " >
<Box DEF= ” Si ngl
eGeometryNode " / >
<Appearance
DEF= " Singl
eAppearanceNode " />
</Shape>
DEF MyShapeNode Shape {
geometry DEF
SingleGeometryNode
Box I }
appearance DEF
SingleAppearanceNode
Appearance 11
bboxCenter 0 0 0 bboxSize -1
-1 -1
2
Hình 2.3: Ví dụ về một đoạn mã sử dụng thành phần Shape
2.2.2. Box
Hình 2.4: Định nghĩa các chiều trong không gian 3D của 1 Box
Box là một đối tượng hình hộp chữ nhật cơ bản với kích thước được quy định
bởi trường size và phải khác (0 0 0).

Hình 2.5: Ví dụ về một đoạn mã sử dụng Box
Box có lẽ là một đối tượng cơ bản được sử dụng nhiều nhất. Nó cũng có thế dễ
dàng xấp xỉ thành 1 đối tượng 2D khi mà một chiều của nó rất nhỏ. Ví dụ <Box size=
“2 0.0001 2”>
Hình 2.6: Một thành phần Box đưọc hiển thị trên web
2.2.3. Cone
XML Syntax (.x3d) Classic VRML Syntax
(.x3dv)
<Box DEF- ” MyBoxNode
M

s i z e - " l 1 1 " sol id- "
true " />
OEF MyBoxNode Box 1 s i z e
1 1 1 solid TRUE
}
2
Hình 2.3: Ví dụ về một đoạn mã sử dụng thành phần Shape
Hình 2.7: Ví dụ một đoạn mã sử dụng thành phần Cone
Cone - hình nón là một đối tượng hình học cơ bản tiếp theo. Hình nón có tâm
tại (0 0 0), bán kính đáy được quy định bởi thuộc tính bottomRadius, chiều cao quy
định qua thuộc tính height, hai thuộc tính quy định sự tồn (nếu mang giá trị TRUE)
hoặc không (nếu mang giá trí FALSE) của mặt đáy và mặt bên là: bottom và side.
Thuộc tính solid sẽ quy định trạng thái của khối nón là có đặc hay không.
Hình 2.8: Định nghĩa các thành phần của một Cone
Các mặt không tồn tại sẽ không được xét tới nếu toàn khối nón tham gia vào
các sự kiện (ví dụ như phát hiện va chạm hoặc kích hoạt cảm biến).
2.2.4. Cylinder
Hình 2.9:VÍ dụ một đoạn mã sử dụng thành phần Cylinder
XML Syntax (.x3d) ClassicVRML Syntax (j(3dv)

<Cone DEF-" MyConeNode "
bottomRadi us-" 1” hei
ght-"2" bottom- " true
M
side- " true " sol id-"
true " />
DEF MyConeNode Cone
{ bottomRadius 1 height 2
bottom TRUE side TRUE
solid TRUE
)
XML Syntax (.x3d) ClassicVRML Syntax (.x3dv)
<Cylinder DEF- "MyCyli
nderNode " radius-" 1 " hei
ght- " 2 *' bottom- " true
M
side- " true " top- " true
" sol i d- " true " />
DEF MyCylinderNode Cylinder
{ radius 1 height 2 bottom
TRUE side TRUE top TRUE
solid TRUE
)
2
Hình 2.3: Ví dụ về một đoạn mã sử dụng thành phần Shape
Hình trụ là đối tượng được tạo ra từ thẻ Cylinder có tâm tại tọa độ (0 0
0), có bán kính quy định qua thuộc tính racỉius và chiều qua quy
đinh qua trường height. U' u ^ rk- u u~ ' 4.U' u u*
^ & ồ Hình 2.10: Định nghĩa các thành phân của
một Cylinder trong không gian 3D

2
Hình 2.3: Ví dụ về một đoạn mã sử dụng thành phần Shape

×