Tải bản đầy đủ (.pdf) (62 trang)

Phát hiện và xử lý va chạm trong các hệ thống thực tại ảo và ứng dụng vào bài toán an toàn giao thô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 (1.15 MB, 62 trang )






















































ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ


Phạm Thế Anh






PHÁT HIỆN VÀ XỬ LÝ VA CHẠM TRONG CÁC HỆ THỐNG THỰC TẠI ẢO VÀ
ỨNG DỤNG VÀO BÀI TOÁN “AN TOÀN GIAO THÔNG”





LUẬN VĂN THẠC SỸ












Hà nội, 2006



















































ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ




Phạm Thế Anh





PHÁT HIỆN VÀ XỬ LÝ VA CHẠM TRONG CÁC HỆ THỐNG THỰC TẠI
ẢO VÀ ỨNG DỤNG VÀO BÀI TOÁN “AN TOÀN GIAO THÔNG”


Ngành: Công nghệ thông tin
Mã số: 1.01.10



LUẬN VĂN THẠC SỸ


Người hướng dẫn khoa học :
TS. Đỗ Năng Toàn



Hà nội, 2006


1
MỤC LỤC

Lời cảm ơn
Trang
Lời cam đoan

Danh mục các bảng biểu

Danh mục các hình vẽ

Mục lục
1
Mở đầu
3
Chương 1. Tổng quan về Thực tại ảo
5
1.1 Định nghĩa Thực tại ảo (VR - Virtual Reality) …………………………….

5
1.2 Ba đặc tính chính của VR ………………………………………………
6
1.3 Các thành phần một hệ thống VR ……………………………………….…
9
1.4 Ứng dụng của Thực tại ảo …………………………………………………
11
1.5 Các công cụ phát triển ứng dụng Thực tại ảo ………………… …………
12
1.5.1 Các phần mềm xây dựng mô hình ……………………………… …
12
1.5.2 Các công cụ lập trình ………………………………………………
14
Chương 2. Các phương pháp phát hiện va chạm
16
2.1 Kĩ thuật phát hiện va chạm dựa vào hộp bao AABB ……………………
17
2.1.1 Định nghĩa hộp bao AABB ………………………………………….
17
2.1.2 Phát hiện va chạm giữa hai AABB ………………………………….
17
2.2 Kỹ thuật hộp bao theo hướng (Oriented Bounding Boxes) ……………….
18
2.2.1 Định nghĩa hộp bao theo hướng (OBB) ……………………………
18
2.2.2 Kiểm tra nhanh va chạm giữa hai hộp bao OBBs …………………
19
2.2.3 Tìm điểm va chạm …………………………………………………
24
2.2.4 Phát hiện va chạm khi các đối tượng di chuyển ……………………

29
2.2.4.1 Phương pháp Euler ……………………………………………
30

2
2.2.4.2 Phương pháp Runge Kutte 4 (RK4)
30
2.3 Phát hiện va chạm giữa hộp bao OBB và tam giác
2.3.1 Kiểm tra nhanh có va chạm giữa OBB và tam giác
31
31
2.3.2 Tìm điểm va chạm giữa hộp bao OBB và tam giác
33
Chương 3. Xử lý các hiệu ứng sau va chạm
41
3.1 Tổng quan về động lực học vật rắn
41
3.1.1. Mô ment quán tính ( Moment of Inertia) ……………………………
41
3.1.2. Mô ment quay (Torque)
42
3.1.3 Mối liên hệ giữa mô ment quán tính và mô ment quay ……………
43
3.1.4 Vectơ trạng thái của đối tượng ………………………………………
43
3.1.5 Tính toán xung và lực ảnh hưởng ……………………………………
45
3.1.5.1 Sử dụng định luật bảo toàn động lượng và năng lượng ………
46
3.1.5.2 Tính toán lực ảnh hưởng thông qua tính toán xung ……………

47
3.2. Xử lý các hiệu ứng về méo mó, biến dạng sau va chạm ………………….
48
3.2.1 Ý tưởng thuật toán
48
3.2.2. Giới thiệu về hàm Open Uniform B-Splines ………………………
49
3.2.2.1 Vector nút của đường cong Open, Uniform B-Splines ………
49
3.2.2.2 Định nghĩa đường cong Open, Uniform B-Splines 1D …….…
49
3.2.2.3 Định nghĩa đường cong Open, Uniform B-Splines 2D ………
50
3.2.2.4 Định nghĩa đường cong Open Uniform B-Splines 3D ………
52
Chương 4. Ứng dụng vào bài toán "Tuyên truyền an toàn giao thông”
53
4.1 Giới thiệu bài toán “Tuyên truyền an toàn giao thông” ……………………
53
4.2 Xây dựng hệ thống mô phỏng các tình huống giao thông …………………
54
4.3 Các kết quả đạt được ………………………………………………………
55
Kết luận
58
Tài liệu tham khảo
59

3
MỞ ĐẦU


Cùng với sự phát triển của khoa học, con người ngày càng có nhu cầu tiếp
cận với công nghệ để nâng cao đời sống, tiến gần với cuộc sống hiện đại. Công
nghệ thông tin ra đời nhằm mục đích đáp ứng dần những nhu cầu đó. Và thực tế,
ngành khoa học này đã có những thành tích đáng kể đáp ứng được phần nào nhu
cầu của cuộc sống hiện đại, chẳng hạn như đưa tự động hóa vào quản lý và sản xuất
để giảm bớt sức lao động của con người; cung cấp phương tiện trao đổi và tìm kiếm
thông tin – Internet giúp con người cập nhật, trao đổi thông tin một cách dễ dàng,
chính xác; những công nghệ phục vụ cho các lĩnh vực điện ảnh giải trí, giải quyết
các bài toán quản lý hay cung cấp các phần mềm có tính ứng dụng cao . . .
Trong những năm gần đây công nghệ thông tin đã đạt được những bước phát
triển nhảy vọt cả về phần cứng lẫn phần mềm. Những ứng dụng của nó vào cuộc
sống ngày càng phong phú, đa dạng và thiết thực hơn. Từ các lĩnh vực cơ bản như
khoa học cơ bản đến các lĩnh vực kinh tế, kỹ thuật cho đến các lĩnh vực như giải trí,
du lịch không lĩnh vực nào không có sự ứng dụng thiết thực và hiệu quả của công
nghệ thông tin. Sự phát triển không ngừng của sức mạnh máy tính đã làm cho một
số lĩnh vực khó phát triển trước kia nay đã có khả năng phát triển và đã đạt được
những thành tựu đáng kể,chúng ta có thể kể đến các lĩnh vực như: Các hệ chuyên
gia, các hệ xử lý thời gian thực vv… Một lĩnh vực khác cần phải kể đến đó là các
công nghệ mô phỏng.
Mặc dù công nghệ mô phỏng đang còn là một lĩnh vực mới ở Việt Nam
nhưng hiện tại trong nước cũng đã có rất nhiều đơn vị đầu tư, nghiên cứu về lĩnh
vực này, đi tiên phong phải kể đến phòng thí nghiệm Thực tại ảo - Viện CNTT,
trung tâm Công nghệ mô phỏng - Học viện Kĩ thuật Quân sự, các trung tâm làm về
thực tại ảo, quảng cáo thuộc Đại học Công nghệ - Đại học Quốc Gia Hà Nội, Trung
tâm mô phỏng - Đại học Bách khoa Hà Nội… Trên thế giới, những ứng dụng của
công nghệ mô phỏng vào các lĩnh vực của đời sống đã và đang trở nên ngày càng
phong phú, đa dạng, nó dường như đã trở thành một phần không thể thiếu được của
cuộc sống. Vì vậy nghiên cứu và phát triển công nghệ mô phỏng (còn gọi là công
nghệ thực tại ảo) đã và sẽ trở thành một hướng nghiên cứu mang lại nhiều hứa hẹn.


4
Vấn đề về va chạm thường là những vấn đề rất khó nghiên cứu trong thực tế,
chẳng hạn như các công ty sản xuất xe máy, xe ô tô trước khi tung các sản phẩm ra
thị trường đều phải tiến hành các cuộc thử nghiệm về va chạm để kiểm tra tính bền
và tính an toàn của các sản phẩm làm ra. Những vấn đề này đã được nghiên cứu thử
nghiệm trong thực tế nhưng còn rất nhiều hạn chế vì nhiều lý do, còn rất nhiều
trường hợp va chạm mà chúng ta cần nghiên cứu nhưng chưa thể thực hiện được.
Một vấn đề khác đó chính là chi phí cung cấp cho việc thử nghiệm trên thực tế là
quá lớn. Chính vì vậy giải pháp sử dụng máy tính để mô phỏng các vụ va chạm là
một giải pháp thay thế rất thích hợp, đây là một vấn đề hết sức cần thiết cho cuộc
sống của con người. Vấn đề phát hiện va chạm còn được ứng dụng rất nhiều trong
các lĩnh vực khác như: y học, các bộ mô phỏng vật lý hay trong một lĩnh vực có nhu
cầu rất lớn đó là giải trí v.v Phát hiện va chạm được ứng dụng rất nhiều trong các
môi trường thực tại ảo.
Phát hiện va chạm đã khó, xử lý hậu va chạm còn khó hơn. Chúng ta không
chỉ đơn thuần là phát hiện ra va chạm, quan trọng hơn chúng ta cần phải xử lý hay
mô phỏng hành vi của các đối tượng sau va chạm như thế nào cho giống với thế
giới thực, chẳng hạn hai xe máy đâm nhau thì hậu quả sẽ như thế nào? Chúng bị
méo mó, biến dạng, bị thay đổi trạng thái (vận tốc và hướng) ra sao? Hoặc hậu quả
xảy ra khi ô tô đâm vào xe máy thì như thế nào? Đối tượng khi di chuyển trên địa
hình không bằng phẳng phải khác khi di chuyển trên địa hình bằng phẳng Vì
những khó khăn trên, phát hiện va chạm và xử lý hậu va chạm là hai vấn đề quan
trọng trong các hệ thống thực tại ảo.
Trong luận văn này, tôi tìm hiểu và nghiên cứu các vấn đề về phát hiện và xử
lý hậu va chạm trong các hệ thống thực tại ảo. Trong phát hiện va chạm, tôi tập
trung nghiên cứu hai kĩ thuật chính đó là kĩ thuật sử dụng hình hộp bao theo trục
(Axis-Aligned Bounding Boxes - AABBs) và kĩ thuật hình hộp bao theo hướng
(Oriented Bounding Boxes - OBBs). Khi xử lý hậu va chạm, tôi nghiên cứu các cơ
sở vật lý về động lực học vật rắn [16] (Open Dynamic Engine - ODE), kĩ thuật

bóp méo tự do sử dụng các hàm bao BSplines Volume. Cuối cùng, tôi đã kết hợp
hai vấn đề trên để ứng dụng vào hệ thống “Giúp bạn đi an toàn khi tham gia giao
thông” - một hệ thống thực tại ảo mô phỏng các tình huống giao thông “nóng nhất”
nhằm tuyên truyền, trợ giúp người dân biết cách đi như thế nào để an toàn nhất khi
tham gia giao thông.

5
Chương 1
Tổng quan về Thực tại ảo


