Va chạm là vấn đề không thể thiếu trong bất kỳ một hệ thống thực tại ảo nào (VR). Do đó, nghiên cứu các phương pháp phát hiện va chạm là một mục tiêu hàng đầu mà các hệ thống thực tại ảo quan tâm. Bài báo này trình bày một kỹ thuật phát hiện va chạm dựa trên việc tính toán các hộp bao theo hướng (Oriented Bounding Boxes) và có cải tiến để phát hiện va chạm. Kỹ thuật nghiên cứu đã được áp dụng vào hệ thống “Giúp bạn đi an toàn” - một hệ thống thực tại ảo mô phỏng giao thông. Hệ thống có thể trợ giúp con người biết cách đi như thế nào để an toàn khi tham gia giao thông.
Trang 1TÍNH TOÁN VA CHẠM SỬ DỤNG KỸ THUẬT HỘP BAO THEO HƯỚNG VÀ ỨNG DỤNG TRONG TUYÊN TRUYỀN GIAO THÔNG
Đỗ Năng Toàn 1 , Nông Minh Ngọc 2*
1 Viện Công nghệ thông tin, 2 Đại học Thái Nguyên
TÓM TẮT
Va chạm là vấn đề không thể thiếu trong bất kỳ một hệ thống thực tại ảo nào (VR) Do đó, nghiên cứu các phương pháp phát hiện va chạm là một mục tiêu hàng đầu mà các hệ thống thực tại ảo quan tâm Bài báo này trình bày một kỹ thuật phát hiện va chạm dựa trên việc tính toán các hộp bao theo hướng (Oriented Bounding Boxes) và có cải tiến để phát hiện va chạm
Kỹ thuật nghiên cứu đã được áp dụng vào hệ thống “Giúp bạn đi an toàn” - một hệ thống thực tại
ảo mô phỏng giao thông Hệ thống có thể trợ giúp con người biết cách đi như thế nào để an toàn khi tham gia giao thông
Từ khóa: Phát hiện va chạm, OBBs, AABB, Thực tại ảo
GIỚI THIỆU*
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 mỗi hệ thống đồ hoạ có
những chuyển động riêng của nó, trong khi
chuyển độ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,
Đối với phương pháp phát hiện va chạm theo
các hộp bao thì ta 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 Boxe -
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 lại cho sai số nhỏ hơn nhiều
Bài báo này sẽ trình bày kỹ thuật phát hiện va
chạm dựa vào các hộp bao OBBs và đưa ra
một cải tiến để giảm thời gian xử lý các hộp
bao Cuối cùng, chúng tôi đã áp dụng kỹ thuật
trên vào hệ thống “Giúp bạn đi an toàn khi
tham 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 nhằm tuyên
truyền, trợ giúp người dùng biết cách đi như thế
nào để an toàn nhất khi tham gia giao thông
*
Tel: 0968 595888
KỸ THUẬT HỘP BAO THEO HƯỚNG (ORIENTED BOUNDING BOXES)
Định nghĩa hộp bao theo hướng (Oriented Bounding Boxes-OBBs)
Trong phần này, tất cả các vectors được hiểu
là trong không gian R3 Một hình hộp OBB bao gồm một tâm C, ba vector A0,A1,A2
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à a0 >0, a1>0, a2>0 Khi đó, 8 đỉnh của hình hộp sẽ được xác định như sau:
2
0
2 , 1 , 0 , 1
|
|
*
i
i i
i
s
(1)
Kỹ thuật phát hiện hộp bao theo hướng được chia làm hai mức 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, 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 chạm của các hộp bao
Định lý: Việc kiểm tra 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
Trang 2Từ đị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
Phương pháp kiểm tra 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ố [C0,A0,A1,A2,a0,a1,a2] và
[C1,B0,B1,B2,b0,b1,b2] 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 (A i
)
- 3 trục chỉ hướng của hộp bao thứ hai (B j
)
- 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 (A i B j
)
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 C0 của hộp bao thứ nhất, do vậy
nó có phương trình như sau:
d = C 0
+ t*V
Trong đó: t là tham số V
là A i hoặc B j hoặc A i B j
với i, j = 0,1,2
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 C0 sẽ là đoạn thẳng
C0H xác định như sau :
|
|
* ) (
)
,
V
V C P
d
P
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 C0 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 C0 (hình 2), độ dài của mỗi đoạn thẳng được xác định như sau :
|
|
|
* )
*
* (
| ) ,
*
* (
2
0 2
0 0
V
V A a s d
A a s C
i i i
i
i i
(2)
Hình 2 Chiếu 8 đỉnh của hình hộp lên trục cô lập d
Như vậy, khoảng cách nhỏ nhất chứa 8 đoạng thẳng (2) sẽ có tâm có tâm là C0 và bán kính
r0 được xác định như sau :
|
|
* )
*
* (
|
2
0
V
V A a s
i
i i i
} Với mọi |si| = 1 (3) Đặt R0 = r0*| V |
, ta có:
R0 = max{| a0*A V
*
0 + a1*A V
*
a2*A V
*
| a0*A V
*
0 + a1*A V
*
1 - a2*A V
*
d
C0
P
H
Hình 1 Hình chiếu của P lên đường thẳng d
Trang 3| a0*A V
*
0 - a1*A V
*
1 + a2*A V
*
| a0*A V
*
0 - a1*A V
*
1 - a2*A V
*
|-a0*A V
*
0 + a1*A V
*
1 + a2*A V
*
|-a0*A V
*
0 + a1*A V
*
1 - a2*A V
*
|-a0*A V
*
0 - a1*A V
*
1 + a2*A V
*
|-a0*A V
*
0 - a1*A V
*
1 - a2*A V
*
= a0*|A V
*
0 | + a1*|A V
*
1 | + a2*|A V
*
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 C0 như sau
|
|
|
* )
*
* (
|
|
|
* ) ,
*
*
(
2
0 2
0
1
V
V B b s V
D V d B b
s
C
i i i
i
i i
(4) Với D C1 C0
Chú ý rằng, 8 đoạn thẳng này được nhóm
thành 4 cặp đối xứng nhau qua C1 Do vậy,
khoảng cách nhỏ nhất chứa 8 đoạng thẳng (4)
sẽ có tâm là C1 và bán kính R1 được xác định
như sau :
|
|
* )
*
* (
|
2
0
V
V B b s
i
i i i
} Với mọi
|si| = 1
Đặt R1 = r1*| V |
, tương tự như trên ta suy ra :
R1 = b0*|B V
*
0 | + b1*|B V
*
b2*|B V
*
Hai khoảng cách trên sẽ không giao nhau nếu:
C0C1 > r0+r1 | V |
*C0C1 > | V |
*r0 +
|
| V
*r1 R > R0 + R1 (5)
Trong đó: R = C0C1*| V |
Giải cụ thể các phương trình trên Với mỗi vector B i
ta có thể viết thành:Bi c0i A0 c1i A1 c2i A2
với i = 0,1,2
Đặt : A = (A0, A1, A2) và B= (B0, B1, B2)
22 21 20
12 11 10
02 01 00
c c c
c c c
c c c
B = C*A AT*B = C C =
2 1 0 2 1
0
A A
A
=
2 2 1 2 0 2
2 1 1 1 0 1
2 0 1 0 0 0
B A B A B A
B A B A B A
B A B A B A
(7)
Từ (6) và (7) suy ra: cij A i B j
* , hay cij
chính là tích vô hướng của hai vector Ai, Bj Mặt khác, từ B = C*A A = CT
*B
2 2 1 1 0
c
Như trong tập các trục cô lập ứng cử viên V
= {Ai
,B j ,A i B j
}với i, j = 0,1,2 Để tính toán các hệ số R0, R1, R ở trên thì ta sẽ làm minh họa cho hai trường hợp V
= Ai
và V
= A i B j
, 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
= A0
: + R0 = a0*|A V
*
0 | + a1*|A V
*
1 | +
a2*|A V
*
2 | = a0 + R1 = b0*|B V
*
0 | + b1*|B V
*
1 | +
b2*|B V
*
2 | = b0*|c00| + b1*|c01|+ b2*|c02| + R = A0
*D
- Xét trường hợp V
= A0 B0
: + R0 = a0*|A0*A0 B0
| +
a1*|A1*A0 B0
| + a2*|A2*A0 B0
| Mặt khác : V
= A0 B0
=
)
=
1 20 2
R0 = a1*|c20| + a2*|c10| + R = V
*D = c A c A D
* )
C0
C1 R1
R0
d
Hình 3 Kết quả chiếu 2 hình hộp lên trục cô lập d
Trang 4+ R1 = b0*|B V
*
0 | + b1*|B V
*
b2*|B V
*
Ta có viết lại V
dưới dạng:
V
= A0 B0
=
0 2 02 1
01
0
(c B c B c B B
=
-1
02
2
B V
*
0 = B0*( c01B2 c02B1)
= 0
V
B
*
1 = B1*( c01B2 c02B1)
= c02
V
B
*
2 = B2*( c01B2 c02B1)
= -c01
R1 = b1*|c02|+ b2*|c01|
Tiếp tục, ta xây dựng được bảng các giá trị
cho R, R0, R1 như thể hiện tại bảng 1
Tính toán điểm va chạm giữa hai OBBs
Khi có va chạm giữa các OBBs xảy ra, ta sẽ
thực hiện việc tìm chính xác điểm va chạm
Đối với hai hộp bao, nếu chúng va chạm với
nhau ở dạng đỉnh - đỉnh, đỉnh - cạnh, cạnh - cạnh, đỉnh - mặt thì điểm tiếp xúc là duy nhất
Nhưng nếu chúng va chạm với nhau ở dạng
mặt - mặt, cạnh - mặt thì sẽ có vô số điểm
tiếp xúc, khi đó chúng ta chỉ cần đưa ra một điểm bất kỳ là được
Ý tưởng để tìm thời điểm va chạm như sau:
Mỗi khi ta thực hiện công việc kiểm nhanh va
chạm ở mức thứ nhất, nếu tìm được một trục
cô lập thì ta sẽ ghi lại nhãn thời gian cho trục
cô lập đó Nếu không tìm được một trục cô lập nào thì có nghĩa là hai hộp bao đã va
chạm với nhau, khi đó nhãn thời gian được
gán cho trục cô lập ở lần kiểm tra liền trước
sẽ là thời điểm đầu tiên mà hai hộp bao va chạm nhau, gọi T là nhãn thời gian đó Khi
đó, ta có thế coi như R = R0+R1(thời điểm hai hình hộp tiếp xúc nhau)
Bảng 1 Các giá trị R, R 0 , R 1
Trang 5
Gọi P là điểm tiếp xúc của hai hộp bao thì suy
ra tồn tại một vector x = {x0, x1, x2} và y =
{y0, y1, y2} sao cho:
2
0 2
0
*
*
j
j j i
i
với |xi| ai, |yj|
bj và i,j = 0,1,2 (8)
Việc tìm điểm va chạm sẽ phụ thuộc vào trục
cô lập V
ở thời điểm T là trục nào trong số
15 trục cô lập ứng cử viên Ta xét 3 trường
hợp sau
V
là vector A i
:Nhân hai vế của (8) với A i
ta thu được:
xi =
2
0
*
*
j
j i j
=
Sign(Ai D
* )*(R0+R1) +
2
0
*
j
ij
j c y
Đặt = Sign(Ai D
* ) xi = *(R0+R1) +
2
0
*
j
ij
j c
y Thay giá trị các R0, R1 tại bảng 1:
xi = *(ai +
2
0
|
|
*
j
j
0
*
j
ij
j c
y Nhân
cả hai vế với ta được
(ai- *xi) +
2
0
|
|
*
j
j
j c
2
0
*
j
ij
j c
y = 0 (ai- *xi)
2
0
j ij j
j
ij b Sign c y
Ta thấy: (ai- *xi) 0 và
)
* ) (
*
( bj Sign cij yj 0
0
* ) (
*
0
*
j ij j
i
y c Sign
b
xi
a
Nếu cij 0
2 , 1 , 0
* ) (
*
*
j bj c Sign
y
a
x
ij j
i
i
Nếu cij = 0 (ứng với trường hợp cạnh va chạm
mặt, mặt va chạm mặt) Khi đó, nhân hai vế
của (8) với B j
ta được:
yj =
-2
0
*
*
k
kj k
Mặt khác, vì |yj| bj nên ta có:
Do vậy, ta chỉ cần chọn một giá trị yj thuộc đoạn trên
V
là vector B i
:Tương tự như trường hợp
trên, ta tính được
Nếu cji 0
2 , 1 , 0
* ) (
*
*
j a c Sign x
b y
j ji j
i i
Nếu cji = 0, nhân hai vế của (6) với A i
ta có:
Tương tự như trên, ta có:
Khi đó, chọn xj thuộc đoạn sau làm điểm tiếp xúc:
V
là vector A i B j
: Để dễ trình bày,
chúng ta sẽ làm minh hoạ cho một trường hợpV
= A0 B0
= c10A2 c20A1
=
1 02 2
, các trường hợp khác sẽ được tính tương tự
Nhân hai vế (8) với A0 B0
ta được:
x2*c10 - x1*c20 = A B D
* )
) (
*
2
0
B c B c B
y
j
j j
x2*c10 - x1*c20 = A B D
* ) ( 0 0 + y1*c02 -
y2*c01 (10) Chú ý rằng, theo hàng 7 trong bảng 1 thì:
|
|
*
|
|
*
|
|
*
|
|
*
|
* ) (
|
|
|
01 2 02 1 10 2 20 1
1 0 0
0
c b c b c a c a
R R D B A
Trang 6} |
|
*
|
|
*
|
|
*
|
|
* {
* )
* ) ((
01 2 02 1 10 2
20
1 0
0
c b c b c
a
c
a D B A
Sign
Đặt Sign((A0 B0)*D)
, ta có (10) tương đương với :
x2*c10 - x1*c20 =
*(
|
|
*
|
|
*
|
|
*
|
|
+ y1*c02 - y2*c01
|c20|*(a1+ *Sign(c20)*x1)+|c10|*(a2
-*Sign(c10)*x2)
+ |c01|*(b2- *Sign(c01)*y2)+
|c02|*(b1+ *Sign(c02)*y1) = 0 (11)
Nhận thấy:
Từ (11) suy ra:
Để tìm x0 và y0, nhân 2 vế của (6) với A0
và
0
:
0 0
2 20 1 10
0
00
02 02 1 01 0 00 0
0
*
*
*
*
*
*
*
*
y D B x c x c
x
c
y c y c y c D
A
x
Giải hệ phương trình trên, cùng với các hệ số
y1, y2, x1, x2 ở trên
2 20 1 10 2 02 1
01 0
00 0
2
00
0
2 02 1 01 2 20 1
10 0
00 0
2
00
0
*
* )
*
*
* (
*
* 1
1
*
* )
*
*
* (
*
* 1
1
x c x c y c y
c D A c D B c
y
y c y c x c x
c D B c D A
c
x
Đối với các trường hợp V
={A0 B1
,
2
, A1 B0
, A 1 B 1
, A 1 B 2
,
0
, A 2 B 1
, A 2 B 2
} cũng tính toán tương tự như trên để tìm điểm tiếp xúc Cuối cùng ta có bảng tổng hợp về toạ độ của tiếp điểm trong mọi trường hợp sau (bảng 2) Như vậy, quá trình phát hiện va chạm được thực hiện nhanh chóng, ở mức thứ nhất cho phép phát hiện nhanh các va chạm Việc phân chia các mức phát hiện va chạm như trên là rất hợp lý, dựa trên nhận xét là trong một hệ thống đồ hoạ 3D có rất nhiều đối tượng thì không phải lúc nào các đối tượng cũng va chạm nhau, thậm chí là số lần va chạm có thể rất thưa
Kỹ thuật phát hiện va chạm với các tượng
di chuyển
Giả sử hai đối tượng (mà ta coi như là các hình hộp) C0 và C1 chuyển động với gia tốc khác nhau Ta xây dựng một lớp hình hộp chứa các thông tin cần thiết về đối tượng như: toạ độ tâm hình hộp, 3 vector chỉ hướng, độ dài của 3 chiều hình hộp, gia tốc chuyển động, vận tốc chuyển động, trọng lượng hình hộp,…Những thông số này còn được gọi là các thông số trạng thái của đối tượng Khi đó các đối tượng chuyển động với các thông số riêng của nó Giả sử ở thời điểm t0 ta đã có các vector trạng thái của đối tượng, sang thời điểm t1 > t0 vector trạng thái mới của đối tượng có thể được tính toán bằng các phương pháp lấy tích phân số gần đúng Có hai phương pháp tính tích phân số hay được dùng
đó là phương pháp Euler và Runge–Kutta
Fourth 4 Phương pháp Euler đơn giản, sai số
lớn và chỉ cho độ chính xác tốt khi t = t1 - t0
lớn, ngược lại khi t bé thì phương pháp
Runge–Kutta Fourth 4 lại cho độ chính xác
cao hơn Sau đây chúng tôi sẽ trình bày
phương pháp lấy tích phân số Runge–Kutta Fourth 4, là phương pháp mà đã được sử
dụng trong ứng dụng của chúng tôi
x1 = - *Sign(c20)*a1
x2 = *Sign(c10)*a2
y1 = - *Sign(c02)*b1
y2 = *Sign(c01)*b2
a1+ *Sign(c20)*x1 0
a2- *Sign(c10)*x2 0
b2- *Sign(c01)*y2 0
b1+ *Sign(c02)*y1 0
a1+ *Sign(c20)*x1 = 0
a2- *Sign(c10)*x2 = 0
b2- *Sign(c01)*y2 = 0
b1+ *Sign(c02)*y1 = 0
Trang 7Bảng 2 Toạ độ của tiếp điểm trong các trường hợp
Gọi Sn là vector trạng thái của đối tượng ở
thời điểm tn, để tính vector trạng thái Sn+1 ở
thời điểm tiếp theo tn+1 bằng phương pháp
Runge–Kutta Fourth 4 như sau:
Đặt h = tn+1 - tn
Gọi F(Sn, tn) là đạo hàm của Sn ở thời điểm tn
Tính A1 = F(Sn, tn)
Tính A2 = F(Sn + h*A1/2, tn + h/2)
Tính A3 = F(Sn + h*A2/2, tn + h/2)
Tính A4 = F(Sn + h*A3, tn+ h/2)
Khi đó:
)
* 2
* 2 (
*
Sn n
Như vậy, sau khi tính toán được vector trạng
thái mới cho đối tượng, chúng ta sẽ cập nhật
được vị trí và hướng ở thời điểm mới Sau đó
sẽ làm lại thủ tục phát hiện va chạm cho các
đối tượng ở thời điểm mới này với các hộp bao mới cập nhật
ỨNG DỤNG VÀO BÀI TOÁN AN TOÀN GIAO THÔNG
An toàn giao thông là vấn cấp thiết của mỗi quốc gia, đặc biệt trong điều kiện Việt Nam với hệ thống giao thông còn chưa hoàn thiện,
ý thức của người dân khi tham gia giao thông còn yếu kém và bản thân vẫn chưa có các hệ thống giám sát và cảnh báo giao thông hiệu quả Thực tại ảo là một lĩnh vực nghiên cứu mới trong công nghệ thông tin và đã tỏ ra hiệu quả trên nhiều lĩnh vực Trong đó, lĩnh vực liên quan đến an toàn giao thông là một
ví dụ
Viện CNTT đã và đang nghiên cứu về thực tại
ảo và các ứng dụng của nó Việc ứng dụng công nghệ thực tại ảo vào an toàn giao thông
Trang 8là một trong những hướng nghiên cứu trọng
điểm Một trong những phương pháp hữu
hiệu để làm giảm thiểu tai nạn giao thông đó
là tuyên truyền, phổ biến và cảnh báo hậu quả
của tai nạn giao thông đến cho mỗi người để
nâng cao ý thức chấp hành luật lệ giao thông
Do đó, việc nghiên cứu các kỹ thuật va chạm
trong các hệ thống thực tại ảo nhằm ứng dụng
vào mô phỏng các tình huống giao thông
thường nhật để tuyên truyền, trợ giúp người
tham gia giao thông biết cách đi như thế nào
để an toàn nhất
Tại Việt Nam, việc tuyên truyền về an toàn
giao thông đã được quan tâm thông qua các
chương trình truyền hình: “Tôi yêu Việt
Nam”, “Dạy và học luật giao thông”… Tuy
nhiên, những chương trình này có nhược
điểm cố hữu đó là chúng được xây dựng bởi
những diễn viên thật cho nên nhiều khi người
xem thấy nó “không thật” bởi các lý do an
toàn khi đóng phim Do vậy, hiệu quả tuyên truyền không cao
Sử dụng công nghệ thực tại ảo kết hợp với các kết quả nghiên cứu va chạm ở trên, chúng
tôi xây dựng hệ thống “Giúp bạn đi an toàn
khi tham gia giao thông” để mô phỏng các
tính huống giao thông thường xảy ra trong thực tế Mỗi tính huống sẽ dạy cho bạn biết cách đi như thế nào để an toàn nhất khi bạn gặp tình huống tương tự
Hiện tại, chúng tôi đã xây dựng được một tình
huống đó là “Đỗ đúng phần đường quy định”,
một tình huống mà theo các báo cáo về tai nạn giao thông là thường xảy ra nhất
Một số cảnh của tình huống này được demo bên dưới
Hình 4 Các phương tiện giao thông Hình 5 Chiếc xe máy đỗ sai làn đường
Hình 6 Một chiếc xe tô không kịp phanh đã đâm
vào xe máy đỗ sai đường đó
Hình 7 Mở rộng mô phỏng với phương tiện ôtô
tham gia giao thông
Trang 9KẾT LUẬN
Va chạm là vấn đề không thể thiếu trong bất
kỳ một hệ thống thực tại ảo nào Do vậy, đã
có rất nhiều kết quả nghiên cứu về vấn đề này
và hầu như các nghiên cứu đó đều tập trung
vào các phương pháp phát hiện gần đúng va
chạm dựa vào các hình bao Bài báo này trình
bày một kỹ thuật phát hiện va chạm dựa trên
việc tính toán các hộp bao theo hướng
(Oriented Bounding Boxes -OBBs) Việc áp
dụng kỹ thuật phát hiện va chạm dựa vào các
hộp bao OBBs vào hệ thống “Giúp bạn đi an
toàn khi tham gia giao thông” cho thấy kỹ
thuật này đảm bảo các yêu cầu về tốc độ (tính
thời gian thực) và đặc biệt là độ chính xác
TÀI LIỆU THAM KHẢO
1 David Eberly, “Dynamic Collision Detection
using Oriented Bounding Boxes”, Geometric
Tools, Inc, 1999
2 Devid Eberly, “Dynamic Collision Detection using Oriented Bounding Boxes”,
http://www.geometrictools.com ,1999
3 Eugene Laptev, “Collision Detection - Fastcar”, Oxford Dynamics”, www.oxforddynamics.co.uk,
2002
4 Diego Ruspini, Oussama Khatib, “A Framework for Multi-Contact Multi-Body Dynamic Simulation and Haptic Display”, Proceedings of the 2000
IEEE/RSj International Conference on Intelligent Robots and Systems, 2000
5 Nick Bobic,”Advanced Collision Detection Techniques”, http://www.gamasutra.com, 2000
6 Russell Smith, “Open Dynamics Engine”,
http://www.ode.org, 2006
7 WANG Xiao-rong, WANG Meng, Li Chun-gui,
“Research on Collision Detection Algorithm Based
on AABB”, 2009 Fifth International Conference on
Natural Computation, pp 422-424, 2009
8 Hu Songhua, Yu Lizhen, “Optimization of Collision Detection Algorithm based on OBB”,
International Conference on Measuring Technology and Mechatronics Automation,
SUMMARY
THE COLLISION CALCULATION BASED ON OBBS TECHNIQUE APPLIED FOR A VIRTUAL REALITY SYSTEM SIMULATED TRAFFIC
Do Nang Toan, Nong Minh Ngoc *
Institute of Information Technology, Thai Nguyen University
Collision is an indispensable issue in any virtual reality (VR) system Therefore, the research on collision detection is a top target that the virtual reality system to pays attention This paper presents a collision detection technique based on the calculation of the oriented bounding box (OBB) and the improvement of it for collision detection
Its result has been applied to our system is "Helping you in safety traffic" - a virtual reality system
simulated traffic It can be helps human been know how to safely in traffic
Keywords: Collision Detection, OBBs, AABB, VR
Ngày nhận bài:08/5/2014; Ngày phản biện:20/5/2014; Ngày duyệt đăng: 09/6/2014
Phản biện khoa học: TS Vũ Vinh Quang – Trường Đại học Công nghệ Thông tin & Truyền thông - ĐHTN
*
Tel: 0968 595888