ĐẠ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

3.1. Yêu cầu thực nghiệm, ứ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.

3.2. Phân tích, lựa chọn công cụ

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. Một số kết quả mô phỏng thực nghiệm

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

TÀI LIỆU THAM KHẢO

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.