1. Định nghĩa Thực tại ảo (VR - Virtual Reality)
Các nhà khoa học đã nghiên cứu Thực tại ảo từ nhiều năm nay và đã thừa
nhận Thực tại ảo là một công nghệ có tiềm năng ứng dụng vô cùng lớn. Nhiều bài
báo, chương trình giới thiệu ti vi, hội thảo, đã mô tả Thực tại ảo theo nhiều cách
khác nhau. Vậy Thực tại ảo là gì? Trước hết chúng ta hãy giải thích nó qua khía
cạnh chức năng [4]. Thực tại ảo là một hệ thống mô phỏng, trong đó đồ họa máy
tính được sử dụng để tạo ra một thế giới "như thật". Hơn nữa, thế giới "nhân tạo"
này không tĩnh tại mà lại phản ứng, thay đổi theo ý muốn (tín hiệu vào) của người
sử dụng (nhờ hành động, lời nói, ). Điều này xác định một đặc tính chính của Thực
tại ảo, đó là tính 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 thế giới ảo. Người sử dụng nhìn thấy sự vật thay đổi trên
màn hình ngay theo ý muốn của họ và bị thu hút bởi sự mô phỏng này. Điều này
chúng ta có thể nhận thấy ngay khi quan sát trẻ nhỏ chơi video game. Theo báo Bild
(Đức), có hai trẻ nhỏ ở Anh bị thu hút và mải mê chơi Nintendo đến nỗi ngay cả khi
nhà chúng đang bị cháy cũng không hề hay biết.
Tương tác và khả năng thu hút của Thực tại ảo góp phần lớn vào cảm giác
đắm chìm (immersion), cảm giác trở thành một phần của hành động trên màn hình
mà người sử dụng đang trải nghiệm. Nhưng Thực tại ảo còn đẩy cảm giác này

"thật" hơn nữa nhờ tác động lên tất cả các kênh cảm giác của con người. Trong thực
tế, người dùng không những nhìn thấy đối tượng đồ họa 3D nổi (như hình nổi ở
trang cuối báo Hoa học trò đã đăng trước kia), điều khiển (xoay, di chuyển, ) được
đối tượng trên màn hình (như trong game), mà còn sờ và cảm thấy chúng như có
thật. Ngoài khả năng nhìn (thị giác), nghe (thính giác), sờ (xúc giác), các nhà nghiên
cứu cũng đã nghiên cứu để tạo các cảm giác khác như ngửi (khứu giác), nếm (vị
giác). Tuy nhiên hiện nay trong Thực tại ảo các cảm giác này ít được sử dụng đến.


6
Từ các phân tích trên, chúng ta có thể thấy định nghĩa sau đây của C. Burdea
và P. Coiffet về Thực tại ảo là tương đối chính xác: VR - Thực tại ả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à ngũ giác gồm: thị giác, thính giác, xúc giác,
khứu giác, vị giác [4].
1.2 Ba đặc tính chính của VR
Như một nguyên tắc chủ đạo, một hệ thống thực tại ảo phải có ba đặc tính
sau: tính tương tác (interactive), tính đắm chìm (immersion) và tính tưởng tượng
(imagination) như trong hình 1.1.






Sự đắm chìm
Giá trị của sự đắm chìm (immersion) là gì? Một hiệu ứng hết sức mạnh mẽ
của nó là khả năng tập trung sự chú ý của bạn. Người ta hay nói rằng người ta đang
đắm chìm vào công việc. Sự đắm chìm có nghĩa là ngăn chặn sự xao nhãng và tập

trung một cách có chọn lọc vào chính thông tin với những gì bạn muốn làm. Khả
năng tập trung vào công việc dường như là điều kiện tiên quyết đối với những
người thông minh và có óc sáng tạo phi thường.
Trong khi óc sáng tạo của Picasso là một điều bí ẩn đối với ông cũng như đối
với mọi người khác, một thái độ có thể dễ dàng kiểm chứng là cái cá tính mãnh liệt
của ông khi ông làm mọi việc - ngay cả trong khi ký tên mình. Ông cúi gập mình



Tưởng tượng
(Imagination)
Đắm chìm
(Immersion)
Tương tác
(Interactive)

Hình 1.1 Ba đặc điểm của một hệ thống Thực tại ảo

7
xuống, dán mặt sát vào trang giấy và không còn tồn tại một điều gì khác đối với ông
ngoài việc đang làm.
Một thuộc tính then chốt khác của sự đắm chìm là nó có thể tác động như
một thấu kính mạnh để khai thác kiến thức từ dữ kiện bằng cách biến đổi nó thành
kinh nghiệm. Năng lực này chính là lý do khiến cho rất nhiều ngành công nghiệp
đang ráo riết khai phá cách sử dụng các môi trường ảo. Howard Rheingold cho rằng
có thể tìm thấy những dấu vết xa xưa của việc sử dụng sự đắm chìm trong những
hành động cử hành nghi lễ của người tiền sử. Các thiếu niên được đưa vào bóng tối
của những hang động đầy hình vẽ, ở đó các câu chuyện sẽ được kể lại, các hình ảnh
và các bài ca sẽ được lộ ra theo một trình tự chính xác và các thiếu niên ấy sẽ bị
đắm chìm vào những nghi thức dành cho tuổi trưởng thành của chúng. Chỉ bằng

việc loại bỏ phần còn lại của thế giới và nhấn chìm chính mình vào cái không gian
biệt lập ấy, sự học hỏi có thể diễn ra và làm biến đổi một đứa trẻ thành một người
trưởng thành.
Tính tương tác
Tính tương tác cũng như sự đắm chìm là một phương diện then chốt của
Thực tại ảo. Có hai khía cạnh độc nhất của tính tương tác trong một thế giới ảo đó là
sự điều hướng bên trong thế giới và động lực học của môi trường. Sự điều hướng
(navigation) chỉ đơn giản 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.

Hình 1.2 Tính tương tác của một hệ thống Thực tại ảo

8
Một khía cạnh khác của sự điều hướng là sự định vị điểm nhìn của người
dùng. Sự kiểm soát điểm nhìn chắc hẳn có nghĩa là việc theo dõi chính bạn 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à nội
dung của nó (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. Mỗi một đối tượng (object) và mối quan hệ của nó
với mọi đối tượng khác (kể cả với người dùng) là một yếu tố thiết kế trong sự suy
xét cẩn thận của nhà phát triển.
Trong số những yếu tố đó có thể kể đến vị trí, màu sắc, hình dạng và kích
thước của môi trường. Kết quả là, Thực tại ảo là trải nghiệm của trạng thái sống
trong một thế giới khác - một thế giới được cai quản bởi những luật lệ chọn lọc, và
được ngụ cư bởi những đối tượng với bất kỳ thuộc tính nào mà nhà sáng tạo chọn
lựa để ấn định cho chúng. Chính tính chất linh động này trong việc sáng tạo là biểu
trưng các môi trường ảo đã tạo nên tình trạng kích động về thực tại ảo. Phim ảnh 3D

đã đến và đã đi. Nhưng việc bước vào một thế giới phản ứng lại với bạn và là độc
nhất đối với bạn, một thế giới có cuộc sống độc lập của riêng nó - đó chính là Thực
tại ảo.
Tính tưởng tượng
Như trên đã trình bày, hai đặc tính chính của Thực tại ảo là Tương tác và
Đắm chìm, đây là hai "I" (Interactive, Immersion) mà nhiều người đã biết. Tuy
nhiên Thực tại ảo cần có một đặc tính thứ ba mà ít người để ý tới. Thực tại ảo
không chỉ là một hệ thống tương tác Người - Máy tính, mà các ứng dụng của nó còn
liên quan tới việc giải quyết các vấn đề thật trong kỹ thuật, y học, quân sự, Các
ứng dụng này do các nhà phát triển Thực tại ảo thiết kế, điều này phụ thuộc rất
nhiều vào khả năng Tưởng tượng của con người, đó chính là đặc tính "I"
(Imagination) thứ ba của Thực tại ảo. Do đó có thể coi Thực tại ảo là tổng hợp của
ba yếu tố: Tương tác - Đắm chìm - Tưởng tượng.



9
1.3 Các thành phần một hệ thống VR
Tổng quát, một hệ thống Thực tại ảo bao gồm 5 thành phần sau [4](hình 1.3).

Hình 1.3 Các thành phần của một hệ thống thực tại ảo
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 (hình 1.4).
 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,



10







Phần mềm của một hệ thống Thực tại ảo.
Phần mềm luôn là linh hồn của Thực tại ảo 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ỳ Thực tại ảo nào cũng phải bảo đảm hai công dụng
chính: Tạo hình vào Mô phỏng. Các đối tượng của Thực tại ảo đượ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 Thực tại ảo
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.
Nói chung các hệ thống thực tại ảo phải xử lý mội khối lượng lớn thông tin
(đa phần là các thông tin của các đối tượng 3D do đó tốn bộ nhớ và đòi hỏi thời gian
xử lý là thời gian thực), vì thế nó đòi hỏi một lượng tài nguyên bộ nhớ RAM lớn và
bộ xử lý cùng các thiết bị vào ra có tốc độ cao. Vì vậy mặc dù bắt đầu nghiên cứu từ

khá lâu, xong trong một số năm gần đây thực tại ảo mới có được sự phát triền và
mở rộng ứng dụng đáng kể.

Găng tay dữ liệu
Mũ quan sát 3D
Hình 1.4 Phần cứng trong các hệ thống thực tại ảo
Space Mouse

11
1.4 Ứng dụng của Thực tại ảo
Công nghệ thực tại ảo có rất nhiều ứng dụng trong thực tế. Ứng dụng truyền
thống của thực tại ảo đó là Y học [8], trong các trường đại học Y thường gặp một
khó khăn đó là tìm kiếm các mẫu vật cho sinh viên thực hành, đây là một vấn đề rất
nan giải bởi các mẫu vật này thường rất đắt tiền, nhưng quan trọng hơn là sự khan
hiếm của chúng. Một giải pháp đầy hứa hẹn cho vấn đề này đó là xây dựng các mẫu
vật ảo, tiến xa hơn nữa là các hệ thống giải phẩu ảo, mổ ảo, Việc xây dựng các hệ
thống giải phẩu ảo có một ý nghĩa quan trọng trong Y học, giúp giải quyết được vấn
đề khan hiếm về mẫu vật, giúp sinh viên và giáo viên có thể thực hành, tương tác và
thực hiện các ca giải phẩu ảo ngay trên máy tính mà có cảm giác như đang thực
hành trên những mẫu vật thực (hình 1.5)


Hình 1.5 Một hệ thống giải phẩu ảo
Trong giải trí, công nghệ thực tại ảo trợ giúp chúng ta xây dựng được những
trò chơi sống động, các kĩ xảo điện ảnh, các phim hoạt hình 3D gần gũi với con
người tạo ra sức lôi cuốn mạnh mẽ. Đối với các hoạ sĩ, nhà tạo mẫu, những chương
trình đồ hoạ máy tính là một công cụ trợ giúp hết sức đắc lực, ví dụ như PaintShop,

12
Adobe PhotoShop, 3D Studio Max, Maya, đã giúp họ thiết kế các hình ảnh sống

động như ở trong thế giới thực. Người hoạ sĩ được máy tính tạo cho cảm giác y như
đang làm việc ngoài đời thực vì các công cụ khung vẽ, giá vẽ, bảng pha màu, các
hiệu ứng ba chiều như ánh sáng, độ tương phản đều được cung cấp trên màn hình
máy tính, điều này có thể làm họ cảm thấy thuận tiện và dễ thao tác.
Trong xây dựng, việc dựng được các mô hình thực tại ảo cho phép chúng ta
có cái nhìn trực quan, chính xác để có thể đưa ra những quyết định, những sáng kiến
thiết kế về các công trình xây dựng đúng đắn.
Trong giáo dục, những thí nghiệm được mô tả sát thực bằng máy tính giúp
cho người học hứng thú hơn, kiến thức được thể hiện rõ hơn, trực quan hơn, đầy đủ
hơn. Chẳng hạn, chúng ta có thể mô phỏng cấu trúc của các vật thể, tiến trình của
các phản ứng hoá học, phản ứng hạt nhân mà trong thực tế chúng ta không thể quan
sát được. Đối với một số lĩnh vực đào tạo yêu cầu tính thực hành cao như đào tạo lái
xe ô tô, lái tàu hoả, tàu thuỷ, lái máy báy, công nghệ mô phỏng có thể giúp chúng
ta tiết kiệm rất nhiều tiền của và thời gian bằng cách xây dựng các hệ thống tập lái
ảo. Ở Việt Nam hiện nay đã cho triển khai hệ thống tập lái xe ô tô ảo và hệ thống lái
tàu thuỷ ảo.
Trong quân sự, chúng ta có thể ứng dụng thực tại ảo để xây dựng các mô
hình tập trận ảo, tập lái và điều khiển xe tăng, máy bay chiến đấu ảo, đi đầu trong
lĩnh vực này phải kể đến trung tâm công nghệ mô phỏng thuộc học viện Kĩ thuật
Quân sự.
Cuối cùng là ứng dụng của Thực tại ảo trong việc tái tạo các công trình kiến
trúc (cả cổ điển và hiện đại). Những công trình mang tính lịch sử của nước ta như
Hoàng Thành Thăng Long, Đại Nội Huế, Văn Miếu Quốc Tử Giám, trong tương
lai gần sẽ được số hoá đưa vào máy tính phục vụ mục đích lưu trữ, bảo tồn hoặc
tham quan ảo, đồng thời thuận tiện hơn trong việc quảng bá, giới thiệu văn hoá Việt
Nam với thế giới.
1.5 Các công cụ phát triển ứng dụng Thực tại ảo
1.5.1 Các phần mềm xây dựng mô hình
Mô hình là một phần quan trọng trong các hệ thống thực tại ảo, mô hình mô
tả, biểu diễn một đối tượng trong thế giới thực bao gồm hình dạng bề mặt và hoạt


13
động của đối tượng. Ví dụ trong các phim hoạt hình 3D, mô hình là các nhân vật,
môi trường cảnh quan, động vật, rừng núi, sông nước,
Có rất nhiều phần mềm tạo mô hình ba chiều như Maya, 3DS Max,
LightWare,…song hai phần mềm phổ biến nhất là Maya và 3DS Max. Ở Việt Nam,
3DS Max quen thuộc hơn Maya. Nhưng xu thế trên thế giới các công ty chuyển
sang Maya mạnh hơn. Mô hình với Maya cho kích thước nhẹ hơn so với 3DS Max.
Hiện tại phiên bản mới nhất của Maya là 6.5 và 3DS Max là 8.0.
Maya và 3DS Max cũng như các phần mềm tạo mô hình ba chiều khác giúp
tạo mô hình 3 chiều để mô phỏng thế giới thực. Nó có các đối tượng nguyên thuỷ
như hình cầu, hình trụ, hình hộp, mặt phẳng, đường cong,…Từ các đối tượng
nguyên thuỷ này ta sử dụng các thao tác như dịch chuyển, xoay, co giãn cùng với
các kỹ thuật chỉnh sửa như cắt xén, mở rộng, thêm bớt … để tạo nên đối tượng
mong muốn trong thế giới thực.
Sau đó các đối tượng sẽ được bổ sung thêm xương (nếu có), tính chất bề mặt
(như màu sắc, da, tóc, mắt …) và được tạo các chuyển động mô phỏng một cách
sinh động các thể hiện của đối tượng trong thế giới thực.
Khi làm việc với các phần mềm ta sẽ thao tác trên 4 khung nhìn khác nhau
của đối tượng, 4 khung nhìn này sẽ cho ta nhìn được đối tượng đồng thời ở các góc
độ khác nhau, hình 1.6 minh họa điều này.












Hình 1.6 Các khung nhìn khác nhau trong phần mềm Maya.


14
Ta có hệ trục tọa độ ba chiều XYZ, màu xanh lam ứng với trục Y, màu đỏ
ứng với trục X và màu xanh đậm ứng với trục Z. Góc trên, bên phải là khung làm
việc cho phép ta thao tác trong không gian ba chiều, ba góc còn lại cho phép ta làm
việc ở ba mặt cắt của mô hình. Với các khung nhìn này ta có thể thao tác dễ dàng
hơn, khi một thay đổi xuất hiện ở một khung nhìn sẽ cho hiệu ứng đối với các
khung nhìn khác.
Bên cạnh hệ trục tọa độ XYZ ta còn có hệ tọa độ UV, hệ tọa độ UV bao bọc
bề mặt theo 2 chiều trái sang phải và dưới lên trên. Có thể hình dung ra hệ tọa độ
này như là các đường kinh tuyến và vĩ tuyến của trái đất. Hệ tọa độ này chủ yếu
được sử dụng trong quá trình thêm tính chất bề mặt cho mô hình.
1.5.2 Các công cụ lập trình
Các công cụ lập trình trong các ứng dụng Thực tại ảo thường là các thư viện
đồ hoạ 3D được xây dựng sẵn, miễn phí như DirectX, OpenGL, OpenSG,
OpenSceneGraph. Trước đây, chúng ta hay sử dụng các thư viện OpenGL và
DirectX, nhưng do mức độ hỗ trợ người lập trình trong các thư viện đó chưa cao
nên người ta đã mở rộng chúng thành OpenSG, OpenSceneGraph. Hai thư viện lập
trình OpenSG, OpenSceneGraph được xây dựng trên nền tảng OpenGL (hình 1.7)
và đưa vào khái niệm rất mới đó là “Đồ thị ngữ cảnh” – Scene Graphs. Theo đó,
mỗi đối tượng được biễu diễn như là một cây ngữ cảnh, mỗi nút có một nhân (core),
nhân của mỗi nút có thể là một đối tượng geometry, đối tượng transform, đối tượng
ánh sáng (light)











System (UNIX, Windows)

OpenGL
OpenSG
Low Level
OpenSG
Large
Scene
Support
OpenSG
High
Level
Primitive
s
OpenSG
High
Level
Shading
Hình 1.7 Kiến trúc mô hình thư viện đồ hoạ OpenSG

15
Quá trình Render một đối tượng xuất phát từ nút gốc đi đến từng nút lá và
thực hiện các hành động tương ứng trong quá trình duyệt cây. Xét ví dụ một đối

tượng xe ô tô có thể được biễu diễn bởi một đồ thị ngữ cảnh như hình 1.8.









OpenSG hỗ trợ các hàm và các đối tượng đồ hoạ cơ sở như Light, Geometry,
Transform, Material, Windows, Viewport, ngoài nó còn hỗ trợ cơ chế đa luồng,
lập trình hiển thị stereo. Để sử dụng được thư viện OpenSG, bạn cần dùng bộ biên
dịch FrameNet, thông thường OpenSG hay dùng với ngôn ngữ lập trình Visual
C.Net. Để biết thêm về thư viện đồ hoạ OpenSG, bạn có thể tìm hiểu và download
miễn phí OpenSG tại địa chỉ: www.opensg.org.
Car
Wheel
s
Body
Transformation
s
Wheelge
o
Light
Root
Light
Hình 1.8 Đồ thị ngữ cảnh của đối tượng Car

16

Chương 2

Các phương pháp phát hiện va chạm

Phát hiện va chạm là một trong những vấn đề trọng tâm của mỗi hệ thống
thực tại ảo. Các đối tượng trong các hệ thống thực tại ảo có những chuyển động
riêng của nó. Trong khi chuyển động đối tượng có thể va chạm với đối tượng khác,
hoặc có thể va chạm với môi trường, chướng ngại vật, Do vậy, mỗi hệ thống thực
tại ảo đều phải có khả năng phát hiện khi nào thì có va chạm xảy ra và có những đối
tượng nào tham gia va chạm để có những xử lý hậu va chạm thích hợp. Trong luận
văn này, tôi xem xét các đối tượng trong không gian ba chiều nên khi nói đến va
chạm có nghĩa là va chạm trong không gian ba chiều. Một cách đơn giản nhất để
phát hiện va chạm giữa hai đối tượng đó là kiểm tra từng mặt của đối tượng này có
cắt một mặt nào đó của đối tượng kia, cách này có ưu điểm là cho ta chính xác điểm
va chạm. Tuy nhiên vì mỗi đối tượng 3D được tạo thành từ rất nhiều các mặt (thông
thường là các tam giác) cho nên chi phí để kiểm tra giao nhau của từng cặp mặt như
vậy là rất tốn kém về mặt thời gian, nhất là ta luôn phải đảm bảo tính thời gian thực
trong các hệ thống thực tại ảo. Do vậy, hầu hết các hệ thống thực tại ảo đều sử dụng
phương pháp gần đúng để phát hiện va chạm, phương pháp gần đúng hay được sử
dụng đó là phương pháp dùng các hình bao quanh đối tượng [13]. Với mỗi đối
tượng, ta tìm một hình bao “thích hợp” quanh nó, việc phát hiện va chạm bây giờ
được đưa về bài toán phát hiện va chạm giữa các hình bao. Việc sử dụng hình bao
gì cho đối tượng là tuỳ thuộc vào từng hệ thống, để giảm độ phức tạp khi tính toán
thì người ta hay sử dụng các hình bao là các hình elipsoid, hình hộp, hình cầu
Đối với phương pháp phát hiện va chạm theo các hộp bao thì ta lại có hai kỹ
thuật khác nhau đó là sử dụng hộp bao có các cạnh song song với các trục toạ độ
(Axis-Aligned Bounding Boxes - AABBs) hoặc là hộp bao theo hướng của đối
tượng (Oriented Bounding Boxes - OBBs). Việc phát hiện va chạm giữa các hộp
bao AABBs được thực hiện nhanh chóng nhưng sai số lớn, trong khi đó phát hiện
va chạm giữa các hộp bao OBBs tuy phức tạp hơn nhưng cho sai số nhỏ hơn nhiều.



17
2.1 Kĩ thuật phát hiện va chạm dựa vào hộp bao AABB
2.1.1 Định nghĩa hộp bao AABB
AABB là hộp bao có dạng hình hộp chữ nhật có các cạnh song song với các
trục toạ độ tương ứng và bao lấy vật thể (hình 2.1).

Hình 2.1 Hộp bao AABB của đối tượng
Hộp bao AABB bao gồm một tâm C, ba hệ số a
0
, a
1
, a
2
tương ứng là độ dài
theo ba trục toạ độ của hình hộp.
2.1.2 Phát hiện va chạm giữa hai AABB
Cho hai hộp bao AABB xác định bởi [C
1
, a
0
, a
1
, a
2
] và [C
2
, b
0

, b
1
, b
2
], trong
đó a
i
>0, b
j
>0, i,j = 0,1,2. Để kiểm tra va chạm, chúng ta xác định toạ độ cao nhất và
thấp nhất của mỗi hộp bao. Kí hiệu (x
min1
, y
min1
, z
min1
), (x
max1
, y
max1
, z
max1
) là toạ độ
thấp nhất và cao nhất của hộp bao có tâm C
1
:

2
,
2

2
,
2
2
,
2
0
01max
0
01min
0
01max
0
01min
0
01max
0
01min
c
Cz
c
Cz
b
Cy
b
Cy
a
Cx
a
Cx





Tương tự ta tính được (x
min2
, y
min2
, z
min2
), (x
max2
, y
max2
, z
max2
) là toạ độ thấp
nhất và cao nhất của hộp bao xác định bởi tâm C
2
. Hai hộp bao AABB không va
chạm nếu xảy ra một trong các điều kiện sau:
 z
min1
> z
max2
hoặc z
max1
< z
min2


 y
min1
> y
max2
hoặc y
max1
< y
min2


18
 x
min1
> x
max2
hoặc x
max1
< x
min2

Hộp bao này rất đơn giản, dễ tạo ra và kiểm tra, phát hiện va chạm cũng rất
dễ dàng. Tuy nhiên hộp bao AABB cũng tạo ra nhiều khoảng trống giữa vật thể và
hộp bao. Khi vật thể không nằm song song với các trục toạ độ và có dạng dài thì
khoảng trống này càng lớn. Thực tế trong các hệ thống thực tại ảo, người ta chỉ sử
dụng kĩ thuật hộp bao AABB để giới hạn vùng va chạm, sau đó để kiểm tra và tìm
điểm va chạm chính xác hơn, người ta sẽ sử dụng kĩ thuật hộp bao theo hướng OBB
sẽ được trình bày trong phần tiếp theo.
2.2 Kỹ thuật hộp bao theo hướng (Oriented Bounding Boxes)
2.2.1 Định nghĩa hộp bao theo hướng (OBB)
OBB là hộp bao AABB nhưng trục của nó có hướng bất kỳ. OBB có ưu điểm

hơn AABB đó là giảm không gian trống giữa vật thể và hộp bao. Tuy nhiên việc tạo
ra và thao tác trên hộp bao loại này phức tạp hơn loại AABB nhiều, mặc dù vậy
người ta vẫn thường sử dụng loại hộp bao này hơn vì nó cho độ chính xác cao hơn
nhiều so với hộp bao AABB (Hình 2.2).

Hình 2.2 Hộp bao OBB của đối tượng
Một hình hộp OBB bao gồm một tâm C, ba vector
210
,, AAA

chỉ hướng của
hình hộp và 3 hệ số độ dài tương ứng với kích thước của hình hộp là a
0
>0, a
1
>0,
a
2
>0. Khi đó, 8 đỉnh của hình hộp sẽ được xác định như sau:




2
0
.2,1,0,1||*
i
iiii
isAasC



Kỹ thuật phát hiện hộp bao theo hướng được chia làm hai mức [6]. Mức một
là kiểm tra “nhanh” xem có va chạm nào xảy ra không? Nếu không có va chạm nào
xảy ra thì hệ thống vẫn làm việc bình thường, ngược lại nếu ở mức một phát hiện có
ít nhất một va chạm xảy ra thì sẽ chuyển sang mức hai đó là tìm chính xác điểm va

19
chạm. Ở mức một, ta có thể kiểm tra nhanh xem có va chạm nào xảy ra không nhờ
dựa vào định lý sau đây.
Định lý 2.2.1 Hai khối đa diện lồi không giao nhau nếu có thể cô lập được chúng
bằng một mặt phẳng P thoả mãn một trong hai điều kiện sau:
 P song song với một mặt nào đó của một trong hai khối đa diện.
 Hoặc là P chứa một cạnh thuộc đa diện thứ nhất và một đỉnh thuộc đa diện
thứ hai.
Từ định lý trên, ta rút ra nhận xét sau cho phép kiểm tra nhanh sự giao nhau
của hai hai khối đa diện lồi: Điều kiện cần và đủ để kiểm tra hai khối đa diện lồi có
giao nhau hay không là kiểm tra giao nhau giữa các hình chiếu của chúng lên đường
thẳng vuông góc với mặt phẳng P ở trên, đường thẳng này được gọi là trục cô lập.
Ta thấy rằng các hộp bao OBBs là những khối đa diện lồi, bởi vậy ta hoàn toàn có
thể áp dụng định lý trên để kiểm tra va chạm giữa chúng.
2.2.2 Kiểm tra nhanh va chạm giữa hai hộp bao OBBs
Cho hai hình bao OBBs xác định bởi các thông số [C
0
,A
0
,A
1
,A
2
,a

0
,a
1
,a
2
] và
[C
1
,B
0
,B
1
,B
2
,b
0
,b
1
,b
2
]. Ta thấy rằng các tình huống mà hai OBBs tiếp xúc với nhau
(không cắt nhau) chỉ có thể là một trong 6 trường hợp sau đây: mặt - mặt, mặt -
cạnh, mặt - đỉnh, cạnh - cạnh, cạnh - đỉnh, đỉnh - đỉnh. Do vậy, tập ứng cử viên các
trục cô lập chỉ tối đa là 15 trục sau:
 3 trục chỉ hướng của hộp bao thứ nhất (
i
A

)
 3 trục chỉ hướng của hộp bao thứ hai (

j
B

)
 9 trục tạo bởi tích có hướng của một trục thuộc hộp bao thứ nhất và một trục
thuộc hộp bao thứ hai (
ji
BA



).
Mặt khác, ta biết rằng nếu một trục là trục cô lập thì khi tịnh tiến đến vị trí
nào, nó vẫn là trục cô lập. Bởi vậy, không mất tính tổng quát ta sẽ gọi trục cô lập có
vector chỉ phương là V và đi qua tâm C
0
của hộp bao thứ nhất, do vậy nó có phương
trình như sau: d =
0
C

+ t*
V

Trong đó, t là tham số.
V

có thể là
ji
BA



,
hoặc
ji
BA



với i, j = 0,1,2.

20
Gọi P là một điểm bất kỳ, hình chiếu của P lên đường thẳng d với gốc C
0
sẽ
là đoạn thẳng C
0
H xác định như sau (hình 2.3).



||
*)(
),(
0
V
VCP
dPhc









Như vậy, khi chiếu 8 đỉnh của hộp bao thứ nhất lên trục cô lập d với gốc C
0
thì sẽ thu được 4 cặp đoạn thẳng có độ dài bằng nhau nằm về hai phía so với C
0
(hình 2.4), độ dài của mỗi đoạn thẳng được xác định như sau :

|
||
*)**(
|),**(
2
0
2
0
0
V
VAas
dAasChc
i
iii
i
iii










(2.1)


Như vậy, khoảng cách nhỏ nhất chứa 8 đoạng thẳng (2.1) sẽ có tâm là C
0

bán kính r
0
được xác định như sau :
r
0
= max {
|
||
*)**(
|
2
0
V
VAas
i
iii






} Với mọi |s
i
| = 1.
Đặt R
0
= r
0
*
||V

, ta có:
d
C
0

P
H
Hình 2.3 Hình chiếu của P lên đường thẳng d
Hình 2.4 Chiếu 8 đỉnh của hình hộp lên trục cô lập d

21
 R
0
= max{ | a
0
*

VA


*
0
+ a
1
*
VA


*
1
+ a
2
*
VA


*
2
|
| a
0
*
VA


*
0

+ a
1
*
VA


*
1
- a
2
*
VA


*
2
|
| a
0
*
VA


*
0
- a
1
*
VA



*
1
+ a
2
*
VA


*
2
|
| a
0
*
VA


*
0
- a
1
*
VA


*
1
- a
2

*
VA


*
2
|
|-a
0
*
VA


*
0
+ a
1
*
VA


*
1
+ a
2
*
VA


*

2
|
|-a
0
*
VA


*
0
+ a
1
*
VA


*
1
- a
2
*
VA


*
2
|
|-a
0
*

VA


*
0
- a
1
*
VA


*
1
+ a
2
*
VA


*
2
|
|-a
0
*
VA


*
0

- a
1
*
VA


*
1
- a
2
*
VA


*
2
|
}
= a
0
*|
VA


*
0
| + a
1
*|
VA



*
1
| + a
2
*|
VA


*
2
|
Tương tự, ta xác định hình chiếu 8 đỉnh của hộp bao thứ hai lên d với gốc C
0

như sau.
|
||
*)**(
|
||
*
),**(
2
0
2
0
1
V

VBbs
V
DV
dBbsChc
i
iii
i
iii











(2.2)
Với
01
CCD




Chú ý rằng, 8 đoạn thẳng này được nhóm thành 4 cặp đối xứng nhau qua C
1
.

Do vậy, khoảng cách nhỏ nhất chứa 8 đoạng thẳng (2.2) sẽ có tâm là C
1
và bán kính
R
1
được xác định như sau :
r
1
= max {
|
||
*)**(
|
2
0
V
VBbs
i
iii




} Với mọi |s
i
| = 1.
Đặt R
1
= r
1

*
||V

, tương tự như trên ta suy ra :
R
1
= b
0
*|
VB

*
0
| + b
1
*|
VB

*
1
| + b
2
*|
VB

*
2
|.
Hai khoảng cách trên sẽ không giao nhau nếu:
C

0
C
1
> r
0
+r
1

||V

*C
0
C
1
>
||V

*r
0
+
||V

*r
1
 R > R
0
+ R
1
(2.3)


22
Trong đó: R = C
0
C
1
*
||V

.

Hình 2.5 Kết quả chiếu 2 hình hộp lên trục cô lập d
Bây giờ ta sẽ giải cụ thể các phương trình trên. Với mỗi vector
i
B

ta có thể
viết thành:
221100
AcAcAcB
iiii



với i = 0,1,2.
Đặt : A = (A
0
, A
1
, A
2

) và B= (B
0
, B
1
, B
2
)












222120
121110
020100
ccc
ccc
ccc
C
(2.4)
 B = C*A  A
T
*B = C  C =

210
2
1
0
* BBB
A
A
A
=










221202
211101
201000
BABABA
BABABA
BABABA
(2.5)

Từ (2.4) và (2.5) suy ra:
jiij
BAc



*
, hay c
ij
chính là tích vô hướng của hai
vector A
i
, B
j
. Mặt khác, từ B = C*A  A = C
T
*B 
221100
BcBcBcA
iiii




Như trong phần đầu đã nói, tập các trục cô lập ứng cử viên
V

=
{
i
A

,
j

B

,
ji
BA



}với i, j = 0,1,2. Để tính toán các hệ số R
0
, R
1
, R ở trên thì ta sẽ làm
minh họa cho hai trường hợp
V

=
i
A


V

=
ji
BA



, các trường hợp còn lại được

tính toán tương tự.
 Xét trường hợp
V

=
0
A

:
 R
0
= a
0
*|
VA


*
0
| + a
1
*|
VA


*
1
| + a
2
*|

VA


*
2
| = a
0
.

23
 R
1
= b
0
*|
VB

*
0
| + b
1
*|
VB

*
1
| + b
2
*|
VB


*
2
| = b
0
*|c
00
| + b
1
*|c
01
|

+ b
2
*|c
02
|.
 R =
0
A

*
D


 Xét trường hợp
V

=

00
BA



:
 R
0
= a
0
*|
000
* BAA



| + a
1
*|
001
* BAA



| + a
2
*|
002
* BAA




|
Mặt khác :
V

=
00
BA



=
)(
2201100000
AcAcAcA


=
120210
AcAc



 R
0
= a
1
*|c
20

| + a
2
*|c
10
|
 R
1
= b
0
*|
VB

*
0
| + b
1
*|
VB

*
1
| + b
2
*|
VB

*
2
|.
 R =

V

*
D

=
DAcAc


*)(
120210


Ta có viết lại
V

dưới dạng:
V

=
00
BA



=
0202101000
)( BBcBcBc



= -
102201
BcBc




VB

*
0
=
)(*
1022010
BcBcB


= 0
VB

*
1
=
)(*
1022011
BcBcB


= c
02



VB

*
2
=
)(*
1022012
BcBcB


= -c
01
 R
1
= b
1
*|c
02
|+ b
2
*|c
01
|
Tiếp tục làm cho các trường hợp còn lại, ta xây dựng được bảng các giá trị
cho R, R
0
, R
1

như sau :

V


R
0

R
1

R
0
A


a
0

b
0
|c
00
|+b
1
|c
01
|+b
2
|c

02
|
|.|
0
DA



1
A


a
1

b
0
|c
10
|+b
1
|c
11
|+b
2
|c
12
|
|.|
1

DA



2
A


a
2

b
0
|c
20
|+b
1
|c
21
|+b
2
|c
22
|
|.|
2
DA




0
B


a
0
|c
00
|+a
1
|c
10
|+a
2
|c
20
|
b
0

|.|
0
DB


1
B


a

0
|c
01
|+a
1
|c
11
|+a
2
|c
21
|
b
1

|.|
1
DB


2
B


a
0
|c
02
|+a
1

|c
12
|+a
2
|c
22
|
b
2

|.|
2
DB


×