Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1
ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
Vũ Quang Hƣng
NGHIÊN CỨU MỘT SỐ VẤN ĐỀ VỀ ĐỘNG LỰC
HỌC CHẤT RẮN TRONG XỬ LÝ VA CHẠM
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Thái Nguyên – 2009
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
2
ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
VŨ QUANG HƢNG
NGHIÊN CỨU MỘT SỐ VẤN ĐỀ VỀ ĐỘNG LỰC
HỌC CHẤT RẮN TRONG XỬ LÝ VA CHẠM
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS. Đỗ Năng Toàn
Thái Nguyên – 2009
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3
LỜI CAM ĐOAN
Tôi xin cam đoan toàn bộ nội dung bản luận văn này là do tôi tự sưu tầm,
tra cứu và sắp xếp cho phù hợp với nội dung yêu cầu của đề tài.
Nội dung luận văn này chưa từng được công bố hay xuất bản dưới bất kỳ hình
thức nào và cũng không được sao chép từ bất kỳ một công trình nghiên
cứu nào.
Tất cả phần mã nguồn của chương trình đều do tôi tự thiết kế và xây dựng,
trong đó có sử dụng một số thư viện chuẩn và các thuật toán được các tác giả xuất
bản công khai và miễn phí trên mạng Internet.
Nếu sai tôi xin tôi xin hoàn toàn chịu trách nhiệm.
Thái Nguyên, ngày 10 tháng 11 năm 2009
Người cam đoan
Vũ Quang Hưng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
4
LỜI CẢM ƠN
Trong thời gian làm luận văn em đã gặp phải nhiều vấn đề phức tạp, khó xử lý
do đề tài mà em nghiên cứu là khá mới mẻ và đặc biệt lại rất mới mẻ ở Việt nam
nên lại càng gặp nhiều khó khăn hơn nhất là về vấn đề tài liệu.
Sau một thời gian nghiên cứu và tìm hiểu, giờ thì luận văn của em cũng đã
được hoàn thành lời đầu tiên em xin được trân thành cảm ơn sự giúp đỡ quí báu, sự
hướng dẫn nhiệt tình và sự chỉ bảo tận tụy của thày giáo 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à người
đã trực tiếp hướng dẫn em trong suốt thời gian làm luận văn này.
Cảm ơn các thày giáo, cô giáo, các anh, chị công tác tại Phòng VRLAB – Viện
Công nghệ thông tin, các thầy cô giáo công tác tại Khoa công nghệ thông tin –
ĐHTN, cùng tập thể các bạn học viên lớp cao học Khóa 6 đã luôn giúp đỡ và nhiệt
tình chia sẻ với em những kinh nghiệm học tập, nghiên cứu trong suốt khoá học.
Xin được cảm ơn Ban lãnh đạo Trường CĐCN Việt đức, cùng toàn thể các
bạn đồng nghiệp trong Khoa CNTT đã nhiệt tình tạo điều kiện giúp đỡ cả về thời
gian, vật chất và tinh thần để tôi hoàn thành được khóa học của mình.
Thái Nguyên, ngày 10 tháng 11 năm 2009
Học viên
Vũ Quang Hƣng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
i
MỤC LỤC
Trang
PHẦN MỞ ĐẦU
1
Chƣơng 1:
KHÁI QUÁT VỀ THỰC TẠI ẢO VÀ ĐỘNG LƢỢNG HỌC CHẤT RẮN
4
1.1. Khái quát về thực tại ảo (VR - Virtual Reality) 4
1.1.1. Thế nào là thực tại ảo? 4
1.1.2. Thực tại ảo và các đặc tính 5
1.1.3. Các thành phần chính trong thực tại ảo: 6
1.1.4 Ứng dụng của thực tại ảo và công cụ phát triển: 8
1.1.5. Công cụ phát triển ứng dụng thực tại ảo: 11
1.2. Động lượng vật rắn trong thực tại ảo: 13
1.2.1. Va chạm là gì? 13
1.2.2. Động lượng là gì? 15
1.2.3. Mối liên quan giữa động lượng và va chạm 15
Chương 2:
MỘT SÔ VẤN ĐỀ VỀ ĐỘNG LƢỢNG HỌC CHẤT RẮN
16
2.1. Tính toán va chạm 16
2.1.1. Kĩ thuật phát hiện va chạm dựa vào hộp bao AABB 17
2.1.1.1. Định nghĩa hộp bao AABB 17
2.1.1.2. Phát hiện va chạm giữa hai AABB 12
2.1.2. Kỹ thuật hộp bao theo hướng (Oriented Bounding Boxes) 18
2.1.2.1. Định nghĩa hộp bao theo hướng (OBB) 18
2.1.2.2. Kiểm tra nhanh va chạm giữa hai hộp bao OBBs 20
2.1.3. Tìm điểm va chạm 25
2.1.4. Phát hiện va chạm khi các đối tượng di chuyển 31
2.2. Xử lý va chạm 31
2.2.1. Động lực học vật rắn 32
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
ii
2.2.1.1. Mô ment quán tính ( Moment of Inertia) 32
2.2.1.2. Mô ment quay (Torque) 33
2.2.1.3. Mối liên hệ giữa mô ment quán tính và mô men quay 34
2.2.1.4. Vectơ trạng thái của đối tượng 34
2.2.1.5 Tính toán xung và lực ảnh hưởng 36
2.2.2. Xử lý các hiệu ứng về méo mó, biến dạng sau va chạm 38
2.2.2..1. Ý tưởng thuật toán 38
2.2.2.2. Hàm Open Uniform B-Splines 39
Chương 3:
ỨNG DỤNG THỬ NGHIỆM
40
3.1. Bài toán 40
3.2 Xây dựng hệ thống mô phỏng tình huống giao thông 40
3.3. Thực nghiệm 42
KẾT LUẬN
44
TÀI LIỆU THAM KHẢO
45
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
iii
DANH MỤC CÁC TỪ TIẾNG ANH VIẾT TẮT
VR Virtual Reality
AABB Axis-Aligned Bounding Boxes
OBB Oriented Bounding Boxes
3D 3 Dimensions
I Imagination, Interactive, Immersion
PC Persional Computer
CAD Computer Aided Design
CAM Computer Aided Manufacturing
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
iv
DANH MỤ C CÁ C BẢNG
Bảng 2.1 Bảng các giá trị R, R0, R1 được tính toán trước. 25
Bảng 2.2 Tính toán sẵn toạ độ của tiếp điểm trong mọi trường hợp 30
Bảng 2.3 Bảng các kí hiệu sử dụng khi xử lý hậu va chạm. 37
DANH MỤ C CÁ C HÌ NH VẼ
Hình 1.1 Sử dụng tay điều khiển và mũ chụp ảo 5
Hình 1.2 Mô phỏng nội thất 3D 6
Hình 1.3 Mắt kính dùng để xem phim 6
Hinh 1.4 Các trang phuc ảo, găng tay ảo, kính ảo 8
Hình 1.5 Các logo phim dùng 3D ảo 8
Hình 1.6 Hệ thống tập lái xe ảo 3D 9
Hình 1.7 Mô phỏng tim người 3D, 10
Hình 1.8. Sơ đồ động trình bày một hệ có va chạm đang xảy ra 13
Hình 1.9 Bóng va chạm với vợt, nắm đấm bị núm vào bao cát 14
Hình 2.1 Hộp bao AABB của đối tượng 17
Hình 2.2 Hộp bao OBB của đối tượng 19
Hình 2.3 Hình chiếu của P lên đường thẳng d 20
Hình 2.4 Chiếu 8 đỉnh của hình hộp lên trục cô lập d 21
Hình 2.5 Kết quả chiếu 2 hình hộp lên trục cô lập d 23
Hình 2.6 Tìm điểm va cham khi hai đối tượng tiếp xúc nhau 26
Hình 2.7 Mô ment quán tính của một số đối tượng có hình dạng cơ bản 33
Hình 2.8 Mô ment quay của đối tượng khi có lực tác dụng 34
Hình 3.1 Sơ đồ khối của hệ thống mô phỏng tình huống giao thông 40
Hình 3.2 Các thông tin về vụ va chạm 41
Hình 3.3. Quang cảnh tình huống giao thông 42
Hình 3.4. Chuyển động của các phương tiện qua ngã tư giao cắt 43
Hình 3.5. Va cạnh xảy ra giữa xe con 04 chỗ và xe tải đi ngược chiều 43
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1
PHẦN MỞ ĐẦU
Công nghệ thông tin đã, đang và sẽ tiếp tục trên đà phát triển mạnh mẽ của
mình, sự phát triển nhanh chóng ấy đã đem lại những thành tựu đáng kể cho nhiều
lĩnh vực như y tế (với các phần mềm quản lý bệnh viện, mô phỏng tim người, cơ thể
người, các mô cơ…), giao thông (các phần mềm trắc nghiệm thi lý thuyết lái xe,
phần mềm mô phỏng lái xe ảo, …), giáo dục (hệ thống các phần mềm quản lý, giáo
án, giáo trình điện tử, website đào tạo trực tuyến,….), quốc phòng…..
Đến nhứng năm gần đây, cũng trên đà phát triển ấy đã xuất hiện một mô hình
phát triển mới, mà phạm vi ứng dụng của nó còn rộng lớn hơn rất nhiều so với
trước. Nó dự báo một tương lai có nhiều tiềm năng, một cánh cửa rộng mở, đó
chính là công nghệ mô phỏng. Các vấn đề trước đây vốn rất khó có thể được trình
bày, được nói, hay diễn tả thì giờ đây nó đã trở nên dễ dàng hơn khi vấn đề đó được
diễn tả dưới dạng hình ảnh, trực quan, sinh động, chi tiết, dễ hiểu, dễ nắm bắt và
gần gũi, thân thiện với con người hơn, có tính thẩm mỹ cao.
Hãy tưởng tưởng một ai đó đang cố gắng dùng hết khả năng và kiến thức của
mình để diễn tả cho bạn về hình dạng, cấu tạo và hoạt động của quả tim. Cho dù anh
ta có hết sức cố gắng thì tin chắc rằng bạn cũng không thể nào mà hiểu tường tận về
vấn đề đó được. Nhưng chắc chắn với kỹ thuật mô phỏng một quả tim sẽ được tạo
ra, hiện ngay trước mắt bạn, bạn nhìn thấy nó, với những đặc điểm màu sắc đăc
trưng, các vòng cơ và từng nhịp đập theo đúng chu kỳ. Lúc này chắc chắn bạn sẽ
hiểu ngay bản chất của quả tim là như thế nào.
Quá trình “tái tạo” các hiện tượng, sự vật trong thế giới thực trên máy tính có
rất nhiều tác dụng. Trong giải trí, nó sẽ giúp chúng ta xây dựng được những trò
chơi sống động, gần gũi với con người tạo ra sức lôi cuốn mạnh mẽ. 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
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
2
công trình xây dựng đúng đắn. Trong giáo dục, những thí nghiệm, những ví dụ
đượ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.
Trên thế giới việc ứng dụng công nghệ mô phỏng (thực chất là công nghệ
thực tại ảo) vào các lĩnh vực đã được triển khai rộng rãi và cũng đã đạt được
nhiều thành quả. ở nước ta lĩnh vực này còn rất mới mẻ, nên những ứng dụng
của nó còn hạn chế, không đáng kể, nó mới được một số đơn vị đầu ngành quan
tâm, tìm hiểu và phát triển trong những năm gần đây và cũng đã đạt được những
thành công nhất định.
“Thực tại ảo” thực chất là mô phỏng thế giới thực của con người vào máy tính,
mà trong đó con người có thể tương tác và cảm nhận như trong thế giới thực. Một
trong những vấn đề tương đối phức tạp của việc mô phỏng đó là mô phỏng vật rắn,
trạng thái của chúng sau khi chịu sự tác động của ngoại lực, chúng sẽ biến đổi như
thế nào, ra làm sao, ..đó chính là va chạm:
Va chạm là một vấn đề khó và phức tạp để nghiên cứu, trên thực tế có rất
nhiều những vụ va chạm có thể do cố ý (như những vụ thử xe, kiểm tra mức độ an
toàn của các thiết bị…) hoặc không cố ý (như những vụ tai nan giao thông), nhưng
tất cả đều tạo ra những biến dạng, méo mó không mong muốn… và nhìn chung
chúng đều gây thiệt hại của cải vật chất hay để lại những hậu quả nghiêm trọng.
Giả sử một vụ tai nạn giao thông xảy ra và công an cần dựng lai vụ tai nạn đó,
như vậy họ cần phải có đầu vào là các phương tiện có tham gia trong vụ tai nạn, tiếp
theo họ phải tiến hành thử bằng cách cho các phương tiện đó va chạm với nhau ở
những cự ly, tốc độ, hướng,…. khác nhau và quá trình ấy có thể sẽ phải diễn ra
nhiều lần. Như vậy sẽ rất mất thời gian và tốn kém. Chi bằng nên giải quyết vấn đề
theo hướng khác, tức là thay thế các vụ thử thực tế đó bằng các phép thử trên phần
mềm máy tính với dữ liệu đầu vào lấy từ hiện trường và dữ liệu đầu vào có thể thay
đổi được (tương đương với dữ liệu cho các phép thử), ứng với những thay đổi của
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3
dữ liệu đầu vào sẽ cho những kết quả mô phỏng khác nhau. Nếu là như vậy mọi
chuyện sẽ trở nên đơn giản, tiện lợi, hiệu quả và mức độ tốn kém thì bằng min….
Cũng xuất phát từ những nhu cầu của thực tế như vậy và từ những thành quả
đầy hứa hẹn do thực tại ảo mang lại nên tôi đã quyết định lựa chọn đề tài: “Nghiên
cứu một số vấn đề về động lượng học chất rắn trong xử lý va chạm” để làm luận
văn tốt nghiệp.
Luận văn Phần mở đầu, Phần kết luận và 3 chương nội dung, cụ thể:
Chương 1: Khái quát về thực tại ảo và động lượng học chất rắn
Chương 2: Một số vấn đề về động lượng học chất rắn
Chương 3: Ứng dụng và thử nghiệm
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
4
Chương 1:
KHÁI QUÁT VỀ THỰC TẠI ẢO VÀ
ĐỘNG LƯỢNG HỌC CHẤT RẮN
1.1. Khái quát về thực tại ảo (VR - Virtual Reality)
Thực tại ảo có tiềm năng ứng dụng vô cùng to lớn trong đời sống xã hội của
con người và sự phát triển chung của thế giới.
1.1.1. Thế nào là thực tại ảo?
Thực tại ảo ra đời vào khoảng đầu thập kỷ 90 và phát triển tập trung tại các
nước phương tây (chủ yếu là Mỹ và Châu âu). Thực tại ảo được định nghĩa theo
nhiều cách khác nhau. Xét trên phương diện chức năng để đánh giá thì có thể hiểu :
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ức 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à khả
năng tương tác với thời gian thực (real-time interactivity). Thời gian thực ở đây
được hiểu 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.
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, đ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) [3],[5],[13].
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
5
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.1.2. Thực tại ảo và các đặc tính
- Khả năng đắm chìm (Immersion): 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 người sử dụng. 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ì mà ta 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 sự thành công. 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.
- Sự tương tác (Interactive): Có hai khía cạnh là sự điều hướng và động
lực học. Sự điều hướng (navigation) chỉ là khả năng của người dùng để di chuyển
Hình 1.1 Sử dụng tay điều khiển và mũ chụp ảo
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
6
khắp nơi một cách độc lập, người ta có thể thiết lập những áp đặt đối với việc truy
cập vào các khu vực ảo nhất định, cho phép có được nhiều mức độ tự do khác nhau
hay định vị điểm nhìn của người dùng, kiểm soát điểm nhìn, hoặc di chuyển trong
khắp thiết kế.
- Tính tưởng tượng (Imagination): 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.
1.1.3. Các thành phần chính trong thực tại ảo:
Một hệ thống trong thực tại ảo gồm có các thành phần chính sau [4]:
- Các ứng dụng (Nghiên cứu – Đào tạo – Thương mại)
- Mô hình, mô phỏng
Hình 1.3 Mắt kính dùng để xem phim
Hình 1.2 Mô phỏng nội thất 3D
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
7
- Phần cứng, phần mềm
- Mạng liên kết
- Người dùng
Ở đây chúng ta sẽ tập trung vào tìm hiểu phần cứng và phần mềm của VR
* Phần cứng:
+ Máy tính (PC hay Workstation với cấu hình đồ họa mạnh).
+ Các thiết bị đầu vào (Input devices): Bộ dò vị trí (position tracking) để xác
định vị trí quan sát. Bộ giao diện định vị (Navigation interfaces) để di chuyển vị trí
người sử dụng. Bộ giao diện cử chỉ (Gesture interfaces) như găng tay dữ liệu (data
glove) để người sử dụng có thể điều khiển đối tượng.
+ Các thiết bị đầu ra (Output devices): gồm hiển thị đồ họa (như màn hình,
HDM,..) để nhìn được đối tượng 3D nổi. Thiết bị âm thanh (loa) để nghe được âm
thanh vòm (như Hi-Fi, Surround,..). Bộ phản hồi cảm giác (Haptic feedback như
găng tay,..) để tạo xúc giác khi sờ, nắm đối tượng. Bộ phản hồi xung lực (Force
Feedback) để tạo lực tác động như khi đạp xe,...
* Phần mềm:
+ 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. Ta 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 2 công dụng
chính: Tạo hình và 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,3D max, ..). Sau đó phần mềm
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
8
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ể.
1.1.4. Ứng dụng của thực tại ảo và công cụ phát triển:
* Ứng dụng: Thực tại ảo có rất nhiều ứng dụng trong hầu như tất cả các lĩnh vực:
- Giải trí: Với sự phát triển của kỹ thuật và công nghệ mô phỏng người ta
đã có thể xây dựng các bộ phim hoạt hình 3D, mô phỏng hình dạng cây cối, đồ vật,
cử động của con người kết nối với các nhân vật ảo trong máy tính, tạo dựng các kỹ
xảo điện ảnh, các cảnh quay sống động, chân thật mà giảm bớt được rất nhiều thời
gian và tiền bạc.
Hình 1.5 Các logo phim dùng 3D ảo
Hinh 1.4 Các trang phuc ảo, găng tay ảo, kính ảo
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
9
- Giáo dục: Mô phỏng các thí nghiệm, các phản ứng hóa học. Xây dựng
các phần mềm mô phỏng như phần mềm tạp lái ôtô 3D, tạo cho người học có
được những cảm giác như khi lái xe thật, xử lý các tình huống thông thường, qua
đó sẽ học hỏi được các kinh nghiệm, tránh được các rủi do không mong muốn
khi đi xe thật.
- Y học: Việc tìm kiếm các mẫu, mô hình làm thí nghiệm (nhất là đối với
cơ thể người) là vấn đề khó khăn, do kinh phí dắt, hoặc do không có các bộ phận,
hoặc về vấn đề văn hóa dân tộc…nên việc lập các chương trình, phần mềm để mô
phỏng các bộ phận cơ thể người, các quá trình giải phẫu, các bệnh là một nhu cầu
rất cần thiết, nó không chỉ cung cấp thư viện thông tin dữ liệu cần thiết mà thông
qua đó cũng giúp cho không chỉ sinh viên, bác sĩ, mà ngay cả những người bệnh
nếu muốn cũng có thể tìm hiểu, vì vấn đề được trực quan hóa nên dễ hiểu và dễ
được nắm bắt.
-
Hình 1.6 Hệ thống tập lái xe ảo 3D
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
10
- Xây dựng: Người ta cũng có thể thiết kế các tòa nhà, các cao ốc, các khu
thể thao hay các khu du lịch sinh thái, hay trang bị cho bạn một hệ thống tiện nghi,
mời bạn đi thăm thú các nơi trong tòa nhà tương lai của mình, hay tính toán chi tiết
một công trình xây dựng, hoặc mô phỏng các sự cố, hiện tượng có thể xảy ra đối với
nhà của bạn trên máy tính. Đưa cho bạn những lựa chọn, hay những lời khuyên về
công trình của bạn.
- Quốc phòng: Để binh lính không bị xa lạ, bỡ ngỡ với chiến trận thì cần
phải thường xuyên có những lần tập trận, mà chi phí cho việc đó là rất cao. Nếu sử
dụng các mô hình thay thế, kèm theo âm thanh và tiếng động cũng có thể tạo ra
Hình 1.7 Mô phỏng tim người 3D
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
11
được một trận tập kích mà hiểu quả đạt được là như thật và chi phí thì rất ít. Bên
cạnh đó, để cho binh lính có thể tiếp xúc và hiểu biết về các máy móc và thiết bị đắt
tiền thì nên xây dựng các mô hình về thiết bị đó, máy móc đó như vậy sẽ đảm bảo
được tính phổ dụng rộng rãi.
Nhìn chung, với các ứng dụng đa dạng về nhu cầu thực tế công nghệ mô
phỏng đang ngày càng phát triển mạnh mẽ hơn thu hút sự quan tâm của mọi người
nhất là những ai quan tâm đến sự phát triển của công nghệ nói chung và công nghệ
tin học nói riêng. Hiện nay lĩnh vực này đã bắt đầu phát triển ở nước ta; nên việc
nghiên cứu và phát triển về vấn đề này sẽ đem lại nhiều kết quả hứa hẹn trong
tương lai.
1.1.5. Công cụ phát triển ứng dụng thực tại ảo:
- Các phần mềm xây dựng mô hình:
Phần quan trọng nhất trong các hệ thống thực tại ảo chính là mô hình, 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 độ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, ...
Hiện nay, 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.
Cũng như các phần mềm tạo mô hình ba chiều khác thì Maya và 3DS Max
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.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
12
Các đối tượng sau đó 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.
- Các công cụ lập trình:
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 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
Hình 1.7 Các khung nhìn khác nhau trong phần mềm Maya
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
13
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, ánh sáng (light)...Việc 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.
Trong 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ỉ: .
1.2. Động lượng vật rắn trong thực tại ảo:
1.2.1. Va chạm là gì?
Trong ngôn ngữ hàng ngày va chạm xảy ra khi một vật va vào một vật khác,
các vật va chạm có thể là những quả bi a, một cái búa và cái đinh, một quả bóng
chày và chày đập bóng, và quá trình thường xuyên nũa là giữa các ô tô…
Vậy, va chạm là một sự kiện riêng lẻ trong đó một lực tương đối mạnh tác
dụng vào từng vật, trong hai hoặc hơn hai vật va chạm, trong một thời gian tương
đối ngắn. Ngoài ra, có thể nêu sự rõ ràng giữa các thời gian trước, trong và sau va
chạm.
Trước Đang Sau
Hình 1.8. Sơ đồ động trình bày một hệ có va chạm đang xảy ra
Biên giới của hệ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
14
Đường biên của hệ, bao quanh các vật trong các hình ấy cho ta biết rằng
trong một va chạm lý tưởng, chỉ có các nội lực (giữa các vật) là có tác dụng.
Khi một cây vợt đập vào quả bóng thì lúc bắt đầu và lúc kết thúc thực sự va
chạm có thể xác định được chính xác thời gian tiếp xúc vợt – bóng (chừng 4ms) là
ngắn so với thời gian mà bóng bay tới vợt và từ vợt bay đi. Hình 1.9 cho thấy lực
tác dụng vào bóng là đủ lớn làm cho bóng bị biến dạng tạm thời. Trong va chạm
giữa nắm đấm và bao cát thì thời gian lâu và dài hơn, ta trông thấy rõ sự biến dạng
trên bao cát, và bằng cảm giác chồn của nắm tay và cánh tay dưới.
Định nghĩa chính thức của ta về va chạm không đòi hỏi sự phá vỡ không
chính thức của ta. Khi một trạm thám sát đến gần một hành tinh lớn, quay quanh nó
và rồi lại tiếp tục hành trình của nó với một tốc độ tăng thêm (cuộc chạm chán kiểu
ná cao su) thì đây cũng là một va chạm. Trạm thám sát và hành tinh không thực sự
“chạm vào nhau” nhưng, va chạm không đòi hỏi phải có tiếp xúc và một lực va
chạm không cần phải là một lực tiếp xúc, nó có thể đơn thuần là một lực hấp dẫn.
Trong vật lý có nhiều kiểu va chạm: như va chạm đàn hồi một chiều, va
chạm không đàn hồi một chiều (trong bài toán va chạm một chiều), va chạm hai
chiều.
Hình 1.9 Bóng va chạm với vợt Nắm đấm bị núm vào bao cát
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
15
1.2.2. Động lượng là gì?
Động lượng là một từ có nhiều nghĩa trong ngôn ngữ hàng ngày, nhưng chỉ
có một nghĩa chính xác trong vật lý, động lượng (p) là một vectơ và được xác định
bởi khối lượng (m) và vận tốc (v), thông thường người ta bỏ đi chữ tuyến tính và nó
được dùng để phân biệt với động lượng góc, do m là một đại lượng vô hướng,
dương nên p và v có cùng hướng.
1.2.3. Mối liên quan giữa động lượng và va chạm
Trên thực tế động lượng có ảnh hưởng trực tiếp tới chuyển động của vật, bởi lẽ
khi một vật chuyển động thì nó liên quan tới hai yếu tố đó là khối lượng và vận tốc
mà khối lượng và vận tốc lại chính là động lượng.
Một vật đang chuyển động, hay đứng yên khi xảy ra va chạm thì đều làm cho
động lượng của chúng thay đổi. Sự thay đổi này còn phụ thuộc vào khối lượng của
vật và các vật trong một hệ vật. Khi xảy ra va chạm thì độ biến thiên động lượng
của vật hoặc hệ vật lại phụ thuộc vào xung lượng của lực tác dụng, ca hai vectơ này
có cùng đơn vị và cùng thứ nguyên.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
16
Chương 2:
MỘT SÔ VẤN ĐỀ VỀ ĐỘNG LƯỢNG HỌC CHẤT RẮN
2.1. Tính toá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 trong lần 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, hoặc là hình cầu...
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
17
Đố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.
2.1.1. Kĩ thuật phát hiện va chạm dựa vào hộp bao AABB
2.1.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 (trục)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.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
] với giả
sử 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
: