ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LUẬN VĂN THẠC SĨ
ĐỀ TÀI
XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG 3D HƯỚNG DẪN
CÁC KỸ NĂNG XỬ LÝ THOÁT HIỂM KHI GẶP HỎA HOẠN TRONG CÁC TRƯỜNG HỌC
Giáo viên hướng dẫn : PGS TS. NGUYỄN VĂN HUÂN
Học viên
: Phùng Duy Linh
Lớp : Cao học K17
Thái Nguyên - 2020
i
LỜI CAM ĐOAN
Tôi - Phùng Duy Linh xin cam đoan những nội dung trình bày luận văn này là
kết quả tìm hiểu, nghiên cứu của bản thân dưới sự hướng dẫn của PGS TS. Nguyễn Văn
Huân và các nhà nghiên cứu đi trước. Nội dung tham khảo, kế thừa, phát triển từ các
công trình đã được công bố được trích dẫn, ghi rõ nguồn gốc. Kết quả mô phỏng, thí
nghiệm được lấy từ chương trình của bản thân.
Nếu có gì sai phạm tôi xin hoàn toàn chịu trách nhiệm.
Người cam đoan
Phùng Duy Linh
ii
LỜI CẢM ƠN
Trong quá trình thực hiện luận văn mặc dù gặp rất nhiều khó khăn nhưng tôi luôn
nhận được sự quan tâm, giúp đỡ từ thầy cô, đồng nghiệp bạn bè và người thân. Đây là
nguồn động lực giúp tôi hoàn thành luận văn này.
Tôi xin gửi lời chân thành cảm ơn tới PGS TS. Nguyễn Văn Huân đã tận tình
giúp đỡ, hướng dẫn và chỉ bảo trong quá trình thực hiện luận văn.
Tôi xin chân thành cảm ơn tới quý thầy, cô trường Đại học Công nghệ thông tin
và truyền thông - Đại học Thái Nguyên đã tận tình chỉ bảo, truyền đạt những kiến thức
qúy báu giúp tôi hoàn thành nhiệm vụ học tập trong suốt thời gian theo học tại trường.
Quý thầy cô đã giúp tôi có được những kiến thức quan trọng trong lĩnh vực Công nghệ
thông tin, là nền tảng vững chắc cho những nghiên cứu của bản thân trong thời gian tới.
Tôi xin cảm ơn anh em, đông nghiệp đã giúp đỡ, ủng hộ tinh thần trong thời gian
tôi tham gia học tập.
Cuối cùng, tôi xin cảm ơn tất cả những người đã luôn luôn quan tâm, sẻ chia và
động viên tôi.
Thái Nguyên, ngày tháng năm 2020
Phùng Duy Linh
iii
LỜI CAM ĐOAN .................................................................................................................. i
LỜI CẢM ƠN ....................................................................................................................... ii
MỤC LỤC ............................................................................................................................ iii
DANH MỤC HÌNH ẢNH ..................................................................................................... v
LỜI NÓI ĐẦU ....................................................................................................................... 1
CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ MÔ PHỎNG ............................................. 2
1.1. Khái quát về mô phỏng ................................................................................................... 2
1.1.1.Khái niệm mô phỏng ..................................................................................................... 2
1.1.2. Ưu điểm và nhược điểm của mô phỏng ....................................................................... 3
1.1.3. Xu hướng thực hiện mô phỏng ba chiều ...................................................................... 5
1.2. Các ứng dụng của công nghệ mô phỏng ......................................................................... 7
1.2.1. Kiến trúc và thiết bị công nghệ .................................................................................... 7
1.2.2. Giải trí .......................................................................................................................... 8
1.2.3. Giáo dục và Đào tạo ..................................................................................................... 9
1.2.4. Y học .......................................................................................................................... 10
1.3. Bài toán thoát hiểm và mô phỏng khói, lửa .................................................................. 11
1.3.1. Bài toán thoát hiểm khi xảy ra hỏa hoạn .................................................................... 11
1.3.2. Tổng quan về mô phỏng khói .................................................................................... 11
1.3.3. Tổng quan về mô phỏng lửa ....................................................................................... 12
CHƯƠNG 2: MỘT SỐ KỸ THUẬT ĐỒ HỌA ÁP DỤNG TRONG MÔ PHỎNG HỎA HOẠN ............................................................................................................................... 14
2.1. Kỹ thuật Particle trong mô phỏng khói, lửa .................................................................. 14
2.1.1. Particle trong mô phỏng khói .................................................................................... 16
2.1.2. Particle trong mô phỏng lửa ...................................................................................... 18
2.2. Kỹ thuật phát hiện và xử lý va chạm trong mô phỏng .................................................. 21
2.2.1. Các kỹ thuật va chạm ................................................................................................. 21
MỤC LỤC
iv
2.2.2. Kỹ thuật phát hiện va chạm dựa vào hộp bao AABB ................................................ 22
2.2.3. Kỹ thuật phát hiện va chạm dựa vào hộp bao OBB ................................................... 23
2.2.4. Kỹ thuật phát hiện va chạm dựa vào khối bao cầu .................................................... 24
2.2.5. Kỹ thuật phát hiện va chạm dựa vào hộp bao đa diện lồi .......................................... 27
2.3. Kỹ thuật xây dựng mô hình 3D ..................................................................................... 28
2.3.1.Phương pháp thiết kế đi từ tổng thể đến chi tiết ......................................................... 28
2.3.2. Phương pháp thiết kế đi từ chi tiết đến tổng thể ........................................................ 31
2.3.3. Phương pháp thiết kế phối hợp .................................................................................. 32
2.4. Kỹ thuật điều khiển nhân vật ........................................................................................ 34
2.4.1. Kỹ thuật điều khiển chuyển động theo đường Path ................................................... 34
2.4.2. Kỹ thuật tạo chuyển động Set Driver Key ................................................................. 35
2.4.3. Kỹ thuật tạo chuyển động KeyFrame......................................................................... 36
2.4.4. Kỹ thuật FK và IK điều khiển đối tượng có xương ................................................... 38
CHƯƠNG 3: THỰC NGHIỆM VÀ ỨNG DỤNG .............................................................. 40
3.1. Yêu cầu thực nghiệm, ứng dụng ................................................................................... 40
3.2. Phân tích, lựa chọn công cụ .......................................................................................... 41
3.3. Một số kết quả mô phỏng thực nghiệm ......................................................................... 41
3.3.1. Hình ảnh kiến trúc thư viện Đại học Hùng Vương .................................................... 41
3.3.2. Hình ảnh khói trong quá trình mô phỏng ................................................................... 42
3.3.3. Hình ảnh lửa trong quá trình mô phỏng ..................................................................... 43
3.3.4. Mô phỏng di chuyển, các tình huống khi sảy ra va chạm .......................................... 45
3.3.5. Một số hình ảnh mô phỏng tình huống trong chương trình ....................................... 46
3.3.6. Kết quả chương trình, đánh giá hiệu quả ................................................................... 48
KẾT LUẬN .......................................................................................................................... 50
TÀI LIỆU THAM KHẢO .................................................................................................... 51
v
DANH MỤC HÌNH ẢNH
Hình 1.1. Mô phỏng phẫu thuật ..................................................................................... 2
Hình 1.2. Mô phỏng đối tượng tĩnh ............................................................................... 6
Hình 1.3. Mô phỏng đối tượng động ............................................................................. 7
Hình 1.4. Ứng dụng trong mô phỏng kiến trúc ............................................................. 7
Hình 1.5.Mô phỏng lái xe trong giải trí ......................................................................... 9
Hình 1.6. Buồng lái mô phỏng máy bay ảo của Học viện Phòng Không-Không quân Việt Nam ...................................................................................................................... 9
Hình 1.7. Khói từ nhà máy điện hạt nhân Oi trước sự cố Fukushima. ........................ 12
Hình 1.8. Lửa trong bài toán mô phỏng cháy rừng ..................................................... 13
Hình 2.1.Star Trek II - 1982 ........................................................................................ 15
Hình 2.2. Quy trình thực hiện hệ Particle .................................................................... 16
Hình 2.3. Khói với các tham số cơ bản hệ Particle ..................................................... 16
Hình 2.4. Khói mô phỏng: (a)Tham số khuếch tán (b) Tham số môi trường….. ....... 17
Hình 2.5. Khói khi sử dụng mặt nạ ............................................................................. 17
Hình 2.6. Khói khi có vật cản và va chạm................................................................... 18
Hình 2.7. Cộng ảnh Alpha Channel vào ảnh để tạo mặt nạ ........................................ 18
Hình 2.8. Ảnh ngọn lửa được mô phỏng bởi hệ Particle ............................................. 20
Hình 2.9. Sự thay đổi hướng của vecto vận tốc .......................................................... 20
Hình 2.10. Hộp bao AABB ......................................................................................... 22
Hình 2.11. Xây dựng hộp bao AABB ......................................................................... 22
Hình 2.12. Hợp nhất và kiểm tra va chạm giữa AABB và OBB ................................ 23
Hình 2.13. Phát hiện va chạm giữa 2 hộp bao AABB ................................................. 23
Hình 2.14. Hợp nhất và kiểm tra va chạm giữa 2 khối bao cầu .................................. 25
Hình 2.15. Hai khối cầu xảy ra va chạm ..................................................................... 26
Hình 2.16. Hộp bao dạng đa diện lồi ........................................................................... 27
Hình 2.17. Minh họa một số hộp bao K-Dop .............................................................. 27
Hình 2.18. Độ phức tạp trong tính toán đối với các hộp bao ...................................... 28
Hình 2.19. Một số hình khối 3D cơ bản ...................................................................... 29
Hình 2.20. Công cụ Select and Move trong thiết kế ................................................... 30
vi
Hình 2.21. Chế độ Editable Poly ................................................................................. 31
Hình 2.22. Hai tấm plane chiếu đứng và cạnh (cách 1) .............................................. 32
Hình 2.23. Hai tấm plance chiếu đứng và cạnh (cách 2) ............................................. 32
Hình 2.24. Mô hình trường ĐH Hùng Vương góc 1 ................................................... 33
Hình 2.25. Mô hình trường ĐH Hùng Vương góc 2 ................................................... 33
Hình 2.26. Mô hình trường ĐH Hùng vương góc 3 .................................................... 34
Hình 2.27. Mô hình phòng học giảng đường trường ĐH Hùng vương ....................... 34
Hình 2.28. Đường Path trong điều khiển chuyển động đối tượng .............................. 35
Hình 2.29. Chuyển động nhận vật sử dụng keyframe ................................................. 37
Hình 3.1.Công trình xây dựng đã được mô hình hóa ba chiều.................................... 40
Hình 3.2. Hình ảnh kiến trúc trong thư viện ................................................................ 42
Hình 3.3. Hình ảnh khói tự nhiên và khói lấy từ chương trình mô phỏng .................. 42
Hình 3.4. Khói bay lên cao bao phủ bên trong thư viện .............................................. 43
Hình 3.5. Hình ảnh lửa tự nhiên và lửa lấy từ chương trình mô phỏng ..................... 44
Hình 3.6. Hình ảnh khu vực trong thư viện trước, sau khi xảy ra hỏa hoạn ............... 44
Hình 3.7. Hình ảnh khu vực trong thư viện khi xảy ra hỏa hoạn nhìn từ trên cao ...... 45
Hình 3.8. Các điểm va chạm Trigger tương ứng câu hỏi thoát hiểm .......................... 45
Hình 3.9. Hình ảnh đường Path và các điểm va chạm Trigger ................................... 46
Hình 3.10. Tình huống bên ngoài khu vực lan can khi bắt đầu xảy ra cháy ............... 46
Hình 3.11. Tình huống phát hiện đám cháy ngoài tầm kiểm soát ............................... 47
Hình 3.12. Thông báo khi lựa chọn sai trong các tình huống thoát hiểm ................... 47
Hình 3.13. Tình huống lựa chọn thang máy cho quá trình thoát hiểm ........................ 48
Hình 3.14. Thành công thoát hiểm .............................................................................. 48
1
LỜI NÓI ĐẦU
Ngày nay, mô phỏng đã ngày càng chứng tỏ vai trò quan trọng trong đời sống
cũng như trong khoa học, kỹ thuật. Mô phỏng hiện diện ở hầu như mọi lĩnh vực văn
hóa, kinh tế, chính trị, khoa học, đời sống v.v.. Sự phát triển nhanh chóng của phần cứng
đã giúp cho các phần mềm mô phỏng ngày càng đáp ứng được những đòi hỏi khắt khe của thực tiễn. Điều này làm cho những người trước đây vốn lưỡng lự bởi khả năng hạn
chế của mô phỏng trên máy tính cũng đã bị thuyết phục.
Bên cạnh đó, hậu quả của các cuộc hỏa hoạn là vô cùng to lớn, sau mỗi cuộc hỏa hoạn có thể làm cho thiệt hại nặng về tài sản, môi trường và kể cả tính mạng con người.
Với mong muốn xây dựng một chương trình mô phỏng để dạy các kỹ năng xử lý hỏa
hoạn ở các giảng đường cao tầng hay thư viện của các trường, luận văn đặt tìm hiểu các
kỹ thuật mô phỏng và từ đó xây dựng các tình huống hướng dẫn các thầy cô giáo, các em học sinh có thể xử lý một cách tốt nhất trong các trường hợp hỏa hoạn sảy ra đột
xuất.
Nội dung luận văn được chia làm 3 phần chính: Chương 1 trình bày tổng quan về
công nghệ mô phỏng, đồng thời trình bày bài toán mô phỏng hỏa hoạn cũng như những
ý nghĩa thực tiễn của bài toán này khi mô phỏng các tình huống thoát hiểm. Chương 2
là những nghiên cứu, phân tích về các kỹ thuật sử dụng trong mô phỏng khói lửa từ đó
áp dụng vào cài đặt và mô phỏng tình huống. Chương 3 là trình bày thực nghiệm và ứng
dụng của mô phỏng khói, lửa áp dụng trong việc xây dựng các tình huống thoát hiểm
khi gặp hỏa hoạn. Phần cuối cùng là kết luận và hướng phát triển tiếp theo của luận văn.
2
CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ MÔ PHỎNG
1.1. Khái quát về mô phỏng
Mô phỏng [1,3] được sử dụng để giảm thiểu rủi ro và chi phí khi tạo một hệ thống
mới hoặc thay đổi hệ thống đang có. Hơn thế nữa, còn nhiều hệ thống chỉ mới tồn tại trên lý thuyết, chưa hề được triển khai trong thế giới thực do thiếu các điều kiện cần thiết hoặc kinh phí quá lớn. Việc mô phỏng các hệ thống đó sẽ giúp cho các nhà khoa học hiểu rõ hơn bản chất của hệ thống trước khi đem vào áp dụng. Cuộc sống càng hiện
đại thì những yêu cầu về độ chính xác trong việc mô phỏng càng khắt khe hơn. Vì vậy,
những kĩ thuật mới trong mô phỏng trên máy tính trở nên quan trọng và cần phải nghiên
cứu để hiểu rõ nó.
1.1.1. Khái niệm mô phỏng
Mô phỏng là phỏng theo một hoạt động của một tiến trình thế giới thực hay một
hệ thống trong suốt thời gian nó tồn tại [3]. Mô phỏng được dùng để mô tả và phân tích
các hoạt động của một hệ thống, với mục tiêu là thể hiện giống nhất những gì đang xảy
trong thế giới thực. Mô phỏng trên máy tính là mô phỏng mà trong đó các mô hình được
tạo ra thông qua việc lập trình.
Việc mô phỏng trên máy tính bao gồm thiết kế một mô hình vật lý của hệ thống,
thực thi mô hình đó trên một máy tính và phân tích kết quả đầu ra. Từ đó, người ta phân
mô phỏng thành ba lĩnh vực nhỏ: thiết kế mô hình, thực thi mô hình và phân tích mô
hình.
Mô hình được định nghĩa là biểu diễn của một hệ thống thực. Một mô hình không nên quá phức tạp, mà chỉ cần đủ để trả lời những câu hỏi mà người ta đặt ra khi nghiên
cứu. Bởi vì một hệ thống thực luôn có rất nhiều ràng buộc và ảnh hưởng qua lại với
những hệ thống khác, việc mô phỏng toàn bộ tất cả các mối quan hệ này là hết sức khó
khăn mà nhiều khi không giúp ích gì cho việc nghiên cứu hệ thống.
Hình 1.1. Mô phỏng phẫu thuật
3
1.1.2. Ưu điểm và nhược điểm của mô phỏng
Sự cạnh tranh trong công nghệ máy tính làm cho các hãng sản xuất phần cứng
liên tục tạo ra các sản phẩm tốt hơn. Gần như các công ty đưa ra các sản phẩm mới với
nhiều tính năng, bộ nhớ, khả năng đồ họa và sức mạnh vi xử lý lớn hơn chỉ trong thời
gian ngắn. Điều này tạo hiệu ứng thúc đẩy sự phát triển của các ngành liên quan khác, đặc biệt là kỹ nghệ mô phỏng bằng phần mềm. Sự phát triển của phần cứng tỉ lệ thuận với sự phát triển của phần mềm.
Số lượng ngành nghề sử dụng mô phỏng như một công cụ hỗ trợ cho công việc
đang tăng lên một cách nhanh chóng. Các nhà quản lý đã nhận ra rất nhiều ưu điểm của
công nghệ mô phỏng trong việc tiết kiệm chi phí và nâng cao hiệu quả sản xuất.
Ưu điểm
Sử dụng mô phỏng mang lại rất nhiều ưu điểm trong việc đưa ra các quyết định về phương hướng sản xuất và phát triển. Trong đó, nổi bật nhất là những ưu điểm sau:
Cho phép thử nghiệm mà không phá vỡ hệ thống hiện tại:
Với một hệ thống đang tồn tại, một ý tưởng mới đang có ý định áp dụng vào có
thể rất khó, chi phí bỏ ra nhiều và thậm chí bất khả thi. Mô phỏng cho phép tạo ra một
mô hình và so sánh để đảm bảo rằng mô hình đó phản ánh đúng đắn hệ thống hiện tại.
Bất cứ một thay đổi nào muốn áp dụng vào hệ thống thực tế có thể được tiến hành trên
mô hình đó và kiểm tra tất cả các ảnh hưởng lên mô hình. Sau quá trình đánh giá đó
những thay đổi mới được áp dụng vào thực tế khi đã đảm bảo rằng sẽ không có một sai
sót nào đó xảy ra có thể phá vỡ hệ thống sẵn có.
Kiểm tra các lý thuyết trước khi cài đặt:
Mô phỏng trên trên máy tính cho phép các lý thuyết được kiểm tra trước khi cài
đặt, xây dựng một hệ thống mới. Phép kiểm tra này sẽ cho phép nhận ra được những kẽ hở trong thiết kế không được dự đoán trước. Từ kết quả kiểm tra này, người thiết kế có
thể khắc phục và cải tiến hệ thống trước khi nó được cài đặt. Cũng với những sai lầm này, nếu chỉ được phát hiện sau khi đã thiết lập xong hệ thống thì chi phí khắc phục sẽ tăng lên rất cao, thậm chí là không thể sử dụng được.
Nhận biết các vấn đề không được dự đoán trước:
Khi một hệ thống được mô phỏng trước khi cài đặt và làm việc theo đúng như tính toán thì mô hình thường được cải tiến để có thể mô phỏng chi tiết hơn lúc ban đầu.
Việc này có thể làm cho các vấn đề trong thiết kế bị bộc lộ ra. Khi lỗi thiết kế được sửa
thì chi phí cho việc sửa chữa hệ thống thực sau này sẽ được giảm thiểu. Thêm vào đó,
các tính năng của hệ thống cũng có thể được cải tiến.
Tìm hiểu hệ thống:
4
Một trong những ưu điểm quan trọng nhất của tiến trình mô phỏng là giúp chúng
ta nghiên cứu hệ thống để rút ra những hiểu biết về hệ thống đó. Tại thời điểm một dự
án mô phỏng mới được bắt đầu, đặc biệt là một dự án mô hình hóa một hệ thống phức
tạp thì các kiến thức về hệ thống thường phân tán vì mỗi chuyên gia đều có những kiến
thức riêng trong lĩnh vực của mình. Để phát triển mô hình của hệ thống thì các mảnh kiến thức rời rạc đó phải được thu thập lại để tạo thành một bức tranh tổng thể về hệ
thống. Quá trình tìm hiểu hệ thống thông qua mô hình, ngoài những kiến thức tổng hợp
từ người khác, ta có thể tìm hiểu sâu thêm về những hoạt động cũng như những tương tác của hệ thống với môi trường bên ngoài.
Nâng cao tốc độ phân tích:
Sau khi phát triển một mô hình, chúng ta có thể chạy hệ thống mô phỏng ở tốc
độ lớn hơn nhiều so với thế giới thực, do đó tiết kiệm rất nhiều thời gian. Một sự kiện có thể mất hàng năm trong thế giới thực có thể chỉ xảy ra vài phút trong mô hình. Việc
đưa ra kết quả rất nhanh sẽ đẩy nhanh quá trình phân tích rất nhiều.
Phát triển các khái niệm của hệ thống:
Nhằm tạo ra một mô hình có thể làm việc của một hệ thống thì mọi mặt của hệ
thống đó cần phải được tìm hiểu. Nếu một định nghĩa thiếu sót hay thậm chí là sai trong
hệ thống thì mô hình sẽ không hoạt động chính xác và mô hình đó không thể dùng làm
công cụ phân tích hệ thống. Vì thế, việc phát triển mô hình đồng nghĩa với việc các nhà
phân tích phải đưa ra đầy đủ các định nghĩa, tham số cho các hoạt động của nó. Nếu một
số định nghĩa không được xác định rõ ràng, độ an toàn của mô hình sẽ trở thành một
vấn đề lớn.
Thúc đẩy sáng tạo:
Có một mô hình sẽ giúp nâng cao tính sáng tạo của thiết kế. Ví dụ, một kĩ sư có
thể đưa ra hai giải pháp cho một vấn đề xảy ra. Một đảm bảo cho sự hoạt động của hệ
thống nhưng lại đắt. Giải pháp còn lại sử dụng phương pháp mới rẻ hơn nhưng lại tồn tại rủi ro. Thường thì người ta lựa chọn giải pháp an toàn hơn mà không dám lựa chọn cách làm mới. Điều này làm giảm tính sáng tạo trong công việc. Nhưng nếu có một mô hình mô phỏng thì giải pháp mới có thể được sử dụng để so sánh. Nếu như hệ thống vẫn hoạt động tốt và thực sự giảm chi phí thì người kĩ sư sẽ yên tâm lựa chọn phương pháp mới. Ngoài ra, các ý tưởng mới cũng có thể được đưa lên mô hình để kiểm tra mà không
sợ gặp rủi ro.
Tựu trung lại, các ưu điểm của mô phỏng đều có điểm chung là giảm rủi ro và
tiếp kiệm chi phí.
Nhược điểm
5
Tuy vậy, mô phỏng không phải là một phương pháp hoàn hảo đến mức có thể sử
dụng trong mọi trường hợp. Cụ thể còn tồn tại những nhược điểm như sau:
Khó khăn khi mô phỏng:
Việc tạo ra một hệ thống mô phỏng giống với thực tế đòi hỏi người làm chương
trình mô phỏng phải hiểu rõ cấu trúc, phương thức hoạt động, vận hành của hệ thống đó trên thực tế. Chỉ một yếu tố không được tính đến có thể dẫn tới sự đổ vỡ của chương
trình mô phỏng.
Kết quả đưa ra mang tính tương đối:
Nhược điểm này xuất phát từ chính khó khăn đầu tiên khi tiến hành mô phỏng.
Một hệ thống có thể là rất phức tạp, để hiểu rõ toàn bộ những hệ thống đó là điều khó
có thể khẳng định 100%. Bên cạnh đó có nhiều đối tượng mà con người không thể hiểu
biết hoàn toàn hoặc chưa được biết đến (một ví dụ điển hình là mô phỏng hố đen). Để khẳng định kết quả đưa ra là chính xác tuyệt đối, đơn giải là tiến hành thực nghiệm chứ
không phải mô phỏng, nhưng lúc đó chi phí sẽ là rất lớn.
Khó để xác thực:
Quá trình xác thực là nhằm đảm bảo mô hình được xây dựng phản ánh chính xác
hoạt động của hệ thống. Nếu như hệ thống chưa có thực thì việc kiểm tra này không thể
thực hiện được. Thậm chí với một hệ thống đã có thì việc xác định này cũng rất khó
khăn, vì thường thì một hệ thống có nhiều hoạt động và quan hệ phức tạp.
1.1.3. Xu hướng thực hiện mô phỏng ba chiều
Có nhiều xu hướng khác nhau nhằm tiếp cận và xây dựng một hệ thông mô
phỏng ba chiều. Tuy nhiên có thể nhắc tới hai xu hướng chính cụ thể như sau:
Cách thứ nhất: thể hiện các mô hình 3D nhờ các ngôn ngữ lập trình truyền thống
như C, C++ v.v.. Cách này không đòi hỏi sự chạy đua về công nghệ cũng như cấu hình
mạnh của phần cứng, hơn nữa nó có thể thực hiện các mô phỏng phức tạp đòi hỏi sự
chính xác cao. Tuy nhiên nó không được nhiều người sử dụng vì đó không phải là công việc đơn giản, nó đòi hỏi trình độ lập trình cao, các thuật toán phức tạp, mất nhiều thời gian và nhất là rất khó trong việc tạo ra những cảnh rộng lớn. Mặc dù ít được ưa thích nhưng đôi khi nó lại là lựa chọn cho những ai muốn mô phỏng chính xác các hiện tượng thiên nhiên đúng với bản chất của nó. Tuy nhiên nó chỉ phù hợp với những mô phỏng có quy mô nhỏ, phù hợp với việc học tập.
Cách thứ hai: sử dụng các công cụ mô phỏng đã được xây dựng sẵn. Cách này
không đòi hỏi trình độ lập trình cao, không tốn nhiều thời gian thực hiện, nó phù hợp
với các mô phỏng có tính chất mô hình không yêu cầu độ chính xác cao. Một nhược
điểm là nó yêu cầu cấu hình hệ thống mạnh để cài đặt và chạy chương trình, nhất là khi
6
kết xuất (Rendering).Tuy nhiên, hiện nay cách này đang rất phổ biến, rất được ưa
chuộng, nhất là trong các công việc làm Game 3D, Web3D, Phim 3Dv.v.. Một số bộ
công cụ mô phỏng thông dụng là: 3DsMax, Maya, Autocad, Painter3D, VirtualML,
Softimage, Renderman, Houdili, Lightware, Flash.v.v..
Trạng thái đối tượng mô phỏng có 2 dạng chính: mô phỏng tĩnh và mô
phỏng động.
Mô phỏng tĩnh: Là dạng mô phỏng chỉ thể hiện được mô hình tĩnh, trong kết quả mô phỏng không có sự chuyển động, không có sự biến đổi. Đây là dạng mô phỏng thường chỉ áp dụng cho các vật tĩnh. Đây là dạng mô phỏng đơn giản nhất.
Hình 1.2. Mô phỏng đối tượng tĩnh
Mô phỏng động: mô phỏng động được tách thành hai loại, đó là mô phỏng động theo
thời gian thực và mô phỏng động không theo thời gian thực:
Mô phỏng động theo thời gian thực: là dạng mô phỏng đối tượng có sự chuyển
động hoặc có tính chất thay đổi theo thời gian, không gian, và khi có tương tác thì hệ
phải đáp ứng sự kiện đó trong một khoảng thời gian nhất định (quá thời gian đó thì kết quả không còn có ý nghĩa). Đây là dạng mô phỏng phức tạp nhất, khó khăn nhất. Nhưng đó lại là một đặc tính của thực tại ảo và mang tính ứng dụng cao, hiệu có nhiều chương trình mô phỏng thời gian thực được áp dụng trong thực tế.
Mô phỏng động không theo thời gian thực: Đây là dạng mô phỏng không quan
tâm tới thời gian đáp ứng của yêu cầu. Nó phù hợp cho xây dựng các hệ mô phỏng không
có sự tương tác nhiều, không cần đáp ứng thời gian.
7
Hình 1.3. Mô phỏng đối tượng động
Để thực hiện mô phỏng sự vật ta lại có hai phương pháp chính: Phương pháp giả
mô phỏng và phương pháp mô phỏng thật.
Phương pháp giả mô phỏng là ta dùng các kỹ thuật xử lý ảnh để tạo ra những đối
tượng và những hiệu ứng giả đánh lừa mắt nhìn của con người. Ví dụ, như biến đổi ảnh không gian 2D thành hình ảnh của vật như trong không gian 3D, hay các phương pháp
sử dụng mặt nạ.
Phương pháp mô phỏng thật là dùng các kỹ thuật tạo đối tượng và hiệu ứng dựa
trên cơ sở khoa học là các thuật toán biểu diễn tính chất vật lý của đối tượng và các hàm
biến đổi để thể hiện đối tượng một cách chính xác.
1.2. Các ứng dụng của công nghệ mô phỏng
Hiện nay, công nghệ mô phỏng vẫn là lĩnh vực công nghệ nhiều tiềm năng xét về
khía cạnh ứng dụng. Một số lĩnh vực ứng dụng chính có khuynh hướng phát triển mạnh mẽ trong thời gian gần đây có thể nhắc tới như sau:
1.2.1. Kiến trúc và thiết bị công nghệ
Hình 1.4. Ứng dụng trong mô phỏng kiến trúc
8
Một trong những lĩnh vực ứng dụng tiêu biểu nhất của là thiết kế kiến trúc. Khả
năng mô hình hoá thế giới dường như đáp ứng một cách tự nhiên mục tiêu của ngành
thiết kế kiến trúc: đưa ra mô hình trực quan nhất có thể về hình ảnh công trình mong
muốn trong tương lai.
Việc xây dựng các mô hình không gian kiến trúc bằng hình ảnh lập thể với đầy đủ mô tả trực quan về các hình khối kiến trúc của một căn nhà, cách bố trí nội thất bên
trong, thậm chí hoa văn cửa sổ hay màu sơn của tường, cùng với khả năng cho phép
khách hàng tự do tham quan, khảo sát căn nhà của họ trong tương lai theo nhiều góc độ và vị trí, từ phòng này sang phòng khác thực sự đem lại hiệu quả trực quan mang tính
cách mạng trong lĩnh vực mang nhiều đặc điểm nghệ thuật này.
Tương tự như trong kiến trúc, với các ngành sản xuất thiết bị mà trong đó công
đoạn thiết kế đóng vai trò quan trọng như thiết kế động cơ, thiết kế ô tô, tàu biển, hay thậm chí tàu vũ trụ, hình dạng và cách bố trí các chi tiết không chỉ đơn thuần mang tính
thẩm mỹ, tính kỹ thuật mà đôi khi còn ảnh hưởng tới sức sống của thiết bị xét về khía
cạnh thương mại. Khả năng mô hình hoá bằng hình ảnh lập thể của công nghệ cho phép
người thiết kế thể hiện được một cách trực quan nhất ý tưởng thiết kế của mình, đánh
giá cơ bản về hiệu năng của thiết bị dựa trên những thử nghiệm mô phỏng trên thiết bị
ảo, từ đó có những hiệu chỉnh cần thiết trước khi thiết bị thực sự được sản xuất. Điều
này rõ ràng góp phần không nhỏ trong thành công của thiết bị công nghệ, giảm bớt
những chi phí phát sinh, và đây cũng là một ưu điểm điển hình của công nghệ mô phỏng.
1.2.2. Giải trí
Thị trường giải trí cũng là một ứng dụng tiêu biểu khác của công nghệ mô phỏng
với một loạt các trò chơi mô phỏng. Trên thực tế, đây là lĩnh vực ứng dụng lớn nhất xét
theo khía cạnh lợi ích về tài chính. Rất nhiều công ty đang sản xuất ra các trò chơi có sử
dụng các nguyên lý thế giới thực. Số lượng người bị cuốn hút theo các trò chơi như vậy,
đặc biệt là giới trẻ, tăng theo cấp số nhân đánh dấu tiềm năng thương mại to lớn của công nghệ mô phỏng và thực tại ảo trong lĩnh vực này.
Những thiết bị phần cứng khác như Găng tay dữ liệu (DataGloves) và Thiết bị hiển thị đội đầu (Head Mounted Displays-HMD) cũng chịu ảnh hưởng phần nào của công nghiệp giải trí. Tóm lại, các ứng dụng mô phỏng và thực tại ảo trong giải trí đã và đang đóng một vai trò vừa là mục tiều vừa là động lực cho công nghiệp Thực tại ảo.
9
Hình 1.5. Mô phỏng lái xe trong giải trí
1.2.3. Giáo dục và Đào tạo
Đào tạo là một lĩnh vực điển hình của công nghệ mô phỏng. Phát triển trên nền công nghệ và kỹ thuật cao, tích hợp những đặc tính làm cho bản thân nó có những tiềm
năng vượt trội so với các công nghệ giáo dục truyền thống khác: cho người sử dụng cảm
nhận sự hiện diện của mình trong môi trường do máy tính tạo ra bằng khả năng tương
tác, tự trị của người dùng trong môi trường ảo, cũng như bằng những phản hồi tức thời, trực quan từ phía môi trường ảo tới các giác quan của người sử dụng. Hơn thế nữa, công
nghệ cho phép mô phỏng những môi trường nguy hiểm hay tốn kém như buồng lái máy
bay, phòng thí nghiệm hoá chất, hay nhưng bài học về thoát hiểm v.v..
Hình 1.6. Buồng lái mô phỏng máy bay ảo của Học viện Phòng Không - Không quân Việt Nam
Tất cả những đặc tính này khiến công nghệ mô phỏng trở nên rất phù hợp cho các ứng dụng có tính chất giáo dục hay đào tạo. Các vật thể trong thế giới ảo được biểu diễn chính xác hơn nhiều so với các đối tượng phẳng (hình ảnh hai chiều) do được bổ sung thêm chiều sâu. Kết quả là các trình diễn minh hoạ hay những thí nghiệm cũng
được mô phỏng chính xác hơn do có thể quan sát từ nhiều góc độ khác nhau về mặt không gian, điều mà thế giới phẳng hai chiều không làm được.
10
Tính chất trực quan của bài giảng được nâng cao một bước làm tăng sự hứng thú
trong học tập cũng như khả năng ghi nhớ các khái niệm quan trọng trong bài giảng. Xét
về mặt này, khả năng tương tác với môi trường ảo là một khía cạnh đáng lưu ý. Trong
các phòng thí nghiệm hay huấn luyện ảo, thực hiện các thao tác trên các đối tượng trong
môi trường ảo, nhận được những phản hồi kịp thời và có nghĩa từ các vật thể và môi trường là một trong những yếu tố tiên quyết khiến cho học viên có cảm nhận đang được
trải nghiệm trong những tình huống thực. Từ đó, học viên nắm bắt được nhanh chóng
và có ý thức hơn với những tính huống được học. Và cũng không phải là viễn tưởng khi ta có thể nói rằng một ngày nào đó bài học của học sinh sẽ là những kỹ năng sống được
đào tạo trong môi trường ảo.
1.2.4. Y học
Y học là một trong những lĩnh vực ứng dụng tiềm năng trong công nghệ mô phỏng và thực tại ảo. Cho đến nay, lĩnh vực nổi bật trong y học áp dụng thành công công
nghệ mô phỏng là giả lập giải phẫu.
Trên cơ sở các kỹ thuật đồ hoạ máy tính và mô phỏng, hệ thống đào tạo y học
này bao gồm hai bộ phận cơ bản: Khối tương tác ba chiều là mô hình sinh thể ảo cho
phép người sử dụng thực hiện các thao tác giải phẫu thông qua các dụng cụ giải phẫu
ảo; Khối giao diện người dùng hai chiều cung cấp những thông tin phản hồi trực quan
từ mô hình trong quá trình giải phẫu cũng như những thông tin hướng dẫn trong phiên
đào tạo.
Phương pháp đào tạo có tính tương tác cao này mang nhiều ưu điểm so với các
phương pháp truyền thống như thực hành trên mô hình plastic hay trên bệnh nhân thực.
Thứ nhất, khác với phương pháp dùng mô hình plastic, sinh thể giải phẫu ảo có khả năng
cung cấp những thông tin phản hồi sinh học một cách tự nhiên như một sinh thể sống
thực, chẳng hạn như sự thay đổi về nhịp tim, huyết áp v.v. Điều này tạo cho học viên có
cảm giác đang trải qua một ca mổ trong một tình huống thực. Thứ hai, khác với thực hành trên bệnh nhân thật, những sai lầm của học viên trong quá trình thực tập không phải trả giá bằng những thương tổn thực trên cơ thể người bệnh. Điều này cũng làm giảm áp lực lên học viên khi thực hiện phẫu thuật ảo. Từ đó, giúp họ tự tin và chủ động hơn trong học tập. Phương pháp này còn cho phép các bác sĩ không ngừng nâng cao trình độ tay nghề, kỹ năng phối hợp làm việc bằng cách liên tục đặt ra những giả định tình huống bệnh, cập nhật những dữ liệu bệnh lý mới để thực hiện những phương pháp
mới, kỹ thuật mới trong điều trị. Bác sĩ cũng có thể tự lập kế hoạch mổ thử trên bệnh nhân ảo trước khi mổ trên bệnh nhân thật do đó làm tăng mức độ an toàn và hiệu quả điều trị, giảm thiểu sai lầm rủi ro đáng tiếc xảy ra.
11
1.3. Bài toán thoát hiểm và mô phỏng khói, lửa
1.3.1. Bài toán thoát hiểm khi xảy ra hỏa hoạn
Thoát hiểm là một tập kỹ năng và tri thức cần thiết phải trang bị cho tất cả mọi
người. Ngày ngay các kỹ năng thoát hiểm được quan tâm nhiều và thường xuyên được quan tâm giáo dục và đào tạo, đặc biệt là dành cho các đối tượng trẻ nhỏ và học sinh.
Trong thời gian gần đây thường xuyên xảy ra các đám cháy gây thiệt hại nhiều
về người và tài sản. Trong đó ảnh hưởng lớn tới tính mạng con người không phải do ngọn lửa mà nguyên nhân chủ yếu lại tới từ khói.
Theo cục an toàn lao động: nguyên nhân nghẹt thở vì khói là nguyên nhân dẫn
đến tử vong cao hơn, nhanh hơn bị phỏng và cháy. Vì vậy hãy di tản nhanh chóng ra khỏi khu vực nhiễm khói càng nhanh càng tốt.
Một nghiên cứu ở Hoa Kỳ (http://songkhoe.vn) cho biết: tổn thương do hít khói
là nguyên nhân gây tử vong của trên 50% trường hợp bị bỏng, cao hơn nhiều so với tỷ
lệ tử vong 10% không có thương tổn do hít khói. Trong 75.000 nạn nhân bị bỏng nặng,
30% phải điều trị vì ngộ độc khói và những tổn thương do hít khói. Hít phải khí CO gây
tử vong 75% trường hợp do hỏa hoạn, nhất là trong một không gian kín.
Theo báo sức khỏe gia đình (http://suckhoegiadinh.org): Do tác dụng của các chất
trong không khí nóng: khói nóng gây tổn thương nặng hơn so với không khí nóng; hơi
nước nóng thường gây bỏng nặng hơn không khí nóng vì gây bỏng toàn bộ đường hô
hấp, trong đó tổn thương nặng nhất là ở đường hô hấp. Thời gian nạn nhân tiếp xúc với
nguồn nhiệt càng lâu thì bỏng càng nặng. Ngoài ra, khí thải động cơ ôtô, xe máy, máy
phát điện, khí ga, khói than, củi cháy dở v.v. cũng là nguyên nhân gây bỏng và ngộ độc
rất nặng dễ dẫn đến tử vong.
Vì những nguyên nhân cấp thiết và sự nguy hiểm lớn của khói đến tính mạng
con người, khi tiến hành xây dựng các công trình nhà ở, phòng ốc cần tính đến trường
hợp khi xảy ra hỏa hoạn. Trong nội dung luận văn kế thừa các kết quả thu được từ việc nghiên cứu các kỹ thuật tạo hiệu ứng khói, lửa mô phỏng lại một số tình huống xảy ra hỏa hoạn và các xử lý tương ứng với mục tiêu hướng dẫn thoát hiểm và bảo vệ tính
mạng cho con người trong trường hợp hỏa hoạn.
1.3.2. Tổng quan về mô phỏng khói
Khói là một đối tượng rất quen thuộc trong đời sống sinh hoạt thường ngày của
con người. Chúng ta biết đến khói khi nhóm lò, đun bếp hay đơn giản chỉ là đốt một vật
nào đó (một que diêm, một điếu thuốc v.v.). Ngày nay với sự phát triển của xã hội ta
nhìn thấy khói nhiều hơn khi ra đường, tại những khu công nghiệp hay khi nhìn lên màn
12
hình tivi trong những bộ phim đầy khói lửa, trong những trò chơi trên máy tính, thiết bị
di động v.v.
Dựa trên mặt vật lý chúng ta có thể định nghĩa khói như sau: Khói là một loại
chất ở trạng thái khí sinh ra khi vật chất bị cháy. Nó do ba loại chất ở thể khí, thể lỏng,
thể rắn hỗn hợp tạo nên. Nếu thiếu đi chất ở thể rắn thì chủng loại của khói ít nhiều cũng khác đi, nhưng chất hỗn hợp đó lại có một đặc điểm chung đó là trong chất hỗn hợp có
nhiệt lượng.
Vì rằng trong khói có giữ một nhiệt lượng nhất định, cho nên nó trở thành rất nhẹ và bay lên cao. Theo đà tăng lên của độ cao bốc lên, đường kính của đám khói sẽ mở
rộng. Tuy nhiên nhiệt lượng giảm dần vì thế càng bay lên cao, tốc độ bay lên của nó
càng chậm lại. Vì trong khói có chứa chất rắn ở dạng bột nên thường ngày chúng ta nhìn
thấy khói có loại màu đen, có loại màu vàng, màu trắng v.v.
Hình 1.9. Khói từ nhà máy điện hạt nhân Oi trước sự cố Fukushima.
Bài toán mô phỏng khói: thuộc lớp các bài toán mô phỏng, với mục đích tái tạo ra hình ảnh, phương thức hoạt động, tương tác của đối tượng khói trên máy tính. Từ đó
tạo ra hình ảnh về khói và các thí nghiệm tương tác với đối tượng này trên máy tính
giống với thực tế. Với bài toán mô phỏng khói có hai nhóm đầu vào: Thứ nhất là nhóm các đầu vào là thuộc tính nội thể của đối tượng khói, thứ hai là nhóm các yếu tố ảnh hưởng của môi trường tới đối tượng khói cần mô phỏng.
1.3.3. Tổng quan về mô phỏng lửa
Lửa có thể được xem xét từ nhiều khía cạnh. Nó là một nguồn bức xạ, một hỗn
hợp khí hoạt động theo các qui luật của cơ chế khí động học, hay một vật chất trong suốt điều biến ánh sáng. Tuy nhiên, khi mô phỏng ngọn lửa chúng ta chỉ tập trung vào mô
hình hình ảnh của lửa, bởi vì mục tiêu chính của chúng ta là xây dựng mô hình trực quan
của ngọn lửa. Các thuộc tính vật lý của nó có thể được xác định bằng phương thức quang
13
học dựa vào mô hình đó. Phần lớn các mô hình đặc tả ngọn lửa như một vật chất phát ra
ánh sáng và có tính trong suốt cao và mặc nhận nó là môi trường không tán xạ. Khi
không có khói hay độ ẩm thì giả định này là có thể chấp nhận được.
Thể hiện ngọn lửa trong đồ họa vi tính cần tạo ra một cảm giác trực quan đúng
đắn về tính động của lửa. Hiện tại có rất nhiều mô hình được sử dụng để mô phỏng ngọn lửa. Trong các mô hình cháy vẫn đang khá sơ sài ở thời điểm hiện tại, các tia lửa được
mô phỏng khá thuyết phục bằng cách sử dụng mô hình đơn giản của cơ chế đốt cháy
hỗn hợp khí - nhiên liệu cũng như bằng các mô hình thủ tục phức tạp hơn.
Tiến trình thể hiện ngọn lửa là vấn đề then chốt của mô phỏng lửa. Trong một thể
hiện ba chiều của ngọn lửa, các hình ảnh có thể được tạo ra rất nhanh bằng các kĩ thuật
đồ họa cho ta cảm giác thực sự về một ngọn lửa. Để có kết quả tốt hơn, người ta có thể
sử dụng các kĩ thuật như ánh xạ photon coi ngọn lửa như là các nguồn sáng hạt thật sự. Các hiệu ứng tâm lý như sự điều chỉnh của mắt người khi thay đổi độ sáng của ngọn lửa
cũng được sử dụng.
Để thể hiện ngọn lửa, ta có thể sử dụng những kĩ thuật đơn giản như phép chiếu
thẳng và phép theo vết tia sáng. Chúng ta cũng có thể sử dụng các mô hình thể hiện ngọn
lửa dựa trên hình ảnh để tận dụng các thông tin ở các hình ảnh sử dụng. Phương hướng
trong tương lai là ứng dụng các phân tích chuẩn về các tính chất của ngọn lửa như tính
mờ để đề ra các phương thức mới, mở rộng các phương thức mô phỏng để có thể thể
hiện được các thuộc tính vật lý khác của ngọn lửa và thiết kế phương thức để đánh giá
một cách khách quan và đáng tin cậy các thuộc tính này [4].
Hình 1.8. Lửa trong bài toán mô phỏng cháy rừng
14
CHƯƠNG 2: MỘT SỐ KỸ THUẬT ĐỒ HỌA ÁP DỤNG
Với mục tiêu đề ra của luận văn hướng tới mô phỏng hỏa hoạn trong trường học, từ đó xây dựng một số các tình huống hướng dẫn thoát hiểm đòi hỏi các nghiên cứu về
TRONG MÔ PHỎNG HỎA HOẠN
hiệu ứng khói, lửa, các kỹ thuật va chạm, điều khiển nhân vật và mô hình hóa ba chiều.
Trong đó, các kỹ thuật xây dựng hiệu ứng khói lửa ứng dụng trong quá trình mô phỏng
lửa và khói sinh ra trong hỏa hoạn, các kỹ thuật va chạm giúp điều khiển, tương tác giữa
đổi tượng ảo và các mô hình ba chiều xung quanh, đồng thời xác định va chạm giúp quá
trình thiết đặt tình huống khi mà đối tượng ở trong các vị trí khác nhau tồn tại các tình
huống khác nhau. Các kỹ thuật điều khiển nhân vật cho phép mô phỏng lại các hoạt
động đi lại, bò của người tham gia khi thực hiện thoát hiếm. Cuối cùng quá trình mô
hình hóa cho phép mô hình ba chiều không gian và các vật dụng cần mô phỏng. Chương 2 của luận văn sẽ trình bày chi tiết các kỹ thuật này áp dụng trong mô phỏng hỏa hoạn.
2.1. Kỹ thuật Particle trong mô phỏng khói, lửa
Particle [5] là một kỹ thuật mô phỏng điển hình được áp dụng rộng rãi trong các
bài toán mô phỏng vật chất khí, lỏng. Khối khí, chất lỏng với bản chất là tập các phân
tử có liên kết lỏng với nhau, do đó bề mặt, kích thước, hình dạng của các đối tượng này
thường xuyên thay đổi và rất khó để tính toán, dự đoán một cách chính xác. Những thay
đổi này có thể được mô tả bởi phương trình toán học rất phức tạp. Particle là một trong
những phương pháp đặc biệt được dùng để mô phỏng các đối tượng kiểu này, với ý
tưởng mô phỏng các đối tượng khí, lỏng bởi chính các hạt tạo ra chúng. Đây là phương
pháp mô phỏng gần nhất với bản chất vật lý của đối tượng khói do vậy trong luận văn
được lựa chọn làm nền tảng cơ sở cho quá trình mô phỏng khói.
Một hệ thống Particle [5] là một tập các thành phần hay các hạt (Particle) riêng biệt. Hệ thống Particle điều khiển tập các Particle, cho phép chúng hoạt động một cách tự động nhưng với một số thuộc tính chung nhất định.
Trong thực tại ảo một đối tượng được mô phỏng bởi một hệ Particle mang nhiều
đặc điểm khác với các đối tượng 3D bình thường.
Một đối tượng 3D bình thường được tạo lên bởi một tập các điểm có quan hệ với nhau, từ đó tạo ra một tập các mặt. Trong quá trình vẽ đối tượng cần phải tính
toán tập các mặt này. Tuy nhiên một hệ Particle tạo bởi một tập các phần tử do đó quá trình xử lý, vẽ cũng hoàn toàn khác.
15
Hệ Particle không phải là thực thể tĩnh mà chuyển động và thay đổi hình dạng theo thời gian. Các Particle liên tục "chết đi" và các Particle mới được "sinh ra" trong
hệ thống. Một đối tượng được biểu diễn bằng hệ Particle không được xác định hoàn toàn, cả về đường nét lẫn hình dạng. Thay vào đó, nó được xác định bằng các tiến trình với nhiều tham số ngẫu nhiên. Vì thế lần mô phỏng đầu tiên có thể khác lần mô phỏng
thứ hai về hình dạng, tuy nhiên vẫn mang các đặc tính chung nhất của đối tượng.
Hệ Particle không phải là một giải pháp mới, tối ưu cho mọi bài toán mô phỏng, tuy nhiên đây là một phương pháp kinh điển, là nền tảng phát triển cho các phương pháp
khác. Hơn 50 năm trước thì những trò chơi đầu tiên trên máy tính cũng đã sử dụng rất
nhiều các pixel chuyển động để tạo ra vụ nổ của vũ khí (SpaceWar – 1962, Asteroids –
1978 v.v.). Hệ Particle cũng đã được sử dụng để tạo ra các hiệu ứng 3D trong các bộ phim từ những năm 1980. Alvy Ray Smith và Jim Blinn sử dụng Particle để mô hình
hóa việc hình thành và chết đi của các vì sao trong các dải ngân hà trong Cosmos, một
seri phim truyền hình về nguồn gốc sự sống và vị trí của trái đất trong vũ trụ được phát
hành lần đầu năm 1980. Star Trek II, bộ phim nổi tiếng về đề tài chiến tranh vũ trụ được
phát hành năm 1982 cũng sử dụng kĩ thuật Particle để xây dựng hiệu ứng các vụ nổ
ngoài vũ trụ. Luận văn sẽ đi sâu nghiên cứu rõ hơn kĩ thuật xây dựng một hệ Particle.
Hình 2.1.Star Trek II - 1982
Hệ Particle không phải là thực thể tĩnh mà chuyển động và thay đổi hình dạng theo thời gian. Các Particle liên tục "chết đi" và các Particle mới được "sinh ra" trong
hệ thống. Quy trình một hệ Particle được mô tả bởi hình 2.2 bên dưới.
16
Hình 2.2. Quy trình thực hiện hệ Particle
Một đối tượng được biểu diễn bằng hệ Particle không được xác định hoàn toàn,
cả về đường nét lẫn hình dạng. Thay vào đó, nó được xác định bằng các tiến trình với
nhiều tham số ngẫu nhiên. Vì thế, các lần mô phỏng có thể khác nhau về hình dạng, tuy
nhiên vẫn mang các đặc tính chung nhất của đối tượng.
Mỗi một Particle được lập trình để thực hiện một tập các lệnh ở mỗi bước. Do có tính thủ tục, phương pháp này có thể phối hợp bất cứ mô hình tính toán nào dùng để mô
tả bề ngoài và chuyển động của đối tượng. Ví dụ, sự chuyển động và biến đổi của các
Particle có thể được gắn vào các phương trình vi phân cục bộ, hay các thuộc tính của
Particle có thể được gán vào các cơ chế thống kê xác suất cơ bản.
2.1.1. Particle trong mô phỏng khói
Đối với bài toán mô phỏng khói một phần tử trong hệ Particle có các thuộc tính cơ bản: vị trí sinh ra, số lượng, thời gian sống, vận tốc, màu sắc cho phép mô phỏng một khối khói như hình bên dưới.
Hình 2.3. Khói với các tham số cơ bản hệ Particle
17
Áp dụng các thuộc tính về sự khuếch tán và ảnh hưởng của môi trường (ảnh
hưởng của gió) ta thu được hình ảnh khói khói tốt hơn trong hình 2.4 bên dưới.
u⃗ = ∆y⃗ +∆kt⃗⃗⃗ u⃗ = ∆y⃗ + ∆kt⃗⃗⃗ + ∆mt⃗⃗⃗⃗⃗
(a) (b)
Hình 2.4. Khói mô phỏng: (a)Tham số khuếch tán (b) Tham số môi trường
Với tham số khuếch tán: ∆kt⃗⃗⃗ là vector vận tốc thể hiện khả năng khuếch tán của các phần tử. Khi đó vận tốc u ⃗⃗⃗ của mỗi hạt ngoài việc phục thuộc vào vận tốc bay lên
∆ y ⃗⃗⃗ theo chiều thẳng đứng còn phụ thuộc vào tham số khuếch tán. Với tác động môi trường ∆mt⃗⃗⃗⃗⃗ hình ảnh khối khói được kết xuất được tương đối tốt về mặt động lực của các hạt. Để hình ảnh thu được giống hơn với thực tế, các mặt nạ được sử dụng thay thế
cho việc kết xuất hình ảnh từ các hạt cơ bản. Hình 2.5 là kết quả của khối khói khi sử
dụng các mặt nạ khác nhau.
Hình 2.5. Khói khi sử dụng mặt nạ
Để khối khói mô phỏng giống với thực tế cần tiến hành xác định va chạm [6]. giữa các hạt và giữa các hạt với các đối tượng khác, cần sử dụng các phương pháp phát hiện va chạm trong thực tại ảo [7]. Phương pháp sử dụng để phát hiện va chạm trong trường hợp này là sử dụng các khối bao. Đối với đối tượng Particle khối bao được sử dụng là khối cầu[8]. Đối với các đối tượng khác là các vật thể bị va chạm thì tùy theo hình dạng của vật đó mà quyết định xem sử dụng khối bao nào là hợp lý. Hình 2.6 bên
dưới là hình ảnh khối khói khi va chạm với một mặt phẳng nằm ngang.
18
Hình 2.6. Khói khi có vật cản và va chạm
Quy trình kiểm tra va chạm đồng nghĩa với khối lượng tính toán cũng tăng lên.
Chất lượng hình ảnh và tương tác khi mô phỏng được nâng cao. Tuy nhiên, khối lượng
tính toán lớn dẫn đến hệ particle khó mở rộng về số lượng hạt.
2.1.2. Particle trong mô phỏng lửa
Lửa là một đối tượng không định hình, tức là nó chưa được định nghĩa một cách
rõ ràng và nó luôn luôn biến đổi theo thời gian. Việc sử dụng các phương pháp tổng hợp
hình ảnh thông thường để mô phỏng lửa sẽ rất phức tạp. Do vậy, để mô phỏng lửa, người
ta thường lựa chọn phương pháp Particle System. Để xây dựng hình ảnh cho một particle
lửa, chúng ta sẽ sử dụng kĩ thuật alpha channel. Đây là một kĩ thuật tạo mặt nạ cho ảnh
bipmap trong đồ họa vi tính. Đầu vào của quá trình này là một ảnh bipmap gốc ban đầu
và một ảnh bipmap đen trắng dùng để làm alpha channel. Thực chất của quá trình này
là thêm vào mỗi pixel ảnh gốc một chỉ số A cho độ trong suốt của pixel đó, ngoài 3 giá
trị R, G, B của màu sắc. A = 1 tương ứng với điểm màu đen trên alpha channel, khi đó
pixel của ảnh gốc sẽ bị mờ hoàn toàn. A = 0 tương ứng với điểm màu trắng trên alpha channel, khi đó pixel của ảnh gốc sẽ hoàn toàn không bị mờ. Sở dĩ ảnh đen trắng được
chọn làm alpha channel bởi vì với loại ảnh này, mỗi pixel có các giá trị R, G, B bằng
nhau, do đó ta chỉ cần lựa chọn một trong những chỉ số này để làm chỉ số A của ảnh cần
xử lý.
Hình 2.7. Cộng ảnh Alpha Channel vào ảnh để tạo mặt nạ
19
Sau khi thực hiện thuật toán này, ta sẽ có một ảnh mới với màu sắc của ảnh gốc,
thêm vào một chỉ số của độ trong suốt cho từng pixel của ảnh alpha channel.
Hình ảnh particle lửa ban đầu được xây dựng theo cách này, do đó màu sắc và
hình dạng của particle lửa sẽ phụ thuộc vào hai ảnh được chọn làm ảnh gốc và alpha
channel. Hình ảnh tổng hợp sẽ tham gia vào các chuyển động và biến đổi của riêng từng particle, cho ta cảm giác về màu sắc và độ trong suốt của ngọn lửa.
Cũng như một particle tổng quát, particle lửa cũng có những tính chất như sau:
- Vị trí (_position)
- Vận tốc (_velocity)
- Kích thước (_size)
- Thời gian sống (_lifeTime)
- Độ trong suốt (_alpha)
Các thuộc tính này sẽ được truyền vào một giá trị khởi tạo khi chương trình bắt
đầu hoạt động. Giữa các thuộc tính của particle có những sự ràng buộc nhất định để đảm
bảo tính thống nhất giữa hoạt động và hình ảnh của các particle.
Particle System mô phỏng ngọn lửa cũng có một số thuộc tính riêng để điều khiển
chung cho tất cả các particle lửa:
- Tập hợp particle lửa (fireParticles)
- Vị trí của camera (camera)
- Vị trí quan sát (viewpot)
- Tốc độ (speed)
Các tham số này sẽ được dùng vào việc điều khiển về hướng nhìn, khoảng cách
nhìn, mật độ particle lửa và tốc độ bay lên của ngọn lửa.
Một particle system luôn có một phương thức để khởi tạo cho từng particle và
cho cả particle system. Nhìn chung thì phương thức khởi tạo cho particle system mô phỏng lửa cũng tương tự như bất cứ một particle system nào khác. Nhiệm vụ của nó chỉ là truyền các thông số cần thiết cho particle system hoạt động. Các tham số này phải được tính toán và lựa chọn cẩn thận để mang lại hiệu quả mô phỏng tốt nhất. Như đã trình bày ở trên, các thông số truyền vào cho từng particle đều được gán ngẫu nhiên quanh một giá trị trung bình và khoảng biến thiên cố định.
Cốt lõi của particle system là phương thức điều khiển hoạt động của một particle.
Trong mô phỏng lửa, phương thức này sẽ quyết định hình dáng, màu sắc và chuyển động
chung của ngọn lửa.
20
Trong môi trường không trọng lượng, ngọn lửa sẽ có dạng hình cầu. Tuy nhiên,
khi ở trên mặt đất dưới tác dụng của trọng lực và hiện tượng đối lưu khí quyển, ngọn
lửa xuất phát từ một điểm hay một vùng nhỏ sẽ có xu hướng bốc lên cao và bóp vào như
ta thường thấy ở hình ảnh mô phỏng bên dưới.
Hình 2.8. Ảnh ngọn lửa được mô phỏng bởi hệ Particle
Để mô phỏng hình dạng của ngọn lửa, vecto vận tốc của particle lửa sẽ được thay
đổi hướng liên tục để quĩ đạo particle lửa tạo có hình dạng vòng cung.
Hình 2.9. Sự thay đổi hướng của vecto vận tốc
Phương trình sau cho phép thay đổi hướng vận tốc cho particle lửa ở dạng đơn
giản:
_velocity.x() -= deltaX; (1) _velocity.Z() -= deltaZ;
Sau một khoảng thời gian nhất định, thành phần theo trục Ox và Oz sẽ bị trừ đi một lượng deltaX và deltaZ tương ứng. Lượng trừ đi sẽ được tính toán sao cho khi hết
thời gian sống, vecto chiếu của vecto vận tốc lên mặt phẳng Oxz sẽ cùng phương khác hướng với hình chiếu cũng lên mặt Oxz của vecto vận tốc khởi tạo.
21
Phương thức cập nhật trạng thái cho particle là một thủ tục được gọi đi gọi lại
trong suốt quá trình hoạt động của particle system. Một khi particle hết thời gian sống,
nó được khởi tạo lại để trở thành một particle mới, duy trì sự liên tục của ngọn lửa.
2.2. Kỹ thuật phát hiện và xử lý va chạm trong mô phỏng
2.2.1. Các kỹ thuật va chạm
Nói chung sự tương tác giữa các vật xung quanh ta vô cùng phức tạp. Nhưng để đơn giản hơn, trong vật lý người ta bỏ qua các tương tác nhỏ không đáng kể. Do đó, khi
hai vật ở gần nhau, lực tương tác giữa chúng là khá lớn thì ta nói chúng có tương tác với
nhau. Nếu chúng ở khá xa nhau lực tương tác giảm và nếu lực tương tác giữa các vật
quá nhỏ thì ta coi như chúng không còn tương tác nữa. Nếu sự tương tác xảy ra giữa các
vật trong một khoảng thời gian tương đối ngắn thì ta gọi đó là va chạm. Ví dụ: bắn bi, đá bóng v.v..
Va chạm là một hiện tượng thường gặp trong đời sống và trong kỹ thuật. Việc
áp dụng các định luật động lực học để giải bài toán va chạm thường gặp nhiều khó khăn do thời gian va chạm giữa các vật thường rất ngắn (chỉ vào khoảng 10−2 đến 10−5 giây) nên cường độ tác động của các lực lên vật thường rất lớn.
Các loại va chạm
Va chạm cũng là một vấn đề khá phức tạp, nhưng trong vật lý người ta phân va
chạm ra làm hai loại chính là va chạm đàn hồi và va chạm mềm.
Va chạm đàn hồi: là va chạm sau khi tương tác với nhau chúng tách rời nhau (Là va chạm giữa các vật mà sau khi va chạm cơ năng của hệ được bảo toàn. Trong
thực tế không có va chạm nào được xem là tuyệt đối đàn hồi. Nhưng với những va
chạm mà sau khi kết thúc cơ năng của hệ thay đổi rất ít thì ta có thể xem đó là va
chạm đàn hồi). Ví dụ va chạm giữa các trái bi trên bàn bi –da...
- Trường hợp đặc biệt: va chạm đàn hồi xuyên tâm là va chạm mà trước và sau
va chạm hai vật đều chuyển động trên cùng một đường thẳng.
- Phạm vi áp dụng: áp dụng hai định luật bảo toàn là bảo toàn động lượng hoặc
bảo toàn cơ năng.
Va chạm mềm: là loại va chạm mà sau khi va chạm hai vật dính vào nhau và chuyển động với cùng một vận tốc (Là va chạm xảy ra giữa các vật mà sau khi va chạm
cơ năng của hệ các vật đó không được bảo toàn. Một phần cơ năng của hệ được
chuyển sang một số dạng năng lượng khác như nhiệt năng, sinh công ...). Ví dụ
ném một khối đất sét mềm xuống mặt đất, khi va chạm khối đất bẹp xuống, năng
lượng sinh ra đã làm biến đổi hình dạng của khối đất.
22
2.2.2. Kỹ thuật phát hiện va chạm dựa vào hộp bao AABB
Khối bao theo trục AABB (Axis Aligned Bounding Box) [6] là khối bao có dạng
hình hộp chữ nhật nhỏ nhất và có các cạnh song song với các trục tọa độ bao lấy đối
tượng.
Hình 2.10. Hộp bao AABB
Khối bao AABB bao gồm một tâm C, ba hệ số a0, a1, a2 tương ứng theo ba trục
tọa độ x, y, z.Trong không gian 3 chiều, một AABB có tâm C và ba hệ số a0, a1, a2
được xác định bởi hai đỉnh có tọa độ lớn nhất (xmax, ymax, zmax) và nhỏ nhất (xmin,
ymin, zmin).
Hình 2.11. Xây dựng hộp bao AABB
Trong đó:
, xmin = C − xmax = C +
(2) , ymin = C − ymax = C +
, zmin = C − zmax = C + a0 2 a1 2 a2 2 a0 2 a1 2 a2 2
23
Loại BV này rất dễ tạo ra, dễ hợp nhất lại với nhau và thuận tiện cho việc phát
hiện va chạm. Lợi thế lớn nhất của loại BV này là xử lý nhanh, tuy nhiên không chính
xác cho lắm.
Hình 2.12. Hợp nhất và kiểm tra va chạm giữa AABB và OBB
Khi phát hiện va chạm giữa hai hộp bao AABB: Cho hai hộp bao AABB xác định bởi [C1, a0, a1, a2] và [C2, b0, b1, b2] trong đó ai> 0, bj>0 và i,j = 0, 1, 2. Dựa vào cách
xây dựng khối bao AABB ở trên, ta xác định được: tọa độ lớn nhất và nhỏ nhất của khối
bao thứ nhất là (xmax1, ymax1, zmax1) và nhỏ nhất (xmin1, ymin1, zmin1); Điều này
tạo thành 1 hình chiếu trên 3 trục tọa độ nếu cả ba hình chiếu này cắt nhau thì có va
chạm với nhau.
Hình 2.13. Phát hiện va chạm giữa 2 hộp bao AABB
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 tọa độ 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.
2.2.3. Kỹ thuật phát hiện va chạm dựa vào hộp bao OBB
Hộp bao theo hướng OBB (Oriented Bounding Box) [6] là hộp bao AABB nhưng
trục 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
24
loại AABB nhiều, mặc dù vậy người ta vẫn dùng loại hộp bao này nhiều hơn vì nó cho
độ chính xác cao hơn nhiều so với hộp bao AABB.
Loại hộp bao này bao khá vừa các dạng vật thể. Tuy nhiên, với vật thể có nhiều
đỉnh cao như hình bên thì rõ ràng chưa phải tối ưu.
Xây dựng hộp bao OBB
Trong phần này, tất cả các vectors được hiểu là trong không gian R3. Một OBB
và ba hệ số độ dài
được xác định bởi tâm C, ba vector chỉ hướng của hộp bao tương ứng với kích thước của hình hộp là a0> 0, a1> 0, a2> 0. OBB được mô tả bởi:
(3)
và 8 đỉnh của hộp bao là:
(4)
trong đó: với mọi i.
Phát hiện va chạm giữa hai hộp bao OBB
Để kiểm tra 2 hộp bao có va chạm với nhau hay không ta sử dụng định lý sau: 2
đối tượng lồi sẽ không giao nhau khi và chỉ khi tồn tại mặt phẳng P cô lập được chúng.
Trong không gian 3 chiều R3, nếu 2 hộp bao giao nhau thì hình chiếu của chúng
trên các trục toạ độ x, y và z cũng phải giao nhau.
Thuật toán tổng quát có thể phát biểu ngắn gọn như sau:
- Chiếu mỗi hộp bao (AABB) lên các trục toạ độ x, y và z. Kết quả thu được là
các đoạn thẳng.
- Hoặc có thể chiếu mỗi hộp bao (AABB) lên các mặt phẳng toạ độ xOy, yOz và
zOx. Kết quả thu được là các hình chữ nhật.
- Kiểm tra sự giao nhau giữa các đoạn thẳng được chiếu lên các trục toạ độ. Nếu hình chiếu của 2 hộp bao giao nhau trên cả 3 trục toạ độ thì 2 hộp bao đó giao
nhau. Ngược lại chúng không giao nhau.
- Nếu chiếu lên các mặt phẳng toạ độ thì 2 hộp bao giao nhau khi và chỉ khi hình
chiếu của 2 hộp bao đó lên mỗi mặt phẳng toạ độ đều giao nhau.
2.2.4. Kỹ thuật phát hiện va chạm dựa vào khối bao cầu
Bounding spheres [6] là các khối bao có dạng hình cầu bao lấy đối tượng, được
xác định bởi 4 giá trị: tọa độ tâm C(xc, yc, zc) và bán kính r.
25
Khối bao dạng này dễ tạo ra và đơn giản trong các thao tác kiểm tra va chạm.
Dễ dàng kiểm tra va chạm là bởi vì khi đối tượng quay hay chuyển động thì hình dạng,
hướng của hình cầu đều không bị thay đổi, hình cầu không bị tác động khi vật thể tự
quay. Hình cầu không phụ thuộc vào trục.
- Ta cũng có thể thay thế các hình bao cầu bởi các khối ellipsoid. Hình bao cầu chỉ
là trường hợp riêng của hình bao ellipsoid.
- Tuy nhiên, hình bao cầu lại có một số nhược điểm.
- Nó thường biểu diễn không chính xác hình dạng các vật thể nếu như các vật thể này không có dạng khối cầu, đặc biệt khi hình dạng của vật thể có dạng bẹt hoặc
dài thì càng không chính xác. Vì vậy thuật toán sẽ không được tối ưu.
- Khối bao này tạo ra nhiều không gian trống giữa vật thể với khối cầu.
- Rất khó hợp nhất 2 hay nhiều BS loại này bởi vì sẽ tạo ra sai số rất lớn.
Hình 2.14. Hợp nhất và kiểm tra va chạm giữa 2 khối bao cầu
Xây dựng khối bao cầu
Cách tạo đơn giản:
- Ta dễ dàng tạo được hộp bao AABB như hình bên
- Lấy tâm của hộp bao AABB làm tâm của hình cầu
- Chọn đường kính của hình cầu bằng độ dài đường chéo của hộp bao AABB.
Với cách tạo đơn giản này cho ta một khối bao hình cầu không được tối ưu lắm. Tuy
nhiên, cách này tương đối đơn giản, dễ dàng thực hiện.
Ta hãy xem một phương pháp cải tiến của phương pháp nêu trên:
- Lấy tâm của khối cầu là tâm của hộp bao AABB
- Duyệt tất cả các đỉnh của đối tượng
Tìm đỉnh mà khoảng cách từ tâm khối cầu đến đó là lớn nhất và lấy khoảng cách đó
làm bán kính của hình cầu.
26
Với phương pháp này thì hạn chế được khoảng không gian trống hơn phương
pháp trên, tuy nhiên cần phải thực hiện nhiều phép toán so sánh và tìm kiếm.
Qua 2 phương pháp xây dựng nhanh BS ở trên ta thấy rằng giải pháp trên là không
phải tối ưu. Rõ ràng cả 2 phương pháp đều tạo ra những khoảng không gian trống quá
lớn nên chúng ta cần tìm ra giải pháp hạn chế được khoảng không gian trống càng nhiều càng tốt.
Giải pháp tối ưu nhất được trình bày như sau:
Giả sử S là một tập các đỉnh của một đối tượng (hay đơn giản S là một tập các
điểm). Với tất cả các đỉnh V thuộc tập S ta thực hiện các bước sau:
Bước 1: Tìm tất cả các đỉnh Vmax là đỉnh có tọa độ lớn nhất theo các trục tọa độ
(x, y, z).
Bước 2: Tìm tất cả các đỉnh Vmin là đỉnh có tọa độ nhỏ nhất theo các trục tọa độ
(x, y, z).
Bước 3: Chọn ra cặp đỉnh Vmax, Vmin sao cho khoảng cách giữa chúng theo các
trục tọa độ là lớn nhất.
Bước 4: Chọn tâm C của khối cầu là trung điểm của vector Vmax - Vmin
Bước 5: Chọn bán kính của khối cầu bằng một nửa độ dài Vmax - Vmin
Bước 6: Duyệt tất cả các đỉnh còn lại, gọi d là khoảng cách từ đỉnh đang xét tới
tâm của khối cầu. Nếu một đỉnh nào đó nằm ngoài khối cầu thì ta di chuyển tâm C của
khối cầu một khoảng (d+r)/2 và chọn bán kính mới của khối cầu là (d+r)/2.
Khi đã duyệt tất cả các đỉnh thì chắc chắn rằng khối cầu đã bao tất cả các đỉnh
(hay các điểm).
Phát hiện va chạm giữa hai khối bao cầu
Một khối cầu được xác định bởi tâm và bán kính của nó. Giải quyết vấn đề va
chạm giữa 2 khối cầu có vẻ đơn giản hơn. Bằng cách tính khoảng cách giữa 2 tâm của
khối cầu, nếu khoảng cách này nhỏ hơn hoặc bằng tổng của 2 bán kính của 2 khối cầu thì 2 khối cầu giao nhau.
Hình 2.15. Hai khối cầu xảy ra va chạm
27
2.2.5. Kỹ thuật phát hiện va chạm dựa vào hộp bao đa diện lồi
Có rất nhiều dạng BV phức tạp khác được dùng trong một vài trường hợp đặc
biệt. Để tạo ra chúng đòi hỏi rất nhiều các thông số. Tuy nhiên, càng phức tạp thì càng
làm giảm được khoảng không gian trống giữa đối tượng và hộp bao.
Sự lựa chọn phụ thuộc rất nhiều vào hình dạng của vật thể, chẳng hạn như nếu
vật thể có dạng khối dài thì giải pháp có thể chọn là khối bao cầu (bounding sphere)
hoặc khối bao trụ (bounding cylinder).
Hình 2.16. Hộp bao dạng đa diện lồi
Với hộp bao dạng đa diện lồi (k-Dop) [7] ta hạn chế được rất nhiều khoảng không
gian trống giữa vật thể và hộp bao. Tuy nhiên, việc tạo ra hộp bao dạng này đôi khi quá phức tạp (phức tạp nhất) và việc thao tác trên chúng mất quá nhiều công đoạn. Nó chỉ
được sử dụng đối với các chương trình cần độ chính xác cao. Đối với các chương trình
nhỏ yêu cầu tốc độ thì không nên chọn hộp bao dạng này.
Thông thường, người ta thường giới hạn số mặt hay số cạnh của đa diện tới một
giá trị nào đó (chẳng hạn k = 5, 6, 7…) tùy thuộc vào từng ứng dụng cụ thể.
Hình 2.17. Minh họa một số hộp bao K-Dop
Không gian trống giữa hộp bao và đối tượng càng nhỏ thì độ chính xác càng lớn. Nhưng để đạt độ chính xác cao với K-Dop các đa diện có số mặt rất lớn, Đặc biệt với các vật thể phức tạp việc xây dựng K-Dop dần tiến tới việc xác định va chạm của tất cả các mặt hình thành lên đối tượng 3D. Vì vậy nhược điểm lớn nhất của K-Dop là thuật
28
toán tiến tới vét cạn tất cả các mặt, điều này là không thực tế với một hệ thống mô phỏng
đòi hỏi độ chính xác cao, khi phát hiện va chạm phải trả một chi phí thời gian lớn.
Từ những nhược điểm về độ chính xác và thời gian thực thi của các thuật toán
xác định va chạm đã được đề xuất, đòi hỏi phải có những nghiên cứu xây dựng các
phương pháp va chạm có độ chính xác cao nhưng vẫn đảm bảo thời gian tính toán. Phần tiếp theo của bài báo trình bày các giải pháp đảm bảo mô phỏng các tương tác cơ học
tương đối chính xác trong thời gian thực.
Như vậy, để giảm khoảng không gian trống thì hộp bao tạo ra và sử dụng càng
trở nên phức tạp (xem biểu đồ).
Hình 2.18. Độ phức tạp trong tính toán đối với các hộp bao
2.3. Kỹ thuật xây dựng mô hình 3D
Tùy theo kĩ thuật và kinh nghiệm làm việc mỗi cá nhân có thể đưa cho mình
những phương pháp khác nhau để đi vào thiết kế, hay xây dựng một sản phẩm. Cách mà
người ta làm ra nó sẽ ảnh hưởng bởi nhân tố thời gian và lượng chất xám phải đầu tư
vào. Để tạo ra cùng 1 sản phẩm sẽ có nhiều con đường cho ta lựa chọn, đi bằng cách
nào cho hợp lí, tối ưu nhất, tiết kiệm thời gian và công sức nhất. Tôi xin trình bày 3
phương pháp dưới đây:
2.3.1.Phương pháp thiết kế đi từ tổng thể đến chi tiết
Các vật thể hữu hình trong cuộc sống của chúng ta hầu hết được cấu tạo nên từ những hình khối cơ bản, cũng như vậy trong phần mềm mô phỏng 3DS Max đã cung cấp cho chúng ta các hình khối đó để thể hiện các đối tượng trong không gian 3 chiều: khối cầu, khối trụ, khối hộp v.v..
Để vẽ được các dạng khối cơ bản này trên trong phần mềm thiết kế 3Ds Max
bảng lệnh Command Panel chọn Creat sau đó chọn Geometry (dạng hình học) phần
29
mềm sẽ xổ xuống cho ta một danh sách các Object Type : Box, Sphere, Cylinder, Torus,
Teapot, Cone, Tube, Plane v.v..
Hình 2.19. Một số hình khối 3D cơ bản
Bằng việc quan sát vật thể cần mô phỏng hay thiết kế, người thực hiện rút ra cho
mình những nhận xét, cấu tạo của vật thể, như mô phỏng chiếc nón lá Việt Nam- nó có
dạng hình chóp nhọn thì tại sao ta không dùng luôn chức năng Cone (chóp nhọn) để vẽ,
sẽ rất nhanh chóng, tuy nhiên nhiều vật thể khác có thể không đơn giản như vậy, người
ta có thể phải sử dụng kết hợp nhiều hình khối, lấy phần giao, phần bù để tạo được vật
thể như ý muốn.
Từ các hình khối cơ bản đã tạo được như trên, 3DS Max cũng cho chúng ta công
cụ để hiệu chỉnh nó. Có 3 công cụ rất hữu ích sau:
Select and Move (công cụ di chuyển)
Dùng để chọn và di chuyển đối tượng theo trục x, y hoặc z. Khi đã chọn được đối tượng thì giữ trái chuột và rê chuột tới vị trí mới theo trục x, y, z hoặc theo cả 3 hướng. Nếu muốn chính xác thì cần phải gọi hộp thoại Move Thuộc tính không gian Type - In sau đó nhập các giá trị tương ứng. Để hiện hộp thoại này thì click chuột phải ngay trên nút Select and Move.
30
Hình 2.20. Công cụ Select and Move trong thiết kế
Select and Rotate (công cụ xoay)
Dùng để chọn và xoay đối tượng, thao tác tương tự như với Select and Move.
Nếu muốn quay đối tượng với độ chính xác cao thì cần phải gọi hộp thoại Rotate Thuộc
tính không gian Type - In bằng cách click phải chuột ngay trên nút Rotate and Move sau
đó nhập vào giá trị tương ứng.
Select and Uniform Scale (công cụ thu, phóng)
Dùng để chọn và thay đổi kích thước đều trên bề mặt của đối tượng hoặc thay đổi
kích thước không đều trên bề mặt của đối tượng.
Ngoài ra còn có chế độ hiệu chỉnh nâng cao Editable Poly
Đây là cách thường dùng để tạo hình trong 3ds max, ngoài Editable Poly bạn còn
gặp Editable Mesh, Editable Pactch, NURBS. Để sử dụng được chế độ này bạn cần phải
chuyển đổi những hình khối cơ bản trở thành những khối có khả năng chỉnh sửa được.
Cách làm: bạn chọn vật thể cần chuyển đổi, click phải chuột chọn Convert To: - > chọn chế độ cần chuyển đổi, ở đây tôi nói đến chế độ Editable Poly, phần mềm sẽ hiện giao diện như sau:
31
Hình 2.21. Chế độ Editable Poly
Ở đây có các chế độ hiệu chỉnh cạnh, đường, điểm, mặt, và khối. Kích chọn từng
chế độ sẽ xuất hiện một bảng chức năng tương ứng nữa.
Bằng cách này bạn có thể co kéo, bóp dãn. Khối cơ bản của chúng ta sẽ như một
cục đất nặn mà thành hình hay không là do kĩ năng nhào lặn của mỗi người. Tuy nhiên
sẽ vô cùng khó khăn trong việc xác định chiều và quan sát trong không gian 3D.
2.3.2. Phương pháp thiết kế đi từ chi tiết đến tổng thể
Ngược lại với phương pháp trên, để bắt tay vào xây dựng vật thể theo phương pháp này ta sẽ phải chuẩn bị ảnh hình chiếu của vật thể thường là hình chiếu mặt trước
và hình chiếu mặt trái hoặc hình chiếu mặt phải. Ưu điểm của phương pháp này là độ
chính xác cao hơn phương pháp trên, ở trên việc tạo ra vật thể hoàn toàn do khả năng
quan sát trong không gian và cảm tính, ướm chừng của người thực hiện. Còn ở phương
pháp này ta có thể tạo chính xác hoàn toàn chi tiết khi có cơ sở dữ liệu ảnh đầy đủ, tuy nhiên làm theo phương pháp này cần nhiều thời gian và độ tỉ mỉ hơn. Vì thế tùy theo yêu cầu của sản phẩm mà ta chọn cho mình một phương pháp phù hợp.
Ở đây cũng chia làm 2 cách như sau:
Cách 1: Tạo hai tấm Plane mặt chiếu đứng và chiếu cạnh, tạo hình khối cơ bản
để đối chiếu hiệu chỉnh theo.
32
Hình 2.22. Hai tấm plane chiếu đứng và cạnh (cách 1)
Cách 2: Cũng tạo hai tấm Plane mặt chiếu đứng và chiếu cạnh, nhưng thay vào
đó không tạo hình khối đối chiếu mà dùng đường Line đồ theo 2 mặt chiếu.
Hình 2.23. Hai tấm plance chiếu đứng và cạnh (cách 2)
2.3.3. Phương pháp thiết kế phối hợp
Tận dụng hiệu quả của từng phương pháp, cách tốt nhất cho công việc của chúng ta là sử dụng linh hoạt kết hợp các phương pháp. Vì khách quan mà nói mọi vật thể trong
cuộc sống đều tương đối phức tạp, bằng khả năng phân tích tốt cùng với sự linh hoạt công việc thiết kế xây dựng của các nhà mô phỏng sẽ được thực hiện dễ dàng và nhanh chóng, hiệu quả hơn. Một số thành phần ta dùng phương pháp hiệu chỉnh từ khối, một số thành phần thì dùng Line vẽ thêm và hiệu chỉnh.
33
Sau khi phân tích đưa ra phương pháp thiết kế mô hình các hiện vật dựa trên các
phần mềm 3 chiều. Các ảnh chụp của từng mô hình sẽ được đưa vào trong các phần
mềm ba chiều làm mẫu.
Sau khi xây dựng toàn bộ các đối tượng, tiếp tục xây dựng không gian 3D ảo và
đưa các đối tượng vào trong đó tạo thành một cảnh như cảnh ngoài đời thực.
Hình 2.24. Mô hình trường ĐH Hùng Vương góc 1
Hình 2.25. Mô hình trường ĐH Hùng Vương góc 2
34
Hình 2.26. Mô hình trường ĐH Hùng vương góc 3
Hình 2.27. Mô hình phòng học giảng đường trường ĐH Hùng vương
2.4. Kỹ thuật điều khiển nhân vật
Có nhiều kỹ thuật được áp dụng trong diễn họa, trong đó tùy theo yêu cầu, mục đích trong quá trình diễn họa sẽ có những kỹ thuật khác nhau được lựa chọn. Dưới đây là một số kỹ thuật phổ dụng thường được sử dụng rộng rãi trong đồ họa mô phỏng và thực tại ảo.
2.4.1. Kỹ thuật điều khiển chuyển động theo đường Path
Kỹ thuật này cho phép một hay nhiều đối tượng chuyển động theo một đường đi đã được xác định trước bởi các điểm trong không gian [7] gọi là Path. Theo đó, một
35
đường nối các điểm trong không gian sẽ tạo thành một quỹ đạo. Đối tượng sẽ chuyển
động theo quỹ đạo trên đường Path từ điểm đầu tiên liên tiếp tới điểm cuối cùng. Khi
tới điểm cuối cùng có ba sự lựa chọn thường thấy: Một là kết thúc quá trình chuyển
động của đối tượng tại điểm cuối cùng, hai là đối tượng chuyển động theo chiều ngược
lại trên đường Path, ba là chuyển động tiếp tục tới điểm đầu tiên tạo thành một vòng khép kín. Quỹ đạo chuyển động trên đường Path có thể ở hình dạng đường gấp khúc tạo
ra bằng cách nối các điểm trên đường Path lại bởi các đường thẳng hoặc ở dạng các
đường cong, trong đó dạng đường cong thường được sử dụng hơn do quy đạo chuyển động mềm hơn và không tạo ra các sự thay đổi đột ngột về góc quay của đối tượng. Với
dạng đường cong, trên quỹ đạo chuyển động có thể thêm những vị trí đánh dấu đặc biệt
để tinh chỉnh quỹ đạo chuyển động của đối tượng.
a) Đường Path thẳng b) Đường Path cong
Hình 2.28. Đường Path trong điều khiển chuyển động đối tượng
Trong quá trình vận động, các tham số chính cần trong điều khiển cần phải thiết
đặt gồm vận tốc di chuyển của đối tượng, góc quay của đối tượng tại điểm quay, hướng
của đối tượng, tham số xây dựng quỹ đạo với đường Path cong. Với ưu điểm đơn giản,
dễ cài đặt (đặc biệt với đường Path tạo bởi các đường thẳng) kỹ thuật sử dụng đường
Path thường áp dụng đối với các chuyển động đơn giản có quỹ đạo không đổi, không có
thay đổi nội tại bên trong của đối tượng. Đường Path gặp nhiều khó khăn khi điều khiển
chuyển động của đối tượng phức tạp, mà ở đó các đối tượng con trong một đối tượng cũng tồn tại chuyển động kết hợp với chuyển động của đối tượng cha tạo thành một chuyển động tổng thể phức tạp. Đồng thời với các chuyển động có tính tương tác cao giữa các thành phần và ảnh hưởng bởi các yếu tố môi trường như trọng lực, va chạm, từ trường v.v.. là những vấn đề mà kỹ thuật đường Path khó mô phỏng được.
2.4.2. Kỹ thuật tạo chuyển động Set Driver Key
Đây là kỹ thuật điều khiển chuyển động của một đối tượng bị phụ thuộc vào thuộc
tính, chuyển động của một đối tượng khác. Ví dụ như chuyển động của các bánh răng,
chuyển động của xích xe và bánh xe, chuyển động của khớp xương khi kết nối với nhau
36
v.v.. Kỹ thuật này cho phép tạo ra mối rằng buộc giữa các thuộc tính chuyển động của
các đối tượng với nhau. Khi đó, sử chuyển động của một, một nhóm đối tượng phụ thuộc
vào các thuộc tính điều khiển của đối tượng khác. Khi số lượng đối tượng tham gia
chuyển động càng nhiều kỹ thuật này càng trên trở lên phức tạp.
Đối với các chuyển động tuân theo rằng buộc của vật lý, trong quá trình điều
khiển các đối tượng tương tác với nhau thông qua các luật mà chủ yếu là các tương tác
về cơ học. Tuy nhiên, để mô phỏng hoàn toàn các tương tác về cơ học là điều tương đối phức tạp, đặc biệt là các tương tác trong đó tồn tại các thuộc tính về đàn hồi. Trên thực
tế, các điều khiển Set Driven Key thường xây dựng một tập các thuộc tính phụ thuộc,
dựa trên việc thiết đặt giá trị cho các thuộc tính này mà trong quá trình điều khiển tạo ra
các rằng buộc về chuyển động khác nhau.
Ưu điểm của kỹ thuật này là dễ dàng tạo ra các chuyển động tương đối phức tạp
bằng việc thay đổi các giá trị thiết đặt rằng buộc. Đặc biệt trong trường hợp một nhóm đối tượng có chuyển động tương đối giống nhau. Ví dụ như chuyển động của các khớp
xương ở đuôi động vật, chuyển động của các toa tàu, chuyển động của các mắt xích v.v..
Tuy nhiên, Set Driven Key gặp nhiều khó khăn trong trường hợp sự chuyển động của
một đối tượng có nhiều phương án phụ thuộc và đối tượng khác. Ví dụ như chuyển động
của đầu so với thân, ở đó tồn tại những rằng buộc cứng và cả những rằng buộc mềm.
Khi thân di chuyển đầu cũng phải di chuyển theo nhưng trong lúc di chuyển phần đầu
có thể quay trái, quay phải và làm rất nhiều các tư thế khác nhau tạo ra rất nhiều các
hình thái khác nhau.
2.4.3. Kỹ thuật tạo chuyển động KeyFrame
Keyframe [2] [11], là kỹ thuật diễn họa sử dụng các điểm đánh dấu để xác định
các nhịp chuyển động của đối tượng. Mỗi điểm đánh dấu là một thiết đặt trạng thái của
đối tượng. Các điểm đánh dấu được thiết đặt liên tục theo thời gian, sự sắp xếp liên tiếp
các trạng thái này tạo ra các dạng chuyển động khác nhau cho đối tượng. Trong hầu hết các phần mềm đồ họa, để xây dựng chuyển động của một đối tượng, Keyframe được coi là phương pháp thể hiện chuyển động một cách phổ biến nhất. Sự thay đổi trạng thái của các đối tượng theo thời gian dựa trên các điểm đánh dấu trong trường hợp số lượng ít sẽ không đủ tạo ra sự chuyển động một cách liên tục. Khi đó giữa hai điểm đánh dấu sẽ được tính toán tạo ra trạng thái chuyển tiếp giữa hai trạng thái kề nhau.
37
Hình 2.29. Chuyển động nhận vật sử dụng keyframe
Nhìn một cách khác, kỹ thuật keyframe giống như một dạng kịch bản chuẩn bị
trước, ở đó các chuyển động được thiết đặt sẵn và trình diễn khi được gọi tới. Nó cho phép dàn dựng và xây dựng một hình ảnh động bằng cách bố trí các đối tượng tại những
vị trí khác nhau và lưu lại những trạng thái ở thời điểm này thành những điểm đánh dấu.
Những thời điểm quan trọng trở thành các điểm cố định trong thời gian qua đó đối tượng
có khả năng diễn họa chuyển động theo thời gian.
Khi số lượng các điểm đánh dấu ít, việc nội suy tính toán các điểm giữa là điều
quan trọng cần phải thực hiện. Giả sử ta có hai trạng thái là K1 và K1; t1, t2 lần lượt là
thời gian xác định của K1 và K2 (t1 trị K1.value, K2.valude là cấu hình trạng thái của đối tượng tại K1 và K2. Một trạng thái Ktg tại thời điểm t (t1 bằng nội suy tuyết tính công thức sau: Ktg = K1.value + ((t – t1)/(t2 – t1))*(K2.value – K1.value) (5) Kỹ thuật KeyFrame có điểm tương đồng với kỹ thuật điều khiển theo đường Path. Sự khác nhau nằm ở chỗ mỗi điểm đánh dấu của đường Path chỉ là một điểm trong không gian, trong khi mỗi điểm đánh dấu của KeyFrame là một trạng thái của đối tượng. Cũng giống với điều khiển theo đường Path nội suy tuyến tính tạo trạng thái trung gian
sẽ làm mất đi tính liên tục của chuyển động, đặc biệt là tại vị trí các điểm đánh dấu. Để
tạo tính liên tục theo thời gian cho các chuyển động, các kỹ thuật tính toán điểm chuyển
tiếp ở dạng đường cong cho các cấu hình trạng thái được đề xuất. Có thể nhắc tới một
số thuật toán thường được áp dụng như: Hermite, Bezier, Catmull-Rom, Blended parabolas, B-splines, NURBS v.v.. Bên cạnh đó việc chuyển đổi giữa góc Euler và
Quaternions tạo ra các ưu điểm trong quá trình nội suy trạng thái giữa. Để tạo ra một giây diễn họa, với kỹ thuật cũ các họa sĩ, nhà thiết kế phải tạo ra
nhiều khung hình mô tả các trạng thái liên tiếp nhau. Kỹ thuật KeyFrame với việc áp
dụng các kỹ thuật nội suy trạng thái giữa làm quá trình xây dựng một chuyển động trở 38 lên đơn giản hơn do không phải thiết đặt hết tất cả các trạng thái. KeyFrame là một kỹ thuật điều khiễn diễn họa dễ sử dụng, tuy nhiên để chuyển động liên tục và giống thật thì các trạng thái đánh dấu không được cách nhau quá xa. Vì điều đó, kỹ thuật này vẫn đòi hỏi nhiều chi phí trong quá trình xây dựng chuyển động. 2.4.4. Kỹ thuật FK và IK điều khiển đối tượng có xương Trong thực tế, có nhiều đối tượng có cùng một cấu trúc. Điển hình cho các đối tượng này là con người, các loài động vật. Vì vậy một nhóm các kỹ thuật điều khiển
chuyên biệt nhắm tới cáa đối tượng này được hình thành. Qua đó, thay vì điều khiển các phần tách rời của đối tượng, quá trình điều khiển nhắm tới việc điều khiển khung xương bên trong. Việc thay đổi của khung xương dẫn tới sự thay đổi về bề mặt bên ngoài của
đối tượng, cũng như tạo ra chuyển động. Một khung xương [11] bao gồm 2 thành phần cơ bản. Đầu tiên là khớp, nơi 2 xương hoặc nhiều xương liên kết với nhau. Khi một xương được gắn với một khớp, hoạt động và chuyển động của xương sẽ được điều khiển bởi chuyển động quay và di chuyển của khớp đó. Thứ hai là xương, phần cứng nối tiếp các khớp. Xương được điều khiển bởi sự di chuyển và quay của khớp. Khung xương của đối tượng thường được cấu trúc bởi một hệ thống phân cấp theo dạng hình cây. Có hai kỹ thuật thường được sử dụng trong điều khiển đối tượng có khung xương là FK (Forward kinematics) [12] và IK (Inverse kinematics) [13]. Với hệ thống xương được phân cấp theo cấu trúc cây, kỹ thuật FK điều khiển toàn bộ hệ thống xương theo trình tự từ gốc tới lá. Ở đó, các thành phần ở mức phân cấp cao (càng gần gốc phân cấp càng cao) được điều khiển trước rồi tới các thành phần ở phân cấp thấp hơn. Khi thành phần ở phân cấp cao thay đổi thuộc tính sẽ ảnh hưởng tương ứng tới các thành phần ở phân cấp thấp là con của nó. Ví dụ việc ứng dụng phương pháp FK trong điều khiển chuyển động của tay người. Trong đó các ngón tay là con của cổ tay, cổ tay là con của khủy tay, khủy tay là
con của bả vai. Khi điều khiển chuyển động mọi thay đổi của bả vai sẽ ảnh hưởng tới
khủy tay, cổ tay, ngón tay. Mọi thay đổi của khủy tay ảnh hưởng tới cổ tay và ngón tay. Quá trình điều khiển sẽ thay đổi thuộc tính của bả vai rồi tới khủy tay, tới cổ tay và cuối
cùng là ngón tay. FK là kỹ thuật điều khiển thuận theo cấu trúc phân cấp của xương, vì
vậy tương đối thuận tiện trong quá trình cài đặt. Tuy nhiên, nhược điểm của phương
pháp này là việc tạo ra một trạng thái của đối tượng ta phải thay đổi nhiều thuộc tính của các khớp xương đồng nghĩa với việc phải lưu trữ nhiều trạng thái của một đối tượng. Kỹ thuật IK [13] có cách tiếp cận khác so với FK, ở đó hệ thống khớp làm việc như các hệ thống thứ bậc nhưng bao gồm một điểm đầu và một điểm cuối của hệ khớp 39 xương được liên kết với nhau. Các khớp xương trong hệ thống này có quan hệ mật thiết với nhau trong chuyển động và chịu sự điều hướng di chuyển của 2 điểm đầu và cuối của hệ thống xương. Trong kỹ thuật này, vị trí của điểm cuối được xác định trước, tiếp đó cần phải tìm ra các góc độ của các khớp khác trong hệ thống. Như vậy có thể có một hoặc nhiều kết quả ở đó hệ thống xương phân cấp có thể đảm bảo điểm cuối ở đúng vị
trí hoặc không có đáp án đúng nào cả. Kỹ thuật IK có hai đầu, một đầu giữ vai trò cố định và một đầu giữ vai trò điều khiển chuyển động. Sự xoay của các khớp xương khác được tính toán tự động bởi một bộ điều khiển IK (IK solver). Khi đã thêm điều khiển IK
thì việc tạo chuyển động cho cả đoạn xương chỉ cần tác động vào đỉnh của. Thông thường phải sử dụng nhiều điều khiển IK để tạo chuyển động cho đối tượng, khi đó sự ưu tiên giữa các điều khiển IK dựa theo cấu trúc thứ tự của khung xương. IK mang nhiều ưu điểm cho việc tạo ra số tượng các hành động của đối tượng
trong thời gian ngắn. Tuy nhiên, việc xây dựng bộ điều khiển cho IK là tương đối phức tạp. Đặc biệt là đáp án cho một trạng thái đỉnh của IK có thể không chỉ là một trường hợp, vì vậy các trạng thái của các khớp nằm giữa khó kiểm xoát trong trường hợp cần một hành động chính xác. Mỗi kỹ thuật điều khiển đều mang các ưu điểm riêng và nhược điểm riêng. Không có kỹ thuật nào hoàn toàn tốt trong mọi trường hợp. Vì vậy, khi lựa chọn kỹ thuật điều khiển vào ứng dụng cần xem xét đến các đặc điểm của bài toán cần giải quyết. Từ đó, lựa chọn giải pháp hợp lý và tối ưu nhất để giải quyết các vấn đề được đặt ra. 40 CHƯƠNG 3: THỰC NGHIỆM VÀ ỨNG DỤNG Vì những nguyên nhân cấp thiết và sự nguy hiểm lớn của hỏa hoàn đến tính mạng
con người, khi tiến hành xây dựng các công trình nhà ở, phòng ốc cần tính đến trường hợp khi xảy ra hỏa hoạn. Công trình xây dựng có đảm bảo thoát khói hay không? Nếu xảy ra hỏa hoạn thì sau bao lâu người ở trong nhà sẽ hít phải khói độc? Người ở trong nhà có cơ hội nào để thoát hiểm hay không? Giải pháp nào để cải thiện bản thiết kế công
trình vừa giữ được hình dáng thiết kế ban đầu nhưng vẫn đảm bảo khả năng thoát khói? Đó là những câu hỏi là nguyên nhân vì sao phải xây dựng chương trình kiểm tra phản ứng của công trình trước hỏa hoạn. Trong nội dung luận văn xây dựng các tính huống cần thiết khi xảy ra hỏa hoạn, từ đó giúp người tham gia có được kiến thức và kỹ năng
cơ bản để bảo vệ tính mạng bản thân và thoát hiểm. Trong nội dung luận văn kế thừa các kết quả thu được từ việc nghiên cứu các kỹ thuật tạo hiệu ứng khói, lửa đã được trình bày trong chương 2 để xây dựng chương trình ứng dụng mô phỏng hỏa hoạn và một số tình huống thoát hiểm. Trong phạm vi luận văn dừng lại ở việc mô phỏng hình ảnh và xây dựng tình huống. Như đã trình bày trong
chương 1, việc tạo ra một hệ mô phỏng hoàn toàn chính xác là điều khó khăn, đòi hỏi nhiều nghiên cứu và chi phí cho hệ thống mô phỏng. Vì lý do đó kết quả của chương trình mô phỏng có độ chính xác tương đối. Hình 3.1.Công trình xây dựng đã được mô hình hóa ba chiều 41 Các yêu cầu cơ bản của ứng dụng mô phỏng bảo gồm: Mô phỏng tổng quan kiến trúc các tòa nhà trường Đại học Hùng Vương. Mô phỏng chi hệ thống kiến trúc của thư viện trường Đại học Hùng Vương. Mô phỏng hình ảnh khói, lửa khi xảy ra hỏa hoạn. Mô phỏng một số tình huống thoát hiểm. Dựa trên những nghiên cứu về các kỹ thuật tạo hiệu ứng khói, lửa, trong luận văn sử dụng phương pháp Particle kết hợp với tính toán va chạm và điều khiển đối tượng trong không gian ba chiều trong mô phỏng hỏa hoạn. Đầu vào của chương trình mô phỏng là thiết kế 3D của công trình là hệ thống kiến trúc của Đại học Hùng Vương và chi tiết là khu thư viện của nhà trường. Khi một công trình xây dựng được tiến hành thường có bản thiết kế chi tiết. Dựa trên bản thiết kế chi tiết này ta thu được một bản thiết kế đã được số hóa. Trên thực tế hiện nay các thiết kế của công trình xây dựng thường được kiến trúc sư thực hiện trên máy tính bởi các phần mềm thiết kế. Từ các thông số chi tiết này dựa trên các phầm mềm thiết kế nhằm mô hình hóa thành các mô hình 3D là đầu vào cho chương trình mô phỏng. Trong nội dung luận văn sửa dụng công cụ 3DsMax cho quá trình mô hình hóa các nội dung kiến trúc cần mô phỏng. Một vấn đề quan trọng khi xây dựng một chương trình mô phỏng chính là nền
tảng đồ họa và ngôn ngữ lập trình đồ họa. Trong nội dung luận văn sử dụng ngôn ngữ lập trình Visual C# và nền tảng lập trình đồ họa Unity. Quy trình phát triển trong Unity khá trực quan cho người mới bắt đầu. Một chương trìnhh đồ họa điển hình thường được chia thành nhiều bối cảnh, và mỗi bối cảnh chứa nhiều đối tượng khác nhau trong đó. Mỗi đối tượng trong môi trường ảo lại có một số các kịch bản đi kèm, và những kịch bản này sẽ xác định hành vi và tương tác cho đối tượng đó. Các kịch bản được viết bằng UnityScript có thể là: JavaScript, C#, hoặc Boo. Trong nội dung luận văn, Unity được sử dụng cho các minh họa về lập trình đồ họa 3D. Điều đó sẽ giúp những người nghiên cứu tiếp cận nhanh hơn và có được các
sản phẩm ứng dụng một cách nhanh chóng với chất lượng ở mức cao. 3.3.1. Hình ảnh kiến trúc thư viện Đại học Hùng Vương Hình ảnh khu thư viện của Trường Đại học Hùng Vương sau khi số hóa, và các thông số chi tiết thành các mô hình 3D là đầu vào cho chương trình mô phỏng 42 Hình 3.2.Hình ảnh kiến trúc trong thư viện Nhận xét: Với tham số đầu vào là hình ảnh thư viện dạng 2D thì mô hình sau khi được xây dựng 3D vẫn giữ được màu sắc, hình ảnh, bố cục đạt yêu cầu. Như đã trình bày ở trên, chương trình mô phỏng với sự điều chỉnh các tham số khác 3.3.2. Hình ảnh khói trong quá trình mô phỏng nhau sẽ cho kết quả khác nhau. Dưới đây là hình ảnh mô phỏng khói khi chạy chương trình thu được và ảnh khói tự nhiên. Hình 3.3. Hình ảnh khói tự nhiên và khói lấy từ chương trình mô phỏng 43 Hai hình ảnh khói trong hình trên: Một ảnh được lấy từ cột khói từ một vụ cháy nhà, còn lại là do chương trình mô phỏng tạo ra bằng thuật toán Particle kết hợp xác định va chạm. Nhận xét: Dựa trên những kỹ thuật mô phỏng khói đã được trình bày trong chương 2, trong luận văn sử dụng thuật toán mô phỏng khói và va chạm để xây dựng khói. Các
tham số đầu vào sẽ được điều chỉnh để tạo ra đám khói trong công trình khi xảy ra hỏa hoạn (các tham số được mô tả chi tiết trong chương 2 của luận văn). Kết quả đầu ra là hình ảnh thư viện được mô phỏng khi đám khói phát sinh và lan ra các phần của công
trình. Như đã trình bày, chương trình này được cài đặt với ngôn ngữ lập trình Visual C# và công cụ hỗ trợ là Unity. Phần thực nghiệm được trình bày sử dụng kiến trúc thư viện. Thư viện đã được mô hình hóa 3D như trình bày phần trước. Trong hình 3.4 hình ảnh khói bay lên cao bao
phủ trần ngôi nhà. Hình 3.4. Khói bay lên cao bao phủ bên trong thư viện 3.3.3. Hình ảnh lửa trong quá trình mô phỏng Hình ảnh mô phỏng lửa khi chạy chương trình khi sử dụng các tham số thu được và ảnh lửa tự nhiên. 44 Hình 3.5. Hình ảnh lửa tự nhiên và lửa lấy từ chương trình mô phỏng Hai hình ảnh khói trong hình trên: Một ảnh được lấy từ việc đốt một đống củi, còn
lại là do chương trình mô phỏng tạo ra bằng phương pháp Particle System, để xây dựng hình ảnh cho một Particle lửa sử dụng kỹ thuật alpha channel. Nhận xét: Dựa trên kỹ thuật mô phỏng lửa đã được trình bày trong chương 2, Các tham số đầu vào sẽ được điều chỉnh để tạo ra lửa trong công trình khi xảy ra hỏa hoạn. Kết quả đầu ra là hình ảnh thư viện được mô phỏng khi đám cháy lan ra các phần của công trình. Chương trình này được cài đặt với ngôn ngữ lập trình Visual C# và công cụ hỗ trợ là Unity. Phần thực nghiệm được trình bày tại phòng đọc sách thư viện. Với ngọn lửa bốc cháy lên cao bám vào bờ tường, bàn ghế, các vật dụng dễ cháy. Phần mô phỏng đã đảm bảo được ngọn lửa cháy tại các vị trí khác nhau với các tham số đầu vào khác nhau sẽ có hình dạng khác nhau. Hình 3.6. Hình ảnh khu vực trong thư viện trước, sau khi xảy ra hỏa hoạn 45 Hình 3.7. Hình ảnh khu vực trong thư viện khi xảy ra hỏa hoạn nhìn từ trên cao Tham số Giá trị Max Particles 1000 Thời gian sống (_lifeTime) 1,3 – 1,5 Kích thước (_size) 2,4 - 3 Hình 3.8. Các điểm va chạm Trigger tương ứng câu hỏi thoát hiểm 3.3.4. Mô phỏng di chuyển, các tình huống khi sảy ra va chạm 46 Hình ảnh các điểm Trigger: Là các điểm va chạm và tại đó sử dụng các thuật toán va chạm biết được khi nào đến điểm đó và đưa ra các câu hỏi tương ứng. Các đường di chuyển áp dụng kỹ thuật điều khiển chuyển động theo đường Path cong để kết nối các điểm Trigger tao đường di chuyển cho nhân vật. Hình 3.9. Hình ảnh đường Path và các điểm va chạm Trigger Nhận xét: Nhân vật sẽ di chuyển từ điểm va chạm Trigger 1 qua đường Path đến các điểm va chạm tiếp theo đồng thời quan sát các mô phỏng khói, lửa xung quanh thông qua các camera trên nhân vật từ đó đưa ra các lựa chọn tốt nhất tại các điểm va chạm để đến được đích là cầu thang bộ. 3.3.5. Một số hình ảnh mô phỏng tình huống trong chương trình Hình 3.10. Tình huống bên ngoài khu vực lan can khi bắt đầu xảy ra cháy 47 Hình 3.11.Tình huống phát hiện đám cháy ngoài tầm kiểm soát Hình 3.12.Thông báo khi lựa chọn sai trong các tình huống thoát hiểm 48 Hình 3.13.Tình huống lựa chọn thang máy cho quá trình thoát hiểm Hình 3.14.Thành công thoát hiểm 3.3.6. Kết quả chương trình, đánh giá hiệu quả Dựa trên các kỹ thuật mô phỏng khói, lửa các kỹ thuật va chạm và chuyển động trong chương 2, trong luận văn đã sử dụng thuật toán mô phỏng khói, lửa dựa trên kỹ thuật Particle, các kỹ thuật va chạm và chuyển động để xây dựng chương trình hướng 49 dẫn các kỹ năng thoát hiểm trong các trường học. Chương trình xây dựng với mục tiêu giúp các thầy cô và các em học sinh có được những kỹ năng cơ bản nhất khi xảy ra hỏa hoạn. Với đầu vào là mô hình 3D tòa nhà Trường Đại học Hùng Vương và khu vực Thư viện là địa điểm thực nghiệm. Các tham số đầu vào sẽ được điều chỉnh để tạo ra đám khói, cháy khi xảy ra hỏa hoan. Kết quả đầu ra là hình ảnh công trình được mô phỏng
khi đám cháy, khói phát sinh đồng thời đối tượng chuyển động theo hướng dẫn thoát hiểm thành công. Như đã trình bày, phần mềm 3DS MAX được sử dụng để xây dựng mô hình 3D, chương trình được cài đặt với ngôn ngữ lập trình C# và công cụ hỗ trợ
Unity. Phần thực nghiệm xử lý tình huống trong thời gian cháy là khu vực thư viện với đầy đủ kiến trúc bên trong, địa điểm cháy tại khu vực phòng đọc của Thư viện, khói bốc lên cao trần nhà lan tỏa xung quanh. Các tham số về khói được xây dựng theo thời gian
thực, khói xuất phát từ địa điểm cháy lan tỏa môi trường xung quanh. Nhân vật đang đứng tại khu vực trung tâm Thư viện khi phát hiện khói sẽ di chuyển theo kịch bản cho trước (kịch bản đã được đánh giá kiểm nghiệm thực tế trước khi đưa vào mô phỏng) đầu tiên đối tượng sẽ di chuyển phát hiện đám khói phát sinh tại đây sẽ có nhiều hướng để Nhân vật lực chọn với những phương án cụ thể nếu sai sẽ có những chỉ dẫn cần thiết, dễ hiểu nếu đúng như kịch bản đã cho đối tượng được phép di chuyển tiếp đến điểm tiếp theo cho đến khi thành công đó là thoát hiểm được ra ngoài theo đường cầu thang thoát hiểm. Ở nước ta đa số các tòa nhà cao tầng không xây dựng cầu thang thoát hiểm vì nhiều nguyên nhân khác nhau (tiếp kiệm, tính thẩm mỹ v.v.), và những lời khuyên thường bị chủ nhân của các tòa nhà này bỏ qua khi xây dựng. Tuy nhiên với những hình ảnh trực quan thấy được từ chương trình mô phỏng sẽ giúp những chủ nhân thấy trước được tương lai khi hiểm họa xả ra. Để từ đó có được lựa chọn thông minh cho kiến trúc của mình. 50 KẾT LUẬN Luận văn “Xây dựng chương trình mô phỏng 3D hướng dẫn các kỹ năng xử lý thoát hiểm khi gặp hỏa hoạn trong các trường học” với nội dung nghiên cứu chính là các kỹ thuật mô phỏng khói, lửa, các kỹ thuật điều khiển, phát hiện va chạm trong mô phỏng và các ứng dụng tương ứngkhi mô phỏng hỏa hoạn. Qua đó người học có được các tri
thức tổng quan về mô phỏng và thực tại ảo, hiểu được một hệ thống mô phỏng bao gồm những thành phần gì và cách vận hành của chúng ra sao. Đồng thời có cái nhìn sâu sắc hơn về mô phỏng, tầm quan trọng của nó trong khoa học, kỹ thuật và đời sống, cũng
như các ưu, nhược điểm của mô phỏng, đặc biệt trong các tình huống thoát hiểm khi gặp hỏa hoạn. Với phương pháp mô phỏng khói, lửa sử dụng hệParticle, luận văn trình bày lại và phân tích rõ cách thức thực hiện của hệ thống cũng như các tham số điều khiển trong
mô phỏng. Các kỹ thuật về điều khiển và xác định va chạm cũng đãn được học viên tìm hiểu và trình bày trong luận văn. Kết hợp các kỹ thuật đã tìm hiểu được trong nội dung luân văn đã xây dựng 01 chương trình mô phỏng hỏa hoạn và hướng dẫn kỹ năng thoát hiểm. Tuy còn nhiều hạn chết về mặt mô phỏng và các tính năng nhưng chương trình đã hoàn thành cơ bản các mục tiêu ban đầu đề ra, góp một phần và quá trình nâng cao kiến thức và kỹ năng xử lý khi gặp hỏa hoạn. Qua luận văn học viên đã học tập được nhiều kiên thức và nhận thấy đây là một lĩnh vực mở còn nhiều cơ hội học tập, phát triển và ứng dụng. Với chương trình mô phỏng hỏa hoạn có thể tiếp tục xây dựng nhiều hơn các tình huống và từ đó cung cấp cho người tham gia mô phỏng nhiều hơn các tri thức cần thiết để bảo vệ tính mạng khi gặp sự cố. Bài toán mô phỏng là bài toán có nhiều ý nghĩa trong khoa học, công nghệ và đời sống, điều đó thúc đẩy các nghiên cứu về mô phỏng và thực tại ảo tiếp tục phát triển. Tác giả hi vọng luận văn này sẽ đóng góp một phần cho những phát triển của ngành mô phỏng trên máy vi tính nói riêng và ngành công nghệ thông tin nói chung. Rất cảm ơn
quý thầy cô và quý vị đã quan tâm và bỏ thời gian đọc luận văn này. 51 Tiếng Việt 1. Nguyễn Văn Huân, Vũ Đức Thái (2006), Kỹ thuật lập trình mô phỏng thế giới thực dựa trên Morfit, Nhà xuất bản Khoa học & Kỹ thuật, tr. 9-21. 2. Lê Tấn Hùng, Huỳnh Quyết Thắng (2004), “Đồ họa máy tính”, NXB Khoa học kỹ thuật, Tr. 40-50. Tiếng Anh 3. Jerry Banks (1998), Handbook of simulation: Principles, Methodology, Advance, Applications, and Practice, pp. 3-6. 4.Samuel William Hasinoff,“Three-Dimensional Reconstruction of Fire from Images” [2002]. 5. William T. Reevesm (1983),“Particle System – A Technique for Modeling a Class of Fuzzy Object”, Computer Graphics, Volume 17, Number 3, pp.359-375. 6. X. An and L. Li, "Research on Fast Collision Detection Algorithm Based on CPU Cache Technology", 2018 International Conference on Virtual Reality and Intelligent Systems (ICVRIS), Changsha,pp. 219-222, 2018. 7. P. Jime’nez, F. Thomas, C. Torras, “3D Collision Detection: A Survey”, Journal of Computers and Graphics, vol. 25, No. 2, pp. 269-285, 2010. 8. DongGyu Park, Mirina Jo, SangHyuk Woo, DoHoo Lee, “A Fire and Smoke Simulation for Mobile Game”, International Journal of Software Engineering and Its Applications, Vol 2, No 4, 2008. 9. Francisco Madera, “An Introduction to the Collision Detection Algorithms”, Facultad de Matem´aticas, UADY, pp. 7-18, 2011. 10. Jernej Barbič, Marco da Silva, Jovan Popović, “Deformable object animation using reduced optimal control”, ACM Transactions on Graphics (TOG) - Proceedings of ACM, Volume 28 Issue 3, August 2009 11. J. M. McCarthy, “Introduction to Theoretical Kinematics, MIT Press”, Cambridge, MA, 1990. 12. J. -P. Merlet, “Solving the Forward Kinematics of a Gough-Type Parallel Manipulator with Interval Analysis”, Sage journals, Vol 23, Issue 3, 2004 13. Keith Grochow, Steven L. Martin, Aaron Hertzmann, Zoran Popović, “Style-based inverse kinematics”, ACM Transactions on Graphics (TOG) - Proceedings of ACM SIGGRAPH, Volume 23 Issue 3, August 2004, Pages 522-531.3.1. Yêu cầu thực nghiệm, ứng dụng
3.2. Phân tích, lựa chọn công cụ
3.3. Một số kết quả mô phỏng thực nghiệm
TÀI LIỆU THAM KHẢO