1

ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

LONG VĂN KỲ

KỸ THUẬT MÔ PHỎNG ĐỐI TƯỢNG DẠNG SỢI VÀ ỨNG DỤNG MÔ PHỎNG TÓC TRONG THỰC TẠI ẢO

Chuyên ngành: Khoa học máy tính

Mã số: 8480101

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Người hướng dẫn khoa học: PGS.TS NGUYỄN VĂN HUÂN

Thái Nguyên 2019

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

2

MỤC LỤC

PHẦN MỞ ĐẦU ............................................................................................... 6

Chương 1 TỔNG QUAN VỀ THỰC TẠI ẢO VÀ MÔ HÌNH DẠNG SỢI .. 11

1.1. Tổng quan về đồ họa máy tính và thực tại ảo ............................................... 11

1.1.1. Khái quát về đồ họa máy tính.............................................................. 11

1.1.2. Khái quát về thực tại ảo ....................................................................... 12

1.1.3. Các lĩnh vực ứng dụng cơ bản của thực tại ảo .................................... 13

1.2. Khái quát mô hình hóa và mô phỏng trong thực tại ảo ................................ 15

1.2.1. Mô hình hóa trong thực tại ảo .............................................................. 15

1.2.2. Mô phỏng trong thực tại ảo .................................................................. 20

1.3. Khái quát về đối tượng dạng sợi và mô phỏng ............................................. 23

1.3.1. Khái quát về đối tượng dạng sợi .......................................................... 23

1.3.2. Vai trò của mô phỏng tóc trong thực tại ảo ......................................... 25

1.3.3. Mô phỏng tóc ....................................................................................... 26

1.3. Kết luận và vấn đề nghiên cứu ..................................................................... 28

Chương 2 MỘT SỐ KỸ THUẬT MÔ PHỎNG ĐỐI TƯỢNG DẠNG SỢI.. 30

2.1. Kỹ thuật mô phỏng đối tượng dạng ảnh dựa vào Texture mapping ............. 30

2.1.1. Giới thiệu ............................................................................................. 30

2.1.3. Ánh xạ các ảnh sợi 2D lên các vùng của mô hình 3D tương ứng ....... 31

2.1.4. Nội suy các điểm còn lại để đảm bảo ràng buộc trong một vùng tóc .. 33

2.1.5. Nội suy vùng tiếp giáp ......................................................................... 35

2.1.6. Thuật toán mô phỏng tóc SDMT ......................................................... 37

2.2. Kỹ thuật mô phỏng đối tượng dựa vào mô hình NURBS ............................ 40

2.2.1. Mô hình NURBS trong mô phỏng đối tượng ...................................... 40

2.2.2. Nâng cao hiệu quả mô phỏng đối tượng dạng sợi, mảnh..................... 43

2.2.3. Thuật toán mô phỏng đối tượng dạng sợi AHS .................................. 48

2.3. Kỹ thuật mô phỏng đối tượng dựa vào Mass-Springs .................................. 49

2.3.1. Giới thiệu ............................................................................................. 49

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

2.3.2. Một số kỹ thuật cơ bản ......................................................................... 50

3

2.3.3. Thuật toán ............................................................................................ 51

2.4. Kết luận và vấn đề nghiên cứu ..................................................................... 54

Chương 3 CHƯƠNG TRÌNH THỰC NGHIỆM ............................................ 56

3.1. Yêu cầu bài toán ........................................................................................... 56

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

3.3. Một số kết quả của chương trình thử nghiệm ............................................... 58

3.3.1. Kết quả thử nghiệm kỹ thuật mô phỏng sử dụng NURBS .................. 58

3.3.3. Kết quả thử nghiệm kỹ thuật mô phỏng sử dụng Mass-Springs .......... 66

3.4. Phân tích kết quả đánh giá ............................................................................ 68

PHẦN KẾT LUẬN ......................................................................................... 69

TÀI LIỆU THAM KHẢO ............................................................................... 71

PHỤ LỤC ........................................................................................................ 74

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

4

DANH MỤC HÌNH ẢNH

Hình 1.1. Hệ thống thiết bị .............................................................................. 13

Hình 1.2. Từ trái sang phải là các thao tác dịch chuyển, xoay, co giãn, ứng

với mỗi trục toạ độ là một màu. ..................................................................... 17

Hình 1.3. Các khung nhìn khác nhau. ............................................................. 17

Hình 1.4. Khung dựng của một quả bóng, được tạo ra sau bước tạo ............ 19

mô hình ............................................................................................................ 19

Hình 1.5. Quả bóng sau khi đã qua bước thể hiện ......................................... 19

Hình 1.6. Mô phỏng sợi tóc theo Anna Sokol ................................................. 24

Hình 1.7. Mô phỏng sợi, mảnh vải .................................................................. 25

Hình 2.1. Phân chia mô hình da đầu 3D thành 6 vùng .................................. 30

Hình 2.2. Ảnh che phủ (ảnh tóc) lên vùng lưới da đầu 3D ............................. 31

Hình 2.3. Ánh xạ mảng tóc 2D lên vùng da đầu 3D ....................................... 32

Hình 2.4. Ánh xạ ảnh tóc 2D sang vùng da đầu 2D ....................................... 33

Hình 2.5. Nội suy điểm T’ dựa vào điểm T trên ảnh tóc sử dụng ánh xạ fj .... 34

Hình 2.6. Nội suy các điểm còn lại thuộc tam giác ........................................ 35

Hình 2.7. Nội suy vùng tiếp giáp giữa hai vùng da đầu ................................. 36

Hình 2.8. Tóc trước và sau khi nội suy vùng tiếp giáp giữa các mảng tóc .... 37

Hình 2.9. Mô hình hóa và điều chỉnh hình đối tượng bởi NURBS ................. 40

Hình 2.10. Mô phỏng đối tượng dạng sợi ....................................................... 43

Hình 2.11. Mô phỏng đối tượng dạng mảnh ................................................... 43

Hình 2.12. Xác định vectơ nút ứng với trường hợp tối ưu .............................. 45

Hình 2.14: Các hình dạng cơ sở (a) plain; (b) sphere; (c) torus ................... 51

Hình 2.15. Độ dày của mỗi sợi với 9 điểm điều khiển. ................................... 53

Hình 1.16. Các điểm điều khiển mass-spring trên bề mặt hình trụ NURBS

xoắn ................................................................................................................. 53

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

5

Hình 3.1. Các khung nhìn khác nhau trên 3DSMax ....................................... 57

Hình 3.14. Mô phỏng đối tượng dạng sợi ....................................................... 58

Hình 3.3. Xác định vectơ nút ứng với trường hợp tối ưu ................................ 59

Hình 3.1. Mô hình thiết kế đầu và chi tiết thành phần (đầu và da đầu) ......... 59

Hình 3.2. Minh họa mô hình render tổng thể ................................................. 60

Hình 3.3. Chức năng chính của hệ thống ....................................................... 61

Hình 3.4. Giao diện chính và tuỳ chọn cách tạo tóc ....................................... 62

Hình 3.5. Tóc với số sợi khác nhau ................................................................. 62

Hình 3.6. Bó tóc với số sợi khác nhau ............................................................ 63

Hình 3.7. Hai kiểu tóc màu trắng và đen xoắn cùng với gió thổi ................... 63

Hình 3.15. Một số mô hình tóc khi không có lực tác động ............................. 63

Hình 3.12. Một số mô hình tóc khi có lực tác động ........................................ 64

Hình 3.13. Tóc Messy trên plain trong một khung viền với các ..................... 66

điểm điều khiển mass-spring và các bề mặt NURBS xoắn ............................. 66

Hình 3.14. Tóc Messy trên plain trong một khung viền với bề mặt NURBS

xoắn ................................................................................................................. 66

Hình 3.15. Tóc dày, messy trên plain với bề mặt NURBS xoắn ..................... 67

Hình 3.16. Tóc dài, messy trên plain với bề mặt NURBS xoắn ...................... 67

Hình 3.17. Sợi ngắn, cong trên sphere với bề mặt NURBS xoắn ................... 67

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

6

PHẦN MỞ ĐẦU

1. Đặt vấn đề

Đối tượng có một vai trò quan trọng góp phần tạo nên một môi trường thực tại

ảo, vì thực tại ảo thực chất là môi trường 3D gồm có các đối tượng (3D) được sắp

xếp, bố trí theo một trật tự logic theo thực tế và có thể tương tác, chuyển động tùy

thuộc vào từng loại đối tượng khác nhau. Đối tượng trong thực tại ảo có thể là đối

tượng tĩnh, động và đối tượng tổng hợp cả tĩnh và động, đối tượng tồn tại dưới

nhiều hình dạng khác nhau phù hợp với các đối tượng trong thực tế chẳng hạn như

đối tượng là nhân vật con người ảo, để mô phỏng được nhân vật con người ảo này

thì chúng ta cần mô phỏng những thành phần trên cơ thể con người ảo đó như chất

liệu vải quần áo dạng sợi hay bông, mô phỏng các sợi tóc, lông trên nhân vật người

ảo,…

Tùy thuộc vào từng đối tượng khác nhau mà yêu cầu việc mô hình hóa và mô

phỏng đối tượng dạng sợi ở mức độ trung thực khác nhau. Với những ứng dụng

không yêu cầu cao tính trung thực của đối tượng mà yêu cầu về tốc độ tính toán thì

chúng ta có thể mô hình hóa và mô phỏng đối tượng dạng sợi ở mức thô, tức có thể

là hình ảnh, còn những ứng dụng yêu cầu tính trung thực cao và chuyển động tương

tác của mô hình kết quả thì chúng ta cần mô hình hóa và mô phỏng đối tượng dạng

sợi ở mức tinh, tức là cần phải sử dụng mô hình toán học để biểu diễn đối tượng.

Đối tượng dạng sợi có thể là tóc, lưới, vải,... để mô phỏng được những đối

tượng này thì chúng ta cần phải biểu diễn các mô hình của chúng bằng mô hình toán

học. Khi đó, chúng ta mới có thể biểu diễn được các thành phần biến cần thiết để đối

tượng có thể tương tác và chuyển động được như lực hấp dẫn, trọng lực,... Để mô

hình hóa và mô phỏng được những đối tượng dạng sợi trong thực tại ảo, ngày nay đã

có nhiều nhà khoa học trong nước và thế giới đã quan tâm nghiên cứu và họ đã đề

xuất nhiều công trình khoa học khác nhau và cũng có nhiều phương pháp được đề

xuất. Một trong những phương pháp được sử dụng là các mô hình toán học như

đường cong Spline, Be’zier,... Đặc biệt là mô hình NURBS (Non-Uniform Rational

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

B-Spline) [1] được sử dụng phổ biến hơn. Vì các đối tượng dạng sợi như lưới, tóc hay

7

vải,... thường là những đối tượng động và có tính chất cục bộ nên việc sử dụng

NURBS vào biểu diễn và mô phỏng chúng là phù hợp. Chẳng hạn như các nhóm tả

Xu và cộng sự [3]; Noble và cộng sự [1]; Anna Sokol [2]) sử dụng NURBS tổng quát

để mô phỏng sợi tóc và những tương tác, chuyển động của tóc.

Một vấn đề luôn được đặt ra cho những nhà khoa học và nhà nghiên cứu phát

triển các phần mềm trong mô hình hóa và mô phỏng các nhân vật, đối tượng 2D, 3D,

đó là vấn đề về tốc độ xử lý vì một thực tế cho thấy là các dữ liệu trong các bài toán

mô hình hóa và mô phỏng thường quá lớn. Điều này đã dẫn đến ảnh hưởng lớn trong

quá trình mô phỏng các đối tượng này. Trong khi, NURBS tổng quát chủ yếu đáp

ứng về mặt chất lượng mô hình của các đối tượng.

Xuất phát từ thực tế đó, tên đề tài luận văn được lựa chọn là: "Kỹ thuật mô

phỏng đối tượng dạng sợi và ứng dụng mô phỏng tóc trong thực tại ảo" nghiên

cứu một số kỹ thuật nâng cao hiệu quả mô phỏng các đối tượng 3D có hình dạng

sợi,... nhằm tăng tốc độ mô phỏng đối tượng mà vẫn đảm bảo chất lượng mô hình.

Kết quả nghiên cứu của đề tài sẽ được thử nghiệm áp dụng vào mô phỏng đối tượng

dạng sợi như tóc trên nhân vật con người ảo, vì tóc là đối tượng có dạng sợi và đặc

tính hình học giống như sợi nên việc mô phỏng tóc cũng tương tự như mô phỏng

đối tượng dạng sợi.

2. Đối tượng và phạm vi nghiên cứu

a. Đối tượng nghiên cứu

- Đặc tả đối tượng 3D dạng sợi, mảnh như vải, sợi tóc,… với các đặc điểm

như sợi to, nhỏ, dày, mảnh, nặng, nhẹ, gió thổi….

- Các thuật toán giải và ứng dụng trong mô phỏng

- Nghiên cứu ứng dụng xử lý ảnh 3D và ứng dụng

b. Phạm vi nghiên cứu:

- Nghiên cứu lý thuyết về Đồ họa máy tính, Thực tại ảo.

- Nghiên cứu công cụ, phương pháp mô hình hóa đối tượng 3D

- Nghiên cứu các kỹ thuật mô phỏng, hiển thị dữ liệu 3D trong thực tại ảo như

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

mô hình NURBS, Mass Spring, Texture mapping,…

8

- Biểu diễn, trích xuất và mô tả dữ liệu 3D về đối tượng, các đặc trưng.

- Xây dựng chương trình thực nghiệm về mô phỏng tóc trong thực tại ảo.

3. Hướng nghiên cứu của đề tài

- Nghiên cứu lý thuyết, thu thập, phân tích các tài liệu có liên quan đến đối

tượng của đề tài.

- Nghiên cứu các kỹ thuật mô hình hóa, biểu diễn dữ liệu mô hình 3D; Mô

phỏng và hiển thị đối tượng 3D dạng sợi trên cơ sở biểu diễn các đặc trưng của đối

tượng như điểm điều khiển, độ cong, trơn,…

- Cài đặt thử nghiệm, đánh giá, quan sát và hiệu chỉnh ảnh, kết xuất được các

thành phần, thuộc tính,… của đối tượng mô phỏng ra file định dạng nhằm phục vụ

cho các yêu cầu thực tế.

4. Những nội dung nghiên cứu chính

Bố cục như sau:

Đề tài bao gồm phần mở đầu, phần kết luận và 3 chương nội dung được cấu

trúc như sau:

Chương 1: Tổng quan về thực tại ảo và mô phỏng dạng sợi

Trình bày tổng quan về đồ họa máy tính, thực tại ảo, nghiên cứu khái quát về

mô hình hóa 3D, phương pháp mô hình hóa, dựng hình 3D cũng như mô phỏng, vai

trò của mô phỏng và công nghệ mô phỏng trong thực tại ảo. Nghiên cứu tổng quan về

mô phỏng đối tượng dạng sơi, mảnh, trên cơ sở đó dẫn tới đề xuất nghiên cứu thử

nghiệm đối tượng dạng sợi dưới dạng là sợi tóc, mảnh tóc hay mái tóc trên con người

ảo. Đồng thời giới thiệu khái quát về vai trò của tóc cũng như mô hình hóa và điều

khiển các mô hình tóc trên hệ thống con người ảo

Chương 2: Một số kỹ thuật mô phỏng đối tượng dạng sợi

Trình bày ba kỹ thuật mô phỏng, cụ thể: Kỹ thuật mô phỏng sợi dưới dạng ảnh

dựa vào phân chia mô hình 3D thành các vùng tương ứng và kỹ thuật ánh xạ, nhằm

khắc phục hiện tượng biến dạng trong quá trình ánh xạ từ ảnh sợi 2D lên các vùng mô

hình 3D tương ứng; Kỹ thuật mô phỏng sợi sử dụng mô hình NURBS nhằm tăng tốc

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

độ mô phỏng, thể hiện tính cục bộ của sợi dựa vào giảm miền ảnh hưởng của các

9

điểm điều khiển lên một điểm đang xét; Kỹ thuật mô phỏng Mass-Springs thì những

sợi khác nhau, những thuộc tính ràng buộc khác nhau được thiết lập và lựa chọn để

tạo ra những kiểu khác nhau phù hợp với từng yêu cầu cụ thể.

Chương 3: Chương trình thực nghiệm

Trình bày kết quả thử nghiệm hai kỹ thuật mô phỏng: Kỹ thuật mô phỏng dựa vào

mô hình NURBS và Kỹ thuật mô phỏng dựa vào Mass-Springs.

5. Phương pháp nghiên cứu

Phương pháp nghiên cứu của đề tài luận văn được sử dụng là kết hợp giữa

nghiên cứu lý thuyết với nghiên cứu thực nghiệm, cụ thể:

- Phương pháp nghiên cứu lý thuyết: Thu thập tài liệu, đọc hiểu các kiến thức

cơ bản về Đồ họa máy tính, Thực tại ảo; Nghiên cứu một số kỹ thuật mô phỏng,

hiển thị dữ liệu 3D đối tượng dạng sợi dựa vào các đặc điểm của sợi như to, nhỏ,

mật độ, nặng, khô, ướt,...

Tìm hiểu một số công cụ hỗ trợ lập trình, mã nguồn mở OpenGL.

- Phương pháp nghiên cứu thực nghiệm:

+ Nghiên cứu xây dựng cơ sở dữ liệu ảnh 3D về đối tượng mô phỏng.

+ Nghiên cứu, đánh giá và lựa chọn phương pháp, giải pháp công nghệ cài đặt

thử nghiệm với một số mẫu dữ liệu và đánh giá kết quả.

- Phương pháp trao đổi khoa học: Công bố, trao đổi, thảo luận và báo cáo tại

các hội thảo, hội nghị khoa học,…

6. Ý nghĩa khoa học của đề tài

- Nghiên cứu ứng dụng Công nghệ Thực tại ảo vào thực tiễn xây dựng hệ

thống mô phỏng các mẫu tóc.

- Nghiên cứu xây dựng Cơ sở dữ liệu ảnh 3D về sợi.

- Nghiên cứu đề xuất ứng dụng một số kỹ thuật mô phỏng, hiển thị dữ liệu 3D

về mô phỏng sợi.

- Nghiên cứu một số giải thuật, phương pháp để đánh giá độ tin cậy của kết

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

quả mô phỏng.

10

- Là cơ sở khoa học nhằm hỗ trợ nâng cao hiệu quả và thay đổi nhìn nhận về

lĩnh vực ứng dụng Công nghệ thông tin, cụ thể là ứng dụng Thực tại ảo vào mô

phỏng các đối tượng trong thực tế vào môi trường ảo có dạng sợi như lông, tóc,

vải,… Đồng thời, các kết quả của đề tài sẽ còn làm cơ sở khoa học cho việc đề xuất

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

và xây dựng các chương trình ứng dụng cho nhiều ứng dụng thực tế.

11

Chương 1

TỔNG QUAN VỀ THỰC TẠI ẢO VÀ MÔ HÌNH DẠNG SỢI

1.1. Tổng quan về đồ họa máy tính và thực tại ảo

1.1.1. Khái quát về đồ họa máy tính

Lịch sử của đồ họa máy tính ra đời từ rất sớm vào thập niên 1960 được đánh

dấu bởi dự án SketchPad và được phát triển tại Học viện Công nghệ Massachusetts

(MIT) bởi Ivan Sutherland. Kết quả này đã đánh dấu cho một sự tạo mới, hiển thị và

thay đổi được dữ liệu hình ảnh trực tiếp trên màn hình máy tính trong thời gian thực.

Ngày nay, đồ họa máy tính đã trở thành một lĩnh vực phát triển phổ biến của

công nghệ thông tin và đã có nhiều quan điểm khác nhau về đồ họa máy tính. Tuy

nhiên, có một số quan điểm chung được hiểu như sau:

Đồ họa máy tính là một lĩnh vực của khoa học máy tính nghiên cứu về cơ sở

toán học, các thuật toán cũng như các kỹ thuật để cho phép tạo, hiển thị và điều khiển

hình ảnh trên màn hình máy tính. Đồ họa máy tính có liên quan ít nhiều đến một số

lĩnh vực như đại số, hình học giải tích, hình học họa hình, quang học,... và kỹ thuật

máy tính, đặc biệt là chế tạo phần cứng (các loại màn hình, các thiết bị xuất, nhập, các

vi mạch đồ họa,...).

Theo nghĩa rộng hơn, đồ họa máy tính là phương pháp và công nghệ dùng trong

việc chuyển đổi qua lại giữa dữ liệu và hình ảnh trên màn hình bằng máy tính. Đồ họa

máy tính hay kỹ thuật đồ họa máy tính còn được hiểu dưới dạng phương pháp và kỹ

thuật tạo hình ảnh từ các mô hình toán học mô tả các đối tượng hay dữ liệu lấy được

từ các đối tượng trong thực tế.

Với sự phát triển mạnh mẽ của công nghệ phần cứng và phần mềm, cũng như

các yêu cầu khắt khe của con người thì đồ họa máy tính đã phát triển vượt bậc. Ngày

nay, đồ họa máy tính không chỉ đơn thuần là mô hình hoá và hiển thị các đối tượng

vật thể thực vào trong máy tính mà đã phát triển lên một tầng cao mới, đó là đồ họa

máy tính có khả năng tương tác, tức là con người có thể điều khiển, tương tác được

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

với các đối tượng vật thể trong máy tính như điều khiển, tương tác với các đối tượng

12

vật thể trong thế giới thực, đó là thực tại ảo. Như vậy, thực tại ảo là một trong các

lĩnh vực của đồ họa máy tính.

1.1.2. Khái quát về thực tại ảo

Có nhiều khái niệm khác nhau về thực tại ảo, song một cách chung nhất có thể

định nghĩa như sau:

Thực tại ảo là một môi trường ba chiều được phát sinh, tổng hợp và điều khiển

thông qua máy vi tính nhằm mục đích mô phỏng lại thế giới thực hoặc một thế giới

theo tưởng tượng của con người. Đồng thời, thực tại ảo cho phép người dùng thông

qua các thiết bị ngoại vi và bộ chuyển đổi tương tác với những sự vật, hành động của

thế giới ảo giống như tương tác với các sự kiện, hành động của thế giới thực [4,5].

Người sử dụng có thể dịch chuyển một vật trong thế giới ảo, hoặc có thể cảm

nhận được một vật khi chạm vào vật đó. Trong đó thiết bị ngoại vi sẽ làm nhiệm vụ

chuyển những hoạt động của người sử dụng vào bộ chuyển đổi, sau đó bộ chuyển

đổi sẽ chuyển những tín hiệu này thành các tương tác vào môi trường ảo, đồng thời

môi trường cũng chuyển những tác dụng của nó đến bộ chuyển đổi và bộ chuyển

đổi chuyển đến các thiết bị ngoại vi, sau đó các thiết bị ngoại vi sẽ tác động đến

người sử dụng.

Các thiết bị ngoại vi sử dụng trong lĩnh vực thực tại ảo ngày càng hiện đại và

đa dạng. Một trong những thiết bị phải kể đến là hệ thống HMD (Head-Mounted

Display). Hệ thống này gồm có hai màn hình gắn trực tiếp vào hai mắt, cho phép

bạn nhìn, cảm nhận thế giới ảo như là không gian trong thế giới thực và một thiết bị

rất nhạy nhằm xác định vị trí góc quay của HMD. Từ đó, hệ thống sẽ tính toán góc

nhìn và vị trí của bạn trong thế giới ảo.

Ngoài ra, còn có một hệ thống tương tự như HMD là BOOM (Binocular

Omni-Orientation Monitor), song chúng có một vài điểm khác, ví dụ như BOOM

không dùng mũ gắn trên đầu mà dùng một cái cần gắn màn hình vào một đầu có tay

cầm ở màn hình. Khi bạn nhìn vào màn hình dịch chuyển nó, lập tức thiết bị nhạy

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

cũng dịch chuyển và theo đó góc nhìn, vị trí nhìn của bạn cũng thay đổi.

13

a) Hệ thống HMD b) Hệ thống BOOM

Hình 1.1. Hệ thống thiết bị

Ngày nay, các thiết bị trên đã và đang được phát triển hoàn thiện hơn, công

nghệ mới ngày càng đưa ra nhiều thiết bị hiện đại hơn cho phép con người tiến gần

tới thực tại ảo hơn, như: găng tay dữ liệu, áo dữ liệu và các thiết bị đầu vào ba chiều

như máy quét 3 chiều, máy quay 3 chiều,…

Thực tại ảo là một môi trường 3D và sử dụng một lượng lớn các thông tin đồ

hoạ và các thông tin này luôn luôn biến đổi. Do đó, trong các ứng dụng thực tế

không thể dùng các phương pháp thông thường để truy cập bộ nhớ đồ họa, mà phải

dùng phương pháp truy cập trực tiếp bộ nhớ và sử dụng bộ tăng tốc đồ hoạ. Vì vậy,

người ta cần phần mềm để truy cập trực tiếp bộ nhớ và điều khiển tăng tốc đồ hoạ.

Hiện nay, một số chuẩn phần mềm được sử dụng phổ biến như DirectX, OpenGL,

MiniGL,...

1.1.3. Các lĩnh vực ứng dụng cơ bản của thực tại ảo

Thực tại ảo được ứng dụng vào nhiều lĩnh vực trong đời sống xã hội, dưới

đây minh hoạ một số lĩnh vực ứng dụng cụ thể:

Khoa học quân sự, quốc phòng: Hiện nay, những ứng dụng của thực tại ảo

trong lĩnh vực này rất phong phú như huấn luyện quân lính, thử nghiệm các loại vũ

khí, các phương tiện chiến tranh, bản đồ hoá từng khu vực,...

Giáo dục và đào tạo: Thực tại ảo đã, đang và sẽ trở thành một công cụ hữu

hiệu trong giáo dục, đặc biệt là với trẻ em. Ngoài ra, nó cũng là một phương tiện

giáo dục rất mạnh đối với một số ngành nghề đòi hỏi phải thực hành như huấn

luyện phi công, lái xe,...

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Y học: Việc ứng dụng thực tại ảo vào y học khá phong phú. Đặc biệt ở Mỹ,

14

trong phẫu thuật, bác sĩ đã có thể tiến hành các cuộc phẫu thuật trong môi trường

ảo, không cần có bệnh nhân mà vẫn như đang phẫu thuật một bệnh nhân thật. Các

bác sĩ cũng có thể tiến hành các cuộc phẫu thuật từ xa thông qua các thiết bị của

thực tại ảo.

Thiết kế xây dựng: Với sự trợ giúp của thực tại ảo, những thiết kế giờ đây

không chỉ đơn thuần là những thiết kế nữa mà nó đã tiến gần tới sản phẩm thực.

Không những con người có thể xem được hình ảnh trực quan của thiết bị cần thiết

kế mà thậm chí người ta còn có khả năng sử dụng các thiết bị đó.

Khoa học cơ bản: Hầu hết các ngành khoa học đều có thể ứng dụng thực tại

ảo, đặc biệt là các ngành như vật lý, hoá học, khảo cổ, sinh học, vũ trụ. Trong vật

lý, có thể mô phỏng lại chính xác các hiện tượng của vật lý một cách trực quan.

Trong khảo cổ học, dựng lại các kiến trúc đã bị chôn vùi, mô phỏng lại các thời kỳ

của tự nhiên.

Thương mại, du lịch: Trong thương mại, đặc biệt là trong ngành quảng cáo,

thực tại ảo đang có một vị trí quan trọng. Nó giúp khách hàng tiếp cận gần hơn với

hàng hoá để có thể đánh giá chất lượng mà không cần có hàng trực tiếp,... Trong du

lịch, với sự hỗ trợ của thực tại ảo khách hàng có thể xem xét cảnh quan của nơi mà

họ sẽ đến để chắc chắn có một chuyến du lịch thú vị.

Trong giải trí: Cho phép mô phỏng các mô hình 3D với những tương tác

trong môi trường ảo kết hợp với âm thanh nổi, các thiết bị vào ra làm cho con người

ta ở trong môi trường ảo mà như ở trong môi trường thực. Điều hấp dẫn hơn là

trong môi trường đó con người có thể thực hiện những điều mà trên thực tế họ

không thể thực hiện được. Với khả năng kết hợp các thiết bị vào ra, các hiệu ứng đồ

hoạ chỉ có thể thấy được trên máy tính, thực tại ảo nhanh chóng trở thành một ứng

dụng không thể thiếu trong các trò chơi.

Trong điện ảnh: Một vài năm gần đây, nhiều bộ phim đã ứng dụng thực tại

ảo và những phương pháp xử lý đồ hoạ mạnh nhằm tạo ra những hiệu ứng, những

cảnh mà trên thực tế không thể thực hiện được. Trong điện ảnh, con người có thể

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

dựng được những thước phim tưởng chừng như không thể dựng được với các kỹ

15

xảo điện ảnh thông thường, ví dụ trong một số cảnh của phim “Vua bọ cạp”,…

Trong hàng không vũ trụ: Xây dựng hệ thống mô phỏng cho phi công tập

luyện kết hợp với các thiết bị phần cứng để tạo ra một môi trường làm cho con

người tưởng như ở trên một chiếc máy bay thật và mọi thứ diễn ra như ngoài thực

tế. Hệ thống mô phỏng này cho phép người phi công thực hiện những chuyến bay

đến các sân bay đã được xây dựng sẵn với các tình huống nhằm nâng cao kỹ năng

xử lý tình huống như trong thực tế.

Trong mô phỏng chất liệu: Chất liệu đóng một vai trò rất quan trọng trong

thực tại ảo, nó góp phần tạo ra sự phong phú đa dạng của các đối tượng 3D. Chất

liệu được ứng dụng vào việc mô phỏng cho nhiều đối tượng khác nhau, do đó nó

gồm nhiều loại chất liệu khác nhau như gỗ, đá, kim loại, nước, vải, lông, tóc,…

Chẳng hạn như mô phỏng các dụng cụ phòng thí nghiệm “ống nghiệm, đũa thuỷ

tinh, bình đựng dung dịch”, “bàn gỗ, giá đỡ, đinh ốc”. Tóc là một loại chất liệu

không thể thiếu trên con người ảo, vì vậy việc mô hình hoá và mô phỏng con người

ảo thì chúng ta bắt buộc phải sử dụng đến tóc. Như vậy, có thể nói chất liệu được

ứng dụng phổ biến trong việc mô hình hoá và mô phỏng các đối tượng trong thực

tại ảo.

1.2. Khái quát mô hình hóa và mô phỏng trong thực tại ảo

1.2.1. Mô hình hóa trong thực tại ảo

1.2.1.1. Tổng quan về mô hình hóa 3D

Trong kỹ thuật biểu diễn, người ta phân thành 2 nhóm : Mô hình hóa vật thể

và Mô hình hóa hình học.

Kỹ thuật mô hình hóa hình học được phát triển trong các ngành công nghiệp

tự động hóa và chủ yếu được sử dụng để thiết kế các hình dạng của xe hơi. Hiện

nay, mô hình này còn được ứng dụng trong các ngành như công nghiệp hàng không,

hải quân,... và một số lĩnh vực khác. Mô hình này cũng hỗ trợ chính cho việc điều

khiển về mặt hình dạng.

Kỹ thuật mô hình hóa vật thể được xây dựng dựa trên các thông tin biểu diễn

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

đầy đủ, chính xác, rõ ràng một đối tượng trong không gian, chúng có thể tạo ra các

16

mô hình trên máy tính với khả năng phân loại bất kỳ điểm nào trong không gian 3

chiều : phía trong, phía ngoài, hoặc là trên bề mặt của đối tượng.

1.2.1.2. Mô hình hóa 3D

Hai mô hình cơ bản của ứng dụng đồ họa là dựa trên mẫu số hóa và dựa trên

đặc trưng hình học. Trong ứng dụng đồ họa dựa trên mẫu số hóa thì các đối tượng

đồ họa được tạo ra bởi lưới các điểm ảnh rời rạc. Các điểm ảnh này có thể được tạo

ra bằng các chương trình vẽ, máy quét,... Các điểm ảnh này mô tả tọa độ xác định vị

trí và giá trị mẫu. Thuận lợi của ứng dụng này là dễ dàng thay đổi ảnh bằng cách

thay đổi màu sắc hay vị trí của các điểm ảnh, hoặc di chuyển vùng ảnh từ nơi này

sang nơi khác. Tuy nhiên, điều bất lợi là không thể xem xét đối tượng từ các góc

nhìn khác nhau. Ứng dụng đồ họa dựa trên đặc trưng hình học bao gồm các đối

tượng đồ họa cơ sở như đoạn thẳng, đa giác,... Chúng được lưu trữ bằng các mô

hình và các thuộc tính. Ví dụ : đoạn thẳng được mô hình bằng hai điểm đầu và cuối,

có thuộc tính như màu sắc, độ dày. Người sử dụng không thao tác trực tiếp trên các

điểm ảnh mà thao tác trên các thành phần hình học của đối tượng.

Việc tạo mô hình 3 chiều thường thông qua máy quét 3 chiều hoặc các phần

mềm chuyên dụng. Hiện nay, có rất nhiều phần mềm chuyên dụng xử lý 3D khác

nhau như: Maya, 3DS Max, Bryce 3D, InfiniD, Soft Image, … nhưng được đánh

giá mạnh nhất và hay sử dụng nhất là hai phần mềm: Maya và 3DS Max. Hai phần

mềm này đều là công nghệ chuẩn 3 chiều.

Với phạm vi của đề tài này, việc tạo ra các mô hình 3 chiều với các hiện tượng

gắn với nó là một đòi hỏi tất yếu. Luận văn trình bày kỹ thuật tiếp cận trong việc tạo

mô hình 3 chiều trên cơ sở kết hợp 2 phần mềm tạo mô hình 3 chiều thông dụng

hiện nay là Maya và 3DS Max.

Maya, 3DS Max cũng như các phần mềm tạo mô hình 3 chiều khác giúp tạo

mô hình 3 chiều mô phỏng thế giới thực. Nó có các đối tượng nguyên thuỷ như hình

cầu, hình trụ, hình hộp, mặt phẳng, đường cong,…Từ các đối tượng nguyên thuỷ

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

này ta sử dụng các thao tác như dịch chuyển, xoay, co giãn cùng với các kỹ thuật

17

chỉnh sửa như cắt xén, mở rộng, thêm bớt… để tạo nên đối tượng mong muốn

trong thế giới thực.

Hình 1.2. Từ trái sang phải là các thao tác dịch chuyển, xoay, co giãn, ứng với

mỗi trục toạ độ là một màu.

Sau đó các đối tượng sẽ được thêm xương (nếu có), tính chất bề mặt (như màu

sắc, da, tóc , mắt …) và được tạo các chuyển động mô phỏng một cách sinh động

các thể hiện của đối tượng trong thế giới thực.

Khi làm việc với các phần mềm ta sẽ thao tác trên 4 khung nhìn khác nhau của

đối tượng, 4 khung nhìn này sẽ cho ta nhìn được đối tượng ở các góc độ khác nhau

một cách đồng thời, những hình ảnh dưới đây minh họa điều này rất rõ:

Hình 1.3. Các khung nhìn khác nhau.

Ta có hệ trục tọa độ 3 chiều XYZ, màu xanh lam ứng với trục Y, đỏ với trục X

và xanh đậm với trục Z. Góc trên phải là khung làm việc cho phép ta thao tác trong

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

3 chiều, 3 góc còn lại cho phép ta làm việc ở 3 mặt cắt của mô hình. Với các khung

18

nhìn này ta có thể thao tác dễ dàng hơn, khi một thay đổi xuất hiện ở một khung

nhìn sẽ cho hiệu ứng đối với các khung nhìn khác.

Bên cạnh hệ trục tọa độ XYZ ta còn có hệ tọa độ UV, hệ tọa độ UV bao bọc

bề mặt theo 2 chiều trái sang phải và dưới lên trên. Có thể hình dung ra hệ tọa độ

này như là các đường kinh tuyến và vĩ tuyến của trái đất. Hệ tọa độ này chủ yếu

được sử dụng trong quá trình thêm tính chất bề mặt cho mô hình.

1.2.1.3. Các kỹ thuật dựng hình chính 3D

Qua nghiên cứu các phần mềm dựng mô hình khác nhau cho thấy, nói chung

làm việc trong môi trường 3D có các công tác chính sau:

- Kỹ thuật tạo mô hình (modelling): Đây là phần sử dụng các công cụ

dựng hình để tạo ra các mô hình, chỉnh sửa chúng theo ý muốn. Từ đó các vật thể

3D được định hình;

- Kỹ thuật hoạt hoá nhân vật (animation): gồm những thao tác để gắn nhân

vật vào một tập các khoá (key). Mỗi một khoá đại diện cho vị trí, hình dạng của

nhân vật tại những thời điểm khác nhau. Sự chuyển động của nhân vật là sự thể hiện

nhân vật tại mỗi vị trí khoá này;

- Kỹ thuật kết xuất (rendering): Đây là phần để gán vật liệu lên các nhân

vật và tạo kết xuất ;

Vậy chúng ta có thể hiểu kỹ thuật tạo mô hình (Modeling) là kỹ thuật tạo ra

các khung dựng của các đối tượng, ta có thể tưởng tượng giai đoạn này là quá trình

tạo ra khung xương cho cơ thể một con người, sau đó nhờ các kỹ thuật thể hiện

(rendering) để thêm da thịt cho con người đó, và tiếp theo là nhờ kỹ thuật tạo hoạt

họa (animation) để tạo hoạt động cho người. Ta có thể hiểu rõ công việc của từng

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

giai đoạn bằng các hình ảnh minh họa ở hình 1.4 và hình 1.5.

19

Hình 1.4. Khung dựng của một quả Hình 1.5. Quả bóng sau khi đã qua

bóng, được tạo ra sau bước tạo bước thể hiện

mô hình

Với đề tài này, phạm vi khai thác dừng lại ở tìm hiểu các kĩ thuật tạo đối

tượng và kết xuất. Nên phần việc chính hay sử dụng là modelling và rendering

Có nhiều phương pháp khác nhau để mô tả các đối tượng 3D. Tùy thuộc vào

từng đối tượng cụ thể, ta dùng phương pháp sao cho phù hợp với thuộc tính của các

loại đối tượng đó. Chẳng hạn, để biểu diễn các đối tượng Euclid đơn giản như là các

khối ellipse, khối đa diện ta sử dụng các mặt đa giác và mặt bậc hai. Để biểu diễn

các mặt tròn xoay và các đối tượng dùng để thiết kế các mô hình máy bay, bánh

răng và các cấu trúc công nghệ khác thường được biểu diễn thông qua mặt cong

(curves). Các phương pháp tiếp cận thủ tục như Fractal cho phép chúng ta biểu diễn

một cách chính xác các đối tượng như mây, thảm cỏ và các đối tượng tự nhiên khác.

Biểu diễn mặt lưới 3D : Việc sử dụng mô hình khung lưới cho phép ta hình

dung được kết cấu bên trong của một mô hình 3D bằng cách xoay chuyển đối tượng

và chọn lựa xóa các đường ẩn (những đường mà thường khi người ta không thể

trông thấy thông qua các mặt phẳng cắt ngang).

Khi thể hiện bằng mô hình này, các đối tượng này không giống thực tế lắm. Vì

vậy, người ta dùng các kỹ thuật tạo bóng và loại bỏ các đường và mặt khuất. Mô

hình này thường nhanh nên người ta thường dùng nó trong việc xem phác thảo các

đối tượng, đặc biệt là trong các hệ CAD.

Một dạng thông thường của lưới đa giác là các dãy tam giác. Khi đa giác được

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

mô tả bởi nhiều hơn 3 đỉnh, các đỉnh của nó có thể không đồng phẳng. Điều này có

20

thể dẫn đến các lỗi tính toán. Một phương pháp đơn giản là phân đa giác này thành

các tam giác.

Biểu diễn bề mặt trơn tham số : Trong trường hợp các đối tượng thực sự phức

tạp, người ta thường dùng một hay nhiều mặt cong trơn ghép nối lại với nhau. Mỗi

thành phần dùng để ghép nối được gọi là mặt vá.

1.2.2. Mô phỏng trong thực tại ảo

1.2.2.1. Tổng quan về mô phỏng

Theo cách truyền thống, việc tương tác với máy tính được thực hiện thông qua

các thiết bị như bàn phím, chuột hay Joystick/Trackball/ Keyboard/Styplus để cung

cấp thông tin đầu vào và sử dụng khối hiển thị trực quan để nhận thông tin đầu ra từ

hệ thống. Với sự ra đời của các hệ thống thực tại ảo, các phương thức giao tiếp mới

được phát triển cho phép người sử dụng tương tác một cách tích cực với máy tính.

Công nghệ VR hiện đang rất phát triển trên thế giới. Hiện nay, ở nước Công hòa

Dân chủ Nhân dân Lào, công nghệ VR đang dần được chú ý bởi những thế mạnh

của nó chẳng hạn như cho phép tạo và hiển thị được dữ liệu lớn. Điều này rất quan

trọng cho những ứng dụng như là tạo thiết kế đô thị, ứng phó với các tình huống

khẩn cấp, du lịch, giải trí, quản lý giao thông, xây dựng những dự án quy mô lớn, và

giáo dục. Trong những lĩnh vực này, thì việc trực quan hóa tương tác của mô hình là

sự tối quan trọng cho sự phân tích chiều sâu của tập hợp dữ liệu. Mục đích của hệ

thống là mô phỏng các hiệu ứng quan sát và cảm nhận khi thị sát trên một khu vực

nhất định. Hệ thống này là sự kết hợp các kỹ thuật mô phỏng sử dụng đồ hoạ 3D

với các thiết bị phần cứng.

Mô phỏng là quá trình "bắt chước” một hệ thống có thực. Các chương trình

máy tính hiện nay có thể tạo ra các Models Mô phỏng như Mô phỏng về binh khí kỹ

thuật, tính năng kỹ chiến thuật của nó, khả năng khai thác sử dụng trên thực địa,

thậm chí là các hoạt động tác chiến trên chiến trường không gian ảo với thời gian

thực.

Mô phỏng có thể được định nghĩa là một quá trình tạo một mô hình (chẳng

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

hạn như để mô tả một khái niệm trừu tượng) của một hệ thống có sẵn (như một

21

chương trình học tập, huấn luyện, đào tạo, tính năng kỹ chiến thuật của các trang

thiết bị và khả năng của chúng trong các hoạt động tác chiến trên chiến trường, các

hoạt động của chiến sỹ các quân binh chủng khác nhau trên chiến trường, các hoạt

động tác chiến của các đơn vị trên chiến trường trong các điều kiện thời tiến, khí

hậu, địa hình v.v…) để xác định và hiểu rõ những nhân tố điều khiển hệ thống, hay

dự đoán/dự báo hành vi hoạt động của hệ thống trong tương lai. Phần lớn các hệ

thống đều được mô tả định tính, định lượng dựa trên cơ sở của những thuật toán

ngẫu nhiên, được lập trình theo những nguyên tắc giảng dạy, học tập, huấn luyện,

diễn tập được mô phỏng.

Mô phỏng là quá trình "bắt chước” một hệ thống có thực. Các chương trình

máy tính hiện nay có thể tạo ra các Models 2D & 3D như Mô phỏngvề binh khí kỹ

thuật, tính năng kỹ chiến thuật của nó, khả năng khai thác sử dụng trên thực địa,

thậm chí là các hoạt động tác chiến trên chiến trường không gian ảo với thời gian

thực.

Mô phỏng là một công cụ hiệu quả và quan trọng bởi nó giúp người sử dụng

các phương thức các thiết kế lựa chọn (hoặc kế hoạch tác chiến, phương án sử dụng

lực lượng, đồng thời có thể lựa chọn đến tối ưu hóa các giải pháp đề ra, phát huy

cao nhất năng lực cán bộ chiến sỹ) đánh giá chính xác kế quả mà không cần phải

thực nghiệm trên hệ thống thực (điều này có thể tiêu tốn nhiều kinh phí, thời gian,

nguy hiểm và tốn nhiều thời gian cho công tác chuẩn bị). Nó cho phép người cán

bộ, chiến sỹ trả lời câu hỏi "Điều gì sẽ xảy ra nếu…?” về một quyết định mà không

cần trải nghiệm thật sự trên chính kết quả của quyết định đó.

1.2.2.2. Công nghệ mô phỏng

Công nghệ mô phỏng không phải là công nghệ đòi hỏi những thiết bị rất hiện

đại. Thông thường khi đào tạo, huấn luyện trong điều kiện thực tế, chúng ta đã sử

dụng nhiều mô hình mô phỏng, như các khí cụ, phương tiện huấn luyện như các mô

hình cắt bộ là những công cụ mô phỏng đơn giản đầu tiên giúp người chiến sỹ, học

viên hiểu được tính năng, cấu tạo và thông qua lời giảng của cán bộ huấn luyện, đã

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

hiểu được cơ bản những vấn đề cần truyền đạt.

22

Công nghệ mô phỏng được sử dụng thường xuyên trong các lĩnh vực khác

nhau như: các hoạt động diễn tập, huấn luyện tác chiến cấp phân đội, từ tổ 3 người

đến cấp tiểu đội, trung đội và các cấp cao hơn thông qua sa bàn, được đắp nổi, bản

đồ chiến thuật, đồng thời các hoạt động diễn tập của ban chỉ huy các đơn vị được

diễn ra trên các sa bàn, sơ đồ, bản đồ mô phỏng này.

Sự phát triển mạnh mẽ của khoa học công nghệ quân sự, với sự ra đời rộng

rãi của các loại vũ khí hiện đại đã đưa đến các phương thức tác chiến hiện đại, các

mô hình chiến tranh trong tương lai càng ngày càng trở lên phức tạp hơn. Không

gian chiến trường đã chiều, đa hướng công kích với rất nhiều mũi tấn công tàng

hình, bí mật, bất ngờ, từ trên vũ trụ, trên không, trên mặt đất, trên đại dương và dưới

đại dương với sức công phá rất lớn, độ chính xác cao và có tính hủy diệt mục tiêu

rất nghiêm trọng.

Đứng trước những biến đổi vô cùng phức tạp của chiến tranh hiện đại, ngoài

nhiệm vụ từng bước hiện đại hóa các lực lượng vũ trang theo yêu cầu nhiệm vụ,

người học viên nghiên cứu công tác quốc phòng cần hiểu biết sâu, rộng và rất kỹ

các phương tiện chiến tranh của các nước có nền công nghiệp quân sự hiện đại, nắm

chắc các loại vũ khí trang thiết bị có trong biên chế, cần có kiến thức sâu rộng, hiểu

rõ ta và địch, khả năng của từng loại vũ khí trang bị có thể sử dụng trên chiến

trường, có trình độ kỹ chiến thuật cao để có thể sử dụng các loại vũ khí thông

thường, hiện có trong biên chế để đánh thắng vũ khí công nghệ cao, có khả năng chỉ

huy và điều khiển các hoạt động tác chiến chính xác trong môi trường chiến tranh

hiện đại. Để thực hiện những yêu cầu nói trên, các nước có nền công nghiệp quân

sự hiện đại đã đưa công nghệ mô phỏng 3D như một công nghệ ứng dụng trong

điều khiển chiến trường. Với những nước có nền công nghiệp phát triển, đã từng

bước ứng dụng công nghệ mô phỏng vào các hoạt động huấn luyện, giảng dạy và

đào tạo, từng bước đưa công nghệ mô phỏng 3D vào thực tế nhiệm vụ bảo vệ Tổ

quốc.

Công nghệ mô phỏng 2D 3D ( 2D-3D simulation) có sự phát triển đặc thù,

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

hoàn toàn không giống như sự phát triển của các ngành công nghệ ứng dụng khác

23

như công nghệ phần mềm hoặc khai thác sử dụng công nghệ hiện đại nhập khẩu của

nước ngoài, giống như sự phát triển của xã hội, công nghệ mô phỏng 3D phải phù

hợp với thực tế tình hình công tác quốc phòng và quân sự của một môi trường kinh

tế. Có thể nói, phát triển công nghệ mô phỏng 3D phải phù hợp với thực tế biên chế

vũ khí trang bị, trình độ khoa học công nghệ của đất nước, mặt bằng tri thức của xã

hội.

Chính vì vậy, phát triển công nghệ mô phỏng 3D thường bắt đầu từ việc mô

hình hóa các đối tượng thực trong gian đoạn ngày nay.

1.3. Khái quát về đối tượng dạng sợi và mô phỏng

1.3.1. Khái quát về đối tượng dạng sợi

Đối tượng có một vai trò quan trọng góp phần tạo nên một môi trường thực

tại ảo, vì thực tại ảo thực chất là môi trường 3D gồm có các đối tượng (3D) được

sắp xếp, bố trí theo một trật tự logic theo thực tế và có thể tương tác, chuyển động

tùy thuộc vào từng loại đối tượng khác nhau. Đối tượng trong thực tại ảo có thể là

đối tượng tĩnh, động và đối tượng tổng hợp cả tĩnh và động, đối tượng tồn tại dưới

nhiều hình dạng khác nhau phù hợp với các đối tượng trong thực tế, có đối tượng

dạng khối, sợi,... Trong bài báo này, nhóm tác giả tập trung vào nghiên cứu đề xuất

kỹ thuật nâng hiệu quả mô phỏng đối tượng dạng sợi như: tóc, lưới, vải,...

Trong thực tế, tùy thuộc vào từng đối tượng hay ứng dụng khác nhau mà yêu

cầu việc mô hình hóa và mô phỏng đối tượng dạng sợi ở mức độ trung thực khác

nhau. Với những ứng dụng không yêu cầu cao tính trung thực của đối tượng mà yêu

cầu về tốc độ tính toán thì chúng ta có thể mô hình hóa và mô phỏng đối tượng dạng

sợi ở mức thô, tức có thể là hình ảnh, còn những ứng dụng yêu cầu tính trung thực

cao và chuyển động tương tác của mô hình kết quả thì chúng ta cần mô hình hóa và

mô phỏng đối tượng dạng sợi ở mức tinh, tức là cần phải sử dụng mô hình toán học

để biểu diễn đối tượng. Bài báo này tập trung vào nghiên cứu mô phỏng đối tượng

dạng sợi ở mức tinh có sử dụng mô hình toán học.

Đối tượng dạng sợi thường là đối tượng động như tóc, lưới, vải,... Vì vậy, để

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

mô phỏng được những đối tượng dạng này thì chúng ta bắt buộc phải biểu diễn các

24

mô hình của chúng bằng mô hình toán học. Khi đó, chúng ta mới có thể biểu diễn

được các thành phần biến cần thiết để đối tượng có thể tương tác và chuyển động

được như lực hấp dẫn, trọng lực,... Để mô hình hóa và mô phỏng được những đối

tượng dạng sợi trong thực tại ảo, ngày nay đã có nhiều nhà khoa học trong nước và

thế giới đã quan tâm nghiên cứu và họ đã đề xuất nhiều công trình khoa học khác

nhau và cũng có nhiều phương pháp được đề xuất. Một trong những phương pháp

được sử dụng là các mô hình toán học như đường cong Spline, Be’zier,... Đặc biệt

là mô hình NURBS (Non-Uniform Rational B-Spline) được sử dụng phổ biến hơn.

Vì các đối tượng dạng sợi như lưới, tóc hay vải,... thường là những đối tượng động

và có tính chất cục bộ nên việc sử dụng NURBS vào biểu diễn và mô phỏng chúng

là phù hợp. Chẳng hạn như các nhóm tả Xu và cộng sự; Noble và cộng sự; Anna

Sokol sử dụng NURBS tổng quát để mô phỏng sợi tóc và những tương tác, chuyển

động của tóc.

Hình 1.6. Mô phỏng sợi tóc theo Anna Sokol

Các nhóm tác giả House and Breen [7], Baraff and Witkin [6], Fan and Zhu

[8] sử dụng mô hình NURBS tổng quát để mô phỏng các sợi và mảnh vải, những

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

tương tác của vải.

25

Hình 1.7. Mô phỏng sợi, mảnh vải

Như vậy, NURBS tổng quát có thể được sử dụng tốt để mô hình hóa và mô

phỏng những đối tượng có dạng sợi, mảnh và có tính chất cục bộ, không đều.

Tuy nhiên, một trong những vấn đề vẫn luôn luôn được đặt ra cho những nhà

khoa học và nhà nghiên cứu phát triển lên các công cụ phần mềm trong mô hình hóa

và mô phỏng các nhân vật, đối tượng 2D, 3D, đó là vấn đề về tốc độ xử lý vì một

thực tế cho thấy là các dữ liệu trong các bài toán mô hình hóa và mô phỏng thường

quá lớn. Điều này đã dẫn đến ảnh hưởng lớn trong quá trình mô phỏng các đối

tượng này. Trong khi, NURBS tổng quát chủ yếu đáp ứng về mặt chất lượng mô

hình của các đối tượng.

Trong báo cáo luận văn thạc sỹ, tác giả tập trung vào mô phỏng thử nghiệm

đối với đối tượng dạng sợi, mảnh là những sợi tóc, mái tóc,...

1.3.2. Vai trò của mô phỏng tóc trong thực tại ảo

Mái tóc đẹp là niềm tự hào của mọi người, đặc biệt là đối với phụ nữ. Ông bà

ta đã có câu "Cái răng, cái tóc là góc con người", chứng tỏ tầm quan trọng của tóc

không phải nhỏ. Mái tóc cũng là một trong những yếu tố quyết định dáng vẻ của

mỗi người. Chúng ta có thể nhận ra bạn bè, người thân qua kiểu dáng cũng như các

đặc điểm của tóc. Mái tóc đẹp làm ta trở nên duyên dáng hơn. Với đà tiến bộ của xã

hội ngày nay, nhiều người còn cho rằng một mái tóc đẹp sẽ giúp chúng ta dễ thành

công hơn trong nghề nghiệp.

Thông thường mái tóc của chúng ta có khoảng trên 100 nghìn sợi. Đôi khi dựa

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

vào tóc chúng ta có thể phân biệt được đó là đàn ông hay đàn bà, chủng tộc của

26

người đó là người gì, thậm chí nhìn vào kiểu dáng tóc của người nào đó ta có thể

đoán được tính cách của người đó…

Với những ứng dụng của thực tại ảo thì việc thiết kế ra mô hình tóc càng trở

nên quan trọng góp phần vào việc mô phỏng thế giới thực qua môi trường ảo.

Không những thế nó là một điểm nhấn cho sự phát triển của các ngành công nghệ

cao đó là kỹ xảo điện ảnh và game online... Từ các mô hình tóc được thiết kế nhà

sản xuất sẽ tạo ra các nhân vật với các sắc thái và tính cách phù hợp với nó. Bên

cạnh đó, việc tạo ra được mô hình tóc cũng đóng góp phần quan trọng trong an ninh

phòng chống tội phạm, bằng cách xây dựng lại khuôn mặt của tội phạm qua sự mô

tả của nhân chứng, như vậy sẽ giúp quá trình điều tra được nhanh chóng. Ngoài ra,

sự thiết kế thành công mô hình tóc sẽ kéo theo việc phát triển thiết kế mô hình lông

dựa trên nền tảng cơ sở mô hình tóc, từ đó sẽ mở rộng được cách thức biểu diễn và

mô phỏng đối tượng trong thế giới thực.

Không những thế, việc tạo ra các mô hình tóc với các mẫu, kiểu, dáng, màu

sắc…khác nhau sẽ ảnh hưởng rất lớn tới quá trình làm các hiệu ứng tương tác của

chúng sau này. Điều này rất quan trọng khi ta phối cảnh trong một không gian mà

có các tác nhân tương tác như gió, nước, lực hấp dẫn, trọng lực,… Công việc mô

phỏng tóc là một công việc yêu cầu nhiều thời gian và công sức, trí tuệ chứ không

phải chuyện ngày một ngày hai là có thể giải quyết ngay.

Ngoài ra, một vấn đề không thể thiếu trong hệ thống mô phỏng tóc trên con

người ảo là hiệu ứng tóc. Hiệu ứng tóc tạo ra cảm giác thật, lôi cuốn cho hệ vốn

không phải là những hình ảnh thật, nó tạo ra sự hài hoà, nhẹ nhàng cho những

chuyển động của đối tượng. Việc thể hiện thành công hiệu ứng tóc trên mỗi đối

tượng sẽ cho phép ta đi sâu vào thế giới ảo để tạo ra những giá trị thực cho cuộc

sống con người. Như vậy, chất liệu tóc có một vai trò hết sức quan trọng trong hệ

thống mô phỏng con người ảo.

1.3.3. Mô phỏng tóc

Kỹ thuật mô hình hoá và điều khiển các mô hình đối tượng đã và đang đóng

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

vai trò quan trọng trong nhiều lĩnh vực như khoa học, công nghệ, sản xuất và an

27

ninh quốc phòng. Trong điều khiển các mô hình đối tượng, việc xây dựng mô hình

toán học sát với mô hình thực là vấn đề được quan tâm hàng đầu của các chuyên

gia. Việc nghiên cứu và mô hình hoá các mô hình phục vụ cho mô phỏng có xét đến

các yếu tố chất liệu của các đối tượng tham gia là một trong các hướng nghiên cứu

đang được quan tâm nhiều trong lĩnh vực thực tại ảo.

Do bài toán mô phỏng có xét đến yếu tố chất liệu của các đối tượng tham gia,

mà chất liệu có nhiều loại khác nhau như gỗ, nước, vải, kim loại, lông, tóc,... Luận

án này tập trung nghiên cứu mô phỏng về một loại chất liệu cụ thể, đó là tóc nhằm

hỗ trợ trong hệ thống mô phỏng con người ảo.

Tóc là một trong những thành phần quan trọng, không thể thiếu đối với nhiều

đối tượng như: con người, động vật,... Tóc cũng là lĩnh vực có nhiều nghiên cứu đã

và đang đưa vào ứng dụng một cách hiệu quả bởi vì tóc gắn liền với nhiều đối tượng

trong cuộc sống. Ngoài ra, việc mô phỏng tóc còn làm cơ sở cho mô phỏng lông, vì

lông gắn liền với nhiều động vật khác nhau. Như vậy, có thể nói, tóc được ứng dụng

mô phỏng trên nhiều đối tượng khác nhau.

Trong mô phỏng con người ảo, tóc có một vai trò quan trọng, là nền tảng cơ

bản, góp phần vào việc tạo ra và mô phỏng những con người ảo. Mặt khác, tóc là

đối tượng phức tạp với số lượng lớn, nhiều kiểu dáng, hình dạng, màu sắc và tương

tác giữa tóc với tóc, giữa tóc với các đối tượng khác,... Nên trong quá trình mô

phỏng tóc, cần phải dựa trên những đặc trưng về cấu trúc, kiểu dáng,... của tóc

nhằm mô phỏng tính chân thực của tóc. Tuy nhiên, để đưa ra được một cấu trúc tóc,

sự xuất hiện và chuyển động trực quan còn mở ra nhiều thách thức.

Hai khâu quan trọng trong mô phỏng tóc trên hệ thống con người ảo là mô

hình hoá và điều khiển các mô hình tóc nhằm mô phỏng tính chân thực của mô hình

tóc ảo so với mô hình tóc thực tế.

- Trong khâu mô hình hoá tóc: Bao gồm việc mô hình hoá tóc dưới dạng

ảnh tóc, sợi và bó tóc,… Đồng thời, khâu này còn bao gồm cả việc tạo hình dạng

của tóc, kết hợp các cấu trúc hình học của tóc và xác định mật độ, phân bố và định

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

hướng của tóc nhằm thiết kế kiểu dáng tóc hợp lý.

28

- Trong khâu điều khiển mô hình tóc: Bao gồm việc mô phỏng chuyển

động của tóc dưới dạng sợi, bó tóc và sự xuất hiện chi tiết của tóc. Bên cạnh đó, khâu

này còn bao gồm cả việc mô phỏng phát hiện và điều khiển va chạm giữa tóc và các

đối tượng khác như đầu hoặc cơ thể, cũng như mô phỏng tương tác lẫn nhau giữa tóc

với tóc,… Ngoài ra, khâu này còn gồm việc mô phỏng tóc chuyển động theo thời

gian thực, đặc biệt là mô phỏng thể hiện kết cấu, màu sắc, độ bóng, kiểu dáng tóc

(styles) và những đặc trưng của tóc như xoáy tóc.

Trong mô phỏng tóc, chúng ta cần phải nghiên cứu về mô hình, kết cấu tóc mà

bắt đầu từ việc quan sát từng sợi tóc riêng lẻ hay những đường cong một chiều trong

không gian 3 chiều. Trên nền tảng đó, nghiên cứu cách tiếp cận để các sợi tóc có thể

liên kết lại thành một bó tóc, từ đó mô phỏng một mái tóc đầy đủ.

Mặt khác, trong quá trình mô phỏng, tuỳ thuộc đặc điểm của mỗi kiểu tóc đối

với từng ứng dụng mà có thể sử dụng những phương pháp mô hình hoá, mô phỏng

khác nhau. Chẳng hạn, với những ứng dụng trong phẫu thuật thẩm mỹ thì cần phải

mô hình hoá được tóc dựa vào các tính chất hoá học và vật lý chính xác của tóc để

thử nghiệm và phát triển sản phẩm. Trong công nghiệp giải trí với đặc trưng hình

ảnh thì mô hình hoá tóc đúng về mặt vật lý.

Như vậy, mục tiêu nghiên cứu mô phỏng tóc là tập trung mô phỏng cấu trúc,

hình thái của tóc, điều khiển các hình dạng, sự chuyển động và những thuộc tính của

tóc sao cho gần với thực tế nhất.

1.3. Kết luận và vấn đề nghiên cứu

Chương này đã trình bày tổng quan về nghiên cứu mô phỏng khái quát các

đối tượng dạng sợi, mảnh trong thực tại ảo, cụ thể:

- Nghiên cứu tổng quan về đồ họa máy tính, thực tại ảo, nghiên cứu khái quát

về mô hình hóa 3D, phương pháp mô hình hóa, dựng hình 3D cũng như mô phỏng,

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

vai trò của mô phỏng và công nghệ mô phỏng trong thực tại ảo.

29

- Nghiên cứu tổng quan về mô phỏng đối tượng dạng sơi, mảnh, trên cơ sở đó

dẫn tới đề xuất nghiên cứu thử nghiệm đối tượng dạng sợi dưới dạng là sợi tóc,

mảnh tóc hay mái tóc trên con người ảo. Đồng thời giới thiệu khái quát về vai trò

của tóc cũng như mô hình hóa và điều khiển các mô hình tóc trên hệ thống con

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

người ảo.

30

Chương 2

MỘT SỐ KỸ THUẬT MÔ PHỎNG ĐỐI TƯỢNG DẠNG SỢI

2.1. Kỹ thuật mô phỏng đối tượng dạng ảnh dựa vào Texture mapping

2.1.1. Giới thiệu

Trong mô phỏng đối tượng dạng sợi chẳng hạn như tóc, một trong những hướng

tiếp cận được sử dụng phổ biến là theo hướng tiếp cận mô phỏng đối tượng dưới dạng

khối, tức là cho phép mô phỏng dưới dạng ảnh 2D, rồi ánh xạ sang mô hình 3D (Koh

và Huang [9,10]; Gibbs[11]; Ward và Kim[12], Bando và cộng sự[13]). Tuy nhiên,

cách này gây ra những biến dạng, tạo ra những chỗ lồi lõm và ảnh hưởng đến quá trình

ánh xạ, vì trường hợp mô hình 3D có khi là mô hình mặt cong.

Để giảm độ cong, khắc phục sự biến dạng và những chỗ lồi lõm khi thực

hiện việc ánh xạ từ ảnh 2D sang mô hình 3D, người ta đã chia mô hình 3D thành

các vùng khác nhau như: Lee và cộng sự [14] chia mô hình da đầu thành 10 vùng,

Kim và Neumann[15] chia mô hình da đầu thành 4 vùng trong khi Liang và

Huang[16] lại chia mô hình da đầu thành 3 vùng.

Trong phần này, luận văn đề xuất một kỹ thuật mô phỏng đối tượng dạng sợi

như tóc,... dưới dạng ảnh dựa vào phân chia mô hình 3D thành các vùng tương ứng.

Việc mô phỏng sẽ được thể hiện thông qua việc ánh xạ các ảnh 2D lên các vùng 3D

tương ứng. Kỹ thuật đề xuất này nhằm giảm bớt độ cong của mô hình 3D, thuận lợi

cho việc ánh xạ các ảnh lên các vùng 3D tương ứng và linh hoạt trong việc mô phỏng

nhiều kiểu sợi (tóc) khác nhau.

Trong luận văn này, sử dụng mô hình 3D là mô hình da đầu như sau:

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 2.1. Phân chia mô hình da đầu 3D thành 6 vùng

31

2.1.3. Ánh xạ các ảnh sợi 2D lên các vùng của mô hình 3D tương ứng

Trong trường hợp này, báo cáo sử dựng mô hình sợi là sợi tóc, đối tượng mô

hình da đầu 3D để thể hiện cho thuận tiện.

Để thực hiện việc ánh xạ các ảnh sợi 2D lên các vùng mô hình 3D tương ứng,

ta sẽ chuẩn bị 6 ảnh sợi (tóc) 2D có kích thước phù hợp, tương ứng với từng vùng

da đầu. Các bức ảnh tóc này thể hiện kiểu tóc mà ta muốn thể hiện cho những nhân

vật cần mô tả. Hình 2.2 là minh họa cho ảnh tóc tương ứng với vùng lưới da đầu của

nam giới.

2

1

3

4

1

3

5

6

4

6

5

a) 6 ảnh che phủ 2D b) 6 vùng da đầu

Hình 2.2. Ảnh che phủ (ảnh tóc) lên vùng lưới da đầu 3D

Việc ánh xạ các ảnh tóc hai chiều sang các vùng da đầu ba chiều tương ứng,

thực chất là thực hiện hàm biến đổi fj, j=1,..,6 từ ảnh tóc hai chiều sang vùng da đầu ba

chiều. Để giải quyết vấn đề này, người ta có thể sử dụng một trong hai cách sau đây:

Cách thứ nhất: Xem mỗi ảnh tóc 2D như là một bề mặt trong không gian R3

) với và ánh xạ fj cần tìm sẽ được xác định trên tập các cặp điểm tương ứng (Pi,

là các điểm tương ứng trên vùng da đầu. i=1..n, Pi là các điểm trên ảnh tóc, còn

Việc tìm này thường dựa trên một tiêu chuẩn tối ưu nào đó, chẳng hạn tổng

độ lệch bình phương tối thiểu

Với mỗi ánh xạ fj:

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

(2.1) fj (x,y,z)= (a1x+b1y+c1z+d1, a2x+b2y+c2z+d2, a3x+b3y+c3z+d3)

32

Khi đó, với

Điều này dẫn đến hệ phương trình:

(2.2)

Việc giải hệ phương trình tuyến tính này thường là phức tạp và phụ thuộc

) trước đó. vào việc lựa chọn các cặp điểm điều khiển (Pi,

Hình dưới đây minh họa quá trình ánh xạ ảnh tóc hai chiều lên vùng da đầu

fj

y

x

(0,0,0)

z

ba chiều thông qua ánh xạ fj.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 2.3. Ánh xạ mảng tóc 2D lên vùng da đầu 3D

33

Cách thứ hai: Chiếu vùng da đầu 3D tương ứng xuống mặt phẳng 2D, khi đó

bài toán ánh xạ các ảnh tóc 2D lên các vùng da đầu 3D trở thành bài toán ánh xạ các

ảnh tóc 2D sang các vùng da đầu 2D thông qua ánh xạ fj ứng với cặp điểm điều

fj

). khiển (Pi,

Hình 2.4. Ánh xạ ảnh tóc 2D sang vùng da đầu 2D

2.1.4. Nội suy các điểm còn lại để đảm bảo ràng buộc trong một vùng tóc

Trong thực tế, khi ánh xạ các ảnh tóc 2D lên các vùng da đầu 3D tương ứng

như trong kỹ thuật ánh xạ trên mục 2.1.3, đôi khi người ta thường chỉ ánh xạ một

phần các điểm của ảnh tóc 2D lên vùng da đầu 3D tương ứng, các điểm còn lại sẽ

được nội suy trên cơ sở các điểm này nhằm đảm bảo sự ràng buộc trong một vùng

tóc và đặc biệt là thể hiện tính cục bộ tại các vị trí khác nhau trên từng vùng. Mặc

dù, kỹ thuật ánh xạ được trình bày mục 2.1.3 đã đảm bảo việc ánh xạ các ảnh tóc

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

vào các vùng da đầu phù hợp trên mô hình hộp sọ 3D.

34

fj

a) Ảnh tóc

b) Nội suy điểm T’ sử dụng ánh xạ fj

Hình 2.5. Nội suy điểm T’ dựa vào điểm T trên ảnh tóc sử dụng ánh xạ fj

), với Với các điểm còn lại không thuộc vào các cặp điểm điều khiển (Pi,

PiAj, Cj, i=1,..,n, j=1,..,6, Aj là sáu ảnh tóc, Cj là sáu vùng da đầu. Chúng ta

chia các điểm trên ảnh tóc Aj thành 2 tập điểm Pax và Pns.

Trong đó:

Pax là tập các điểm điều khiển và tập các điểm sử dụng ánh xạ fj

Pns là tập các điểm nội suy sử dụng ánh xạ fj

- Với các điểm Pax, thực hiện ánh xạ sử dụng fj

P’=fj(P) PPax

- Với mỗi điểm TPns, thực hiện nội suy để xác định điểm T’ trên vùng da

đầu, cụ thể:

+ Tìm một tam giác QuQvQw chứa điểm T và ba điểm Qu, Qv, Qw thuộc Pax.

Tính các hệ số 1, 2, 3 dựa vào diện tích của các tam giác:

1=S(QuQvT)/S(QuQvQw)

2=S(QvQwT)/S(QuQvQw)

3=S(QwQuT)/S(QuQvQw)

Sao cho 1+2+3=1 và 1, 2, 3[0,1]

Khi đó, xác định được điểm TQuQvQw của ảnh tóc Aj ứng với các hệ số

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

1, 2, 3 như sau:

35

T= 1*Qu+2*Qv+3*Qw

+ Xác định ba điểm trên bề mặt da đầu tương ứng với ba điểm

Qu, Qv, Qw trên ảnh tóc bằng ánh xạ fj tìm được ở trên:

=fj(Qu), =fj(Qv), =fj(Qw)

+ Xác định điểm T’ dựa vào giá trị của điểm TQuQvQw:

= fj(T) = fj(1*Qu+2*Qv+3*Qw)

b) Tóc sau khi nội suy

a) Lưới tam giác và nội suy điểm

(2.3) = 1* +2* +3*

Hình 2.6. Nội suy các điểm còn lại thuộc tam giác

2.1.5. Nội suy vùng tiếp giáp

Hàm ánh xạ f tìm được trong kỹ thuật ánh xạ trên mục 2.1.3 thực hiện ánh xạ

các ảnh tóc 2D lên các vùng da đầu 3D sẽ tạo ra vùng tiếp giáp giữa các mảng tóc

trên bề mặt da đầu chưa đảm bảo được trơn và liên tục.

Mặt khác, khi thực hiện chia bề mặt da đầu 3D thành các vùng da đầu thì

một điểm thuộc vùng biên (ranh giới) giữa các vùng có thể sẽ tạo ra hai điểm thuộc

về hai vùng da đầu có giá trị toạ độ khác nhau (điểm M, N). Do đó, khi ánh xạ từ

trên vùng da đầu 3D sẽ xảy ra trường hợp các điểm Pi trên ảnh tóc lên các điểm

(M, N) trên các vùng da đầu. Vì vậy, để một điểm Pi có thể ánh xạ đến hai điểm

đảm bảo các vùng tiếp giáp được trơn và liên tục, chúng ta sử dụng kỹ thuật nội suy

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

pháp tuyến để xấp xỉ hai điểm M, N thành điểm V.

36

M

M

N

N

V

(Cy )

(Cx)

V (Cx)

(Cy)

a) Vùng tiếp giáp b) Cách tính vectơ pháp

tuyến

Hình 2.7. Nội suy vùng tiếp giáp giữa hai vùng da đầu

Trong hình 2.7b), điểm M thuộc một tam giác trong mảng tóc (Cx), điểm N

thuộc một tam giác trong mảng tóc (Cy) trên bề mặt da đầu mà có khoảng cách MN

là nhỏ nhất, điểm V được nội suy thông qua đoạn thẳng nối hai điểm M và N, ,

là hai vectơ pháp tuyến tại hai điểm M, N tương ứng. Độ dài đoạn MV và NV

tương ứng là a và b.

Để tính ra vectơ , chúng ta cần tính các vectơ pháp tuyến bề mặt và

tại các điểm M và N tương ứng. Sau khi tính được các vectơ pháp tuyến tại M

và N, chúng ta tính vectơ pháp tuyến tại điểm V:

Như vậy, ta xuất phát từ một vectơ pháp tuyến cho mỗi điểm hoặc điểm ảnh,

đó là một xấp xỉ đối với pháp tuyến thực trên bề mặt cong được xấp xỉ. Sau đó,

vectơ pháp tuyến nội suy được sử dụng trong tính toán cường độ màu sắc cho bề

mặt chứa vectơ pháp tuyến .

Hình 2.8 là mô hình tóc được mô phỏng bởi 6 mảng tóc tương ứng 6 vùng da

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

đầu, mô hình tóc trước và sau khi nội suy vùng tiếp giáp giữa các cặp mảng tóc.

37

a) Tóc trước khi nội suy b) Tóc sau khi nội suy

Hình 2.8. Tóc trước và sau khi nội suy vùng tiếp giáp giữa các mảng tóc

2.1.6. Thuật toán mô phỏng tóc SDMT

Thuật toán mô phỏng tóc SDMT (Scalp Division and Mapping Technique)

thực hiện việc mô phỏng tóc dựa vào phân chia da đầu và kỹ thuật ánh xạ trên cơ sở

tổng hợp các mục 2.1.3, 2.1.4 và 2.1.5.

Thuật toán bao gồm hai hai chính:

Pha 1: Thực hiện ánh xạ các ảnh tóc Aj lên các vùng da đầu Cj tương ứng với

) với i=1,..,n và mọi j=1,..,6 dựa vào ánh xạ fj ứng với các cặp điểm điều khiển (Pi,

các điểm nội suy để đảm bảo tính ràng buộc trong một vùng.

Pha 2: Nội suy các cặp điểm tương ứng thuộc hai vùng tiếp giáp nhau bằng

cách sử dụng phép nội suy theo hướng vectơ pháp tuyến nhằm đảm bảo độ trơn và

tính liên tục trên mô hình tóc kết quả.

Thuật toán mô phỏng tóc SDMT:

Đầu vào: Bề mặt da đầu C={Cj}|j=1,..,6 gồm 6 vùng da đầu,

6 ảnh tóc tương ứng A={Aj}|j=1,..,6,

Đầu ra: Bề mặt da đầu C đã phủ ảnh tóc A

Các bước thực hiện của thuật toán:

Begin

Pha 1: Ánh xạ các ảnh tóc Aj lên các vùng da đầu Cj tương ứng với 

j=1,..,6

begin

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

), Bước 1: Lựa chọn các cặp điểm điều khiển (Pi,

38

với PiAj, Cj, i=1,..,n

) Bước 2: Với n cặp điểm điều khiển (Pi,

Tìm ánh xạ fj:AjCj

sao cho min

Bước 3: Nếu tìm được ánh xạ fj thì chuyển sang Bước 4.

Ngược lại, quay lại Bước 1 hoặc kết thúc.

Bước 4: Chia các điểm trên Aj thành 2 tập điểm Pax và Pns

Pax là tập các điểm điều khiển và điểm sử dụng ánh xạ fj

Pns là tập các điểm nội suy sử dụng ánh xạ fj

4.1. Ánh xạ tập điểm Pax sử dụng ánh xạ fj:

P’=fj(P) PPax

4.2. Với TPns

begin

+ Tìm một tam giác QuQvQw chứa điểm T và Qu, Qv, Qw thuộc Pax

Tính các hệ số 1, 2, 3:

1=S(QuQvT)/S(QuQvQw)

2=S(QvQwT)/S(QuQvQw)

3=S(QwQuT)/S(QuQvQw)

//S là diện tích của các tam giác

Sao cho 1+2+3=1 và 1, 2, 3[0,1]

Khi đó, xác định được điểm TQuQvQw của Aj ứng với các hệ số 1, 2, 3:

T= 1*Qu+2*Qv+3*Qw

+ Xác định ba điểm trên bề mặt da đầu tương ứng với ba điểm Qu,

Qv, Qw trên ảnh tóc bằng ánh xạ fj tìm được ở trên:

=fj(Qu), =fj(Qv), =fj(Qw)

+ Xác định điểm T’ dựa vào giá trị điểm

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

TQuQvQw:

39

= fj(T) = fj(1*Qu+2*Qv+3*Qw)

= 1* +2* +3*

end;

end;

Pha 2: Nội suy vùng tiếp giáp

Bước 5: Với MCx, NCy

Trong đó: Cx và Cy là 2 vùng tiếp giáp nhau.

Tính vectơ pháp tuyến tại điểm V:

Với và là hai vectơ pháp tuyến tại hai điểm M và N tương ứng.

Điểm V thuộc vào đoạn MN, a=MV, b=NV.

End.

* Nhận xét: Thuật toán SDMT thực hiện việc ánh xạ 6 ảnh tóc lên 6 vùng da

đầu tương ứng luôn đảm bảo tính đúng đắn và cho kết quả, vì:

- Số điểm trên các ảnh tóc và vùng da đầu đều xác định, nên việc lựa chọn

các cặp điểm điều khiển (Pi, ) ở bước 1 của thuật toán là xác định và ánh xạ fj luôn

được thực hiện.

- Trong quá trình ánh xạ, đôi khi chỉ ánh xạ một phần các điểm từ ảnh tóc lên

vùng da đầu, các điểm còn lại người ta sử dụng phương pháp nội suy nhằm đảm bảo

tính ràng buộc và thể hiện tính cục bộ trong một vùng.

- Việc ánh xạ từ 6 ảnh tóc lên 6 vùng da đầu tương ứng sẽ không đảm bảo độ

trơn và tính liên tục tại các vùng tiếp giáp. Do đó, việc sử dụng phép nội suy hướng

của vectơ pháp tuyến sẽ đảm bảo cho vùng tiếp giáp của mô hình kết quả được trơn

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

và liên tục, làm tăng thêm tính chân thực của tóc.

40

2.2. Kỹ thuật mô phỏng đối tượng dựa vào mô hình NURBS

2.2.1. Mô hình NURBS trong mô phỏng đối tượng

Mô hình NURBS tổng quát là một dạng mô hình toán học, được dùng để xây

dựng các mô hình 3D từ các đối tượng cơ bản thông qua việc điều chỉnh các đỉnh

điều khiển để điều chỉnh hình dạng của đối tượng. NURBS linh hoạt và phù hợp với

những kiểu đối tượng nhân tạo, đối tượng phác họa bởi một số đường cong nhất

định.

Hình 2.9. Mô hình hóa và điều chỉnh hình đối tượng bởi NURBS

Mỗi mô hình NURBS gồm một tập hợp những điểm điều khiển để mô phỏng

các đối tượng có hình dạng đường cong và mặt cong sao cho phù hợp với từng đối

tượng. Đồng thời, NURBS còn là mô hình đường và mặt cong hữu tỉ có các vectơ

nút không đều, NURBS là trường hợp tổng quát của đường và mặt cong hữu tỉ như

B-Spline. Do đó, mô hình NURBS tổng quát là một lựa chọn tốt cho mô hình hóa

và mô phỏng những đối tượng có hình dạng sợi hay mảnh mà có độ cong không

đều, có độ cong và độ lồi lõm bất kỳ, chẳng hạn như các sợi hay mảnh vải, tóc,...

- Mô hình NURBS tổng quát được sử dụng để biểu diễn các đối tượng có

hình dạng sợi (đường cong) được xác định bởi công thức sau đây [4,5]:

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

(2.5)

41

Trong đó:

+ Số điểm điều khiển của NURBS là n+1

+ P(i) là các điểm điều khiển

+ w(i) là trọng số tương ứng với mỗi P(i) và có tác động làm cho NURBS thay

đổi có tỷ lệ.

+ N(i,k_u)(u) là hàm cơ sở B-Spline theo miền u với bậc k_u. Hàm N(i,k_u)(u) được

biểu diễn bởi công thức (2.7).

- Mô hình NURBS tổng quát được sử dụng để biểu diễn đối tượng có hình

dạng mảnh (mặt cong) được xác định bởi công thức sau đây [1,2]:

(2.6)

Trong đó:

+ Số điểm điều khiển của mô hình NURBS là (n+1)(m+1).

+ P(i,j) là các điểm điều khiển

+ w(i,j) là trọng số tương ứng với mỗi P(i,j) và có tác động làm cho NURBS

thay đổi có tỷ lệ.

+ k_u, k_v là bậc của các hàm cơ sở theo hai miền u, v tương ứng.

+ N(i,k_u)(u), N(j,k_v)(v) là các hàm cơ sở B-Spline tương ứng với hai miền u, v.

* Công thức biểu diễn hàm cơ sở N(i,k_u)(u) ứng với chỉ số i và bậc k_u:

(2.7)

Trong đó:

+ k_u là bậc của hàm cơ sở B-Spline theo miền u.

+ knoti là các vectơ nút, gồm tập hợp các phần tử kiểm soát độ cong của sợi

và mảnh.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

* Công thức biểu diễn hàm cơ sở N(j,k_v)(v) ứng với chỉ số j và bậc k_v:

42

(2.8)

Trong đó:

+ k_v là bậc của hàm cơ sở B-Spline theo miền v.

+ knotj là các vectơ nút, gồm tập hợp các phần tử kiểm soát độ cong của sợi và

mảnh.

- Các vectơ nút knoti, knotj là những tập hợp các phần tử kiểm soát độ cong

của sợi và mảnh theo các miền tương ứng i và j.

Vectơ nút với miền u và chỉ số i được biểu diễn như sau:

{knot0,knot1,...,knotn+k_u-1,knotn+k_u}

Số phần tử của một vectơ nút được tính bằng tổng (n+k_u+1)

Vectơ nút với miền v và chỉ số j được biểu diễn như sau:

{knot0,knot1,...,knotn+k_v-1,knotn+k_v}

Số phần tử của một vectơ nút được tính bằng tổng (n+k_v+1)

Vectơ nút là một tập hợp các phần tử kiểm soát độ cong của sợi và mảnh, thể

hiện sợi hay mảnh cong là đều hay không đều, tuần hoàn hay không tuần hoàn,…

Dựa vào đặc điểm của mô hình NURBS được đưa ra để mô hình hoá và điều

khiển mô hình các đối tượng có hình dạng sợi hay mảnh cong với độ cong lồi lõm

bất kỳ, cục bộ, tức là không đều, không tuần hoàn nhưng chúng vẫn có độ trơn cần

thiết như mô hình các sợi tóc, vải,...

Hình dưới đây minh họa việc mô phỏng một số đối tượng có hình dạng sợi,

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

mảnh dựa vào mô hình NURBS.

43

Hình 2.10. Mô phỏng đối tượng dạng sợi

Hình 2.11. Mô phỏng đối tượng dạng mảnh

2.2.2. Nâng cao hiệu quả mô phỏng đối tượng dạng sợi, mảnh

Một trong những vấn đề luôn được đặt ra trong các bài toán mô phỏng, đó là

vấn đề về tốc độ. Vì dữ liệu trong quá trình mô hình hóa các đối tượng trong các bài

toán mô phỏng thường lớn, hơn nữa các đối tượng dạng sợi, mảnh thường có tính

cục bộ như tóc, vải. Dựa vào đặc điểm, khi các đối tượng dạng sợi hay mảnh như

vải, tóc chuyển động hay bị tác động thì luôn có những bộ phận gần như không bị

ảnh hưởng, ít có sự dịch chuyển. Trong phần này, bài báo đề xuất kỹ thuật nâng cao

hiệu quả mô phỏng các đối tượng dạng sợi, mảnh dựa vào mô hình NURBS, trên cơ

sở hiệu chỉnh giảm miền ảnh hưởng của các điểm điều khiển tác động lên điểm

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

đang xét nhằm tăng tốc độ mô phỏng, tăng tính cục bộ của đối tượng.

44

Do mô hình NURBS được sử dụng để mô phỏng đối tượng dạng sợi theo công

thức (2.8) và mảnh theo công thức (2.9), mà trong chúng đều có hàm cơ sở B-

Spline, một đại lượng chính ảnh hưởng lớn tới giá trị của NURBS và được biểu diễn

theo công thức (2.7) theo miền u và chỉ số i, miền v và chỉ số j trong mục 2.2.2 ở

trên.

Do các hàm cơ sở N(i,k_u)(u), N(j,k_v)(v) được biểu diễn bởi các công thức giống

nhau và chỉ khác nhau về các miền và chỉ số. Nên để thuận tiện cho quá trình trình

bày, bài báo chỉ trình bày đề xuất cải tiến dựa vào hàm cơ sở N(i,k_u)(u) ứng với miền

u và chỉ số i, còn đề xuất dựa vào với hàm cơ sở N(j,k_v)(v) được trình bày tương tự.

Công thức biểu diễn hàm cơ sở N(i,k_u)(u):

Theo công thức trên, với một vectơ nút không giảm và nằm trong đoạn [0,1]

thì giá trị của hàm cơ sở N(i,k_u)(u) sẽ giảm dần theo khoảng cách giữa điểm đang xét

với một điểm điều khiển bất kỳ và giá trị của hàm cơ sở N(i,k_u)(u) thể hiện sự ảnh

hưởng của điểm điều khiển P(i) tới điểm đang xét P(u). Tức là, sự ảnh hưởng của các

điểm điều khiển càng xa điểm đang xét thì sự ảnh hưởng của nó càng nhỏ, knoti là

giá trị tại nút P(u) với biến số là u được gọi là vectơ nút.

Trong trường hợp phù hợp, với giá trị của một vectơ nút và bậc của hàm

cơ sở N(i,k_u)(u) là k_u thì sẽ có 2k_u giá trị của hàm cơ sở N(i,k_u)(u)≠0 nằm đều

về hai bên của điểm đang xét, còn lại các giá trị khác đều bằng không. Vấn đề

đặt ra là xây dựng vectơ nút như thế nào để thỏa mãn được tính chất trên.

Trong thực tế, khi mô phỏng các đối tượng 3D dạng sợi hay mảnh, không

phải vị trí nào của đối tượng cũng cần trơn, hay cong đều mà có những vị trí trơn

nhưng lại có những độ cong bất kỳ, cục bộ (hình 1, 2). Với những vị trí đối tượng có

độ cong, lồi lõm cục bộ như hình 1,2 ở trên thì đòi hỏi khi thay đổi vị trí của một

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

điểm điều khiển thì yêu cầu phải có sự thay đổi cục bộ chứ không phải toàn cục trên

45

đối tượng. Để đáp ứng yêu cầu trên, người ta đưa ra một kiểu vectơ nút không đều ở

trên.

Tuy nhiên, từ công thức mô phỏng đối tượng dạng sợi (2.8) và mảnh (2.9), có

thể thấy với mỗi điểm đang xét, nó được tính toán từ tập tất cả các điểm điều khiển,

trong khi các đối tượng lại có tính chất cục bộ [61,62,65]. Như vậy, dẫn tới tốc độ

mô phỏng chậm. Vấn đề đặt ra là: làm thế nào để có thể thu nhỏ miền ảnh hưởng

của các điểm điều khiển lên điểm đang xét, làm cho tính chất cục bộ của đối tượng

được thể hiện rõ ràng hơn và tăng tốc độ mô phỏng mà không làm ảnh hưởng nhiều

tới chất lượng của mô hình?

Hình 2.12 minh họa cho trường hợp phù hợp, với A là điểm đang xét có

u=4, bậc k_u=2 thì điểm nằm trong miền 2u6 là các điểm điều khiển tác động

lên điểm A mà có N(i,k_u)(u)0, còn lại các điểm khác đều có N(i,k_u)(u)=0, tức là

không ảnh hưởng lên điểm A.

Hình 2.12. Xác định vectơ nút ứng với trường hợp tối ưu

Trong thực tế, việc mô hình hoá và mô phỏng các đối tượng 3D dạng sợi hay

mảnh không đều, lồi lõm cục bộ là rất cần thiết mà dùng mô hình NURBS tổng quát

thì khó có thể đáp ứng được cả về 2 mặt chất lượng cũng như tốc độ.

Trên cơ sở các phân tích ở trên, nhằm tăng tốc độ mô phỏng, bài báo này đề

xuất hiệu chỉnh giảm miền ảnh hưởng của các điểm điều khiển lên điểm đang xét do

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

các đối tượng dạng sợi hay mảnh như vải, tóc,... thường có tính chất cục bộ, nên

46

việc ảnh hưởng của chúng chỉ xảy ra có tính chất cục bộ chứ không xảy ra trên toàn

bộ đối tượng. Việc giảm ảnh hưởng này trên cơ sở xây dựng các vectơ nút.

Với vectơ nút đều tuần hoàn hoặc không đều thì tại một nút đang xét, nút

đó sẽ chịu sự ảnh hưởng của toàn bộ các điểm điều khiển, tức là N (i,k_u)(u)≠0 với

mọi i. Với vectơ nút là không tuần hoàn, thì giá trị của N(i,k_u)(u)≠0 khi và chỉ khi

(nowu-k_u)i(nowu+k_u), trong đó nowu là giá trị thứ tự của điểm đang xét A.

Trong hình 2.12 ở trên, với k_u=2, nowu=4 thì 2i6.

Qua thực nghiệm, ta xác định được công thức tính vectơ nút knoti với miền

u, bậc hàm cơ sở k_u và chỉ số i sau:

(2.9)

Còn công thức tính vectơ nút knotj với miền v, bậc hàm cơ sở k_v và chỉ số j

sẽ được trình bày tương tự và chỉ việc thay i=j, k_u=k_v và n=m và như vậy, ta xác

định được công thức tính vectơ nút knotj như sau:

(2.10)

* Công thức mô hình NURBS cải tiến trong mô phỏng các đối tượng dạng

sợi và mảnh được viết như sau:

- Công thức NURBS mô phỏng đối tượng dạng sợi (2.8) trở thành (2.11):

(2.11)

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

- Công thức NURBS mô phỏng đối tượng mảnh (2.9) trở thành (2.12):

47

(2.12)

Trong đó: nowu và nowv là các giá trị thứ tự của điểm đang xét theo

hai miền u và v tương ứng.

Với công thức cải tiến NURBS trong mô phỏng đối tượng dạng sợi

(2.11) và mảnh (2.12), khi thay đổi vị trí của một điểm điều khiển thì chỉ ảnh hưởng

tới 2k_u điểm khác. Hơn nữa, nó lại đáp ứng được yêu cầu chỉ thay đổi cục bộ các

điểm đang xét trên mô hình đối tượng và có thể đáp ứng mô phỏng những vị trí của

đối tượng có độ cong mong muốn, kể cả những vị trí có độ cong phức tạp. Hình

2.13 1 minh họa các miền ảnh hưởng của các điểm điều khiển lên một điểm đang xét

giữa mô hình NURBS ở công thức (2.8) và (2.11).

NURBS ở công thức (2.8) NURBS ở công thức (2.11)

Hình 2.13. Miền ảnh hưởng của các điểm điều khiển lên điểm đang xét

* Đánh giá độ phức tạp:

- Mô phỏng đối tượng dạng sợi: So sánh độ phức tạp giữa công thức (2.8) và

(2.11) ta thấy, từ công thức (2.8) ta tính được độ phức tạp của thuật toán này như

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

sau: Giả sử O(l) là độ phức tạp của hàm cơ sở B-Spline theo u.

48

Khi đó, độ phức tạp tính toán của một điểm trên mô hình đối tượng được

biểu diễn bởi công thức (2.8) là: O(n*l), trong khi độ phức tạp tính toán của một

điểm trên mô hình đối tượng được biểu diễn bởi công thức (2.11) là: O(k_u*l).

Khi đó, O(k_u*l)

- Mô phỏng đối tượng dạng mảnh: So sánh độ phức tạp giữa công thức (2.9)

và (2.12) ta thấy, từ công thức (2.9) ta tính được độ phức tạp của thuật toán này như

sau:

Giả sử O(p+q) là độ phức tạp của hàm cơ sở B-Spline, khi đó độ phức tạp

tính toán của một điểm trên mô hình đối tượng được biểu diễn bởi NURBS ở công

thức (2.9) là: O(m*n*(p+q)). Trong khi đó, độ phức tạp tính toán của một điểm trên

được biểu diễn bởi công thức (2.12) là: O(k_u*k_v*(p+q)).

Khi đó, O(k_u*k_v*(p+q))

2.2.3. Thuật toán mô phỏng đối tượng dạng sợi AHS

Thuật toán AHS (Attaching Hairs to Scalp) mô phỏng theo mô hình NURBS

P cho mỗi sợi ứng với mỗi điểm P trên C. Tiếp theo là phủ sợi lên C: với mỗi điểm

cải tiến trên mô hình C, gồm các bước sau: Đầu tiên là xây dựng tập vectơ hướng

PC, xây dựng sợi tại vị trí P với m điểm điều khiển Tq, vectơ hướng P với điểm

điều khiển đầu tiên là: T1=P, các điểm điều khiển tiếp theo của sợi được tính

Tq+1=Tq+ P *leng. Cuối cùng, hiển thị sợi kết quả.

* Thuật toán mô phỏng sợi AHS:

Đầu vào: Bề mặt mô hình C,

n số sợi, m điểm điều khiển Tq|q=1,..,m trên mỗi sợi,

độ dài đoạn sợi leng,

Tổng hợp ngoại lực tác động vào mỗi điểm điều khiển

gravity là ngoại lực tác động của trọng lực.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

={ wind}{ gravity}, wind là ngoại lực tác động của gió thổi,

49

Đầu ra: Bề mặt mô hình C đã phủ sợi

Các bước thực hiện của thuật toán:

Begin

Bước 1: Với PC

P=

Xây dựng vectơ hướng P

//O là tâm của bề mặt C

Bước 2: Phủ sợi lên bề mặt C

PC

Xây dựng sợi tại vị trí P với m điểm điều khiển Tq, vectơ

hướng P

Với T1=P

Tq+1=Tq+ P *leng

P= P +

Bước 3: Hiển thị sợi trên C

End.

* Nhận xét:

Thuật toán AHS luôn đảm bảo tính đúng đắn và dừng vì số các đỉnh trên mắt

lưới C, số sợi và số điểm điều khiển trên mỗi sợi là hữu hạn.

Thuật toán AHS thực hiện khởi tạo các sợi trên bề mặt C và mô phỏng sợi

dưới những tác động của lực dựa vào mô hình NURBS cải tiến nhằm tăng tốc độ và

nâng cao hiệu quả mô phỏng.

2.3. Kỹ thuật mô phỏng đối tượng dựa vào Mass-Springs

2.3.1. Giới thiệu

Kỹ thuật này sử dụng Mass-Springs (MS) hỗ trợ mô phỏng các sợi

dưới các hình dạng, chuyển động khác nhau từ rất cong đến thẳng, từ sợi rất ngắn

đến sợi rất dài và từ sợi rất mảnh đến sợi rất dày,… Mô phỏng các hiệu ứng khác

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

nhau có trên sợi từ hiệu ứng wind, gravity và damping. Với mỗi sợi riêng lẻ sẽ được

50

xây dựng mô hình bằng một bề mặt hình trụ NURBS xoắn với n điểm điều khiển.

Kết thúc của một sợi tóc sẽ được cố định trên bề mặt của plane, torus và hình cầu.

Lực Mass-Spring sẽ điều khiển (thao tác) với các phần còn lại của mỗi sợi. Thực

chất sự chuyển động của mỗi sợi sẽ được xác định bởi sự cứng rắn và độ dài rest

của mỗi spring giữa các điểm điều khiển và mass của mỗi điểm điều khiển, cũng

như là các lực bên ngoài.

2.3.2. Một số kỹ thuật cơ bản

Mass – spring được sử dụng để tạo ra hoạt cảnh. Bề mặt hình trụ NURBS

xoắn dùng để xây dựng mô hình sợi riêng lẻ. Sợi được xây dựng trên một mặt

phẳng (plain), hình cầu và torus. Giới hạn góc rest, độ dài mỗi phần, số sợi, độ dày

của mỗi sợi, cũng như: trọng lực, gió thổi, tóc thấm ướt (damping) thì được người

dùng tự động lựa chọn.

* Pipeline:

Đối với pipeline trong hệ thống này: Thứ nhất, hình dạng cơ sở (cơ bản) được

lựa chọn; thứ hai, kiểu (messy hoặc combed), độ dày, giới hạn độ dài và giới hạn

góc rest mỗi phần của sợi được lựa chọn; Thứ ba, các spring và particle cho hệ

thống mass-spring được tạo ra; Thứ tư, các lực bên ngoài (gravity, wind và

damping) được chọn; Thứ năm, các điểm điều khiển của các sợi được rút (trích) sau

mỗi lần lặp đi lặp lại của hệ thống mass-spring; Cuối cùng, các bề mặt ngoài hình

trụ NURBS xoắn được xây dựng và render.

* Hình dạng cơ sở:

Để xây dựng mô hình sợi trên một mặt phẳng, trước hết cần một mặt phẳng đề

xây dựng mô hình sợi trên đó. Ở đây, 3 hình dạng cơ sở được sử dụng: plain, torus

và sphere. Trong đó: Sphere và torus xây dựng mô hình bằng bề mặt NURBS, plain

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

xây dựng mô hình chỉ dựa vào việc biểu diễn các đa giác.

51

Hình 2.14: Các hình dạng cơ sở (a) plain; (b) sphere; (c) torus

2.3.3. Thuật toán

2.3.3.1. Hệ thống mass-spring

Trước tiên, các spring được tạo và sau đó là các particle. Mỗi vòng lặp của hệ

thống massy-spring thì được thực hiện với một giải thuật Euler sửa đổi.

Ở đây, chỉ có các spring tuyến tính mới được sử dụng. Chúng được xây dựng

dựa trên cơ sở số lượng tóc được nhìn thấy. Độ dài rest của các spring thì dựa vào

giới hạn độ dài được lựa chọn trước đó.

Sau khi các spring được xây dựng thì các particle thực tế được tạo ra. Các

particle thì được chia ra n particle cho mỗi sợi, với điều kiện n=8. Particle đầu tiên

của mỗi sợi thì được cố định trên bề mặt. Các particle còn lại trong sợi này thì lớn

lên ra ngoài về hướng bình thường của hình dạng cơ sở. Độ quăn và độ dài của mỗi

particle này được xác định dựa trên giới hạn độ dài và góc rest được lựa chọn trước

đó. Mass của mỗi particle thì được thiết lập tới 1 (tập hợp tới 1). Các véctơ lực và

vận tốc của mọi particle thì được thiết lập tới 0.

Thuật toán 1: Mô tả quá trình xây dựng các particle.

COPYV(particles[i*parts].p , surf[k]);

MAKEV(particles[i*parts].v, 0.0f, 0.0f, 0.0f)

MAKEV(particles[i*parts].f, 0.0f, 0.0f, 0.0f)

for (j=1..parts)

MAKEV(particles[i*parts+j].v, 0.0f, 0.0f, 0.0f)

MAKEV(particles[i*parts+j].f, 0.0f, 0.0f, 0.0f)

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

if (nx==0) particles[i*parts+j].p.x=

52

randomp(restang)+particles[i*parts].p.x;

else particles[i*parts+j].p.x=

-nx*randomp(leng)+particles[i*parts+j-1].p.x;

if (ny==0) particles[i*parts+j].p.y =

randomp(restang)+particles[i*parts].p.y;

else particles[i*parts+j].p.y =

-ny*randomp(leng)+particles[i*parts+j-1].p.y;

if (nz==0) particles[i*parts+j].p.z =

randomp(restang)+particles[i*parts].p.z;

else particles[i*parts+j].p.z =

-nz*randomp(leng)+particles[i*parts+j-1].p.z;

2.3.3.2. Các lực ngoài

Người dùng lựa chọn lực ngoài, như: gravity, wind và damping. Wind và

gravity thay đổi hướng với mười lần vòng lặp của hệ thống mass-spring.

Giải thuật tiếp theo, cho phép lực được thêm vào thực sự đối các lực bên trong

của mỗi particle mà nó không cố định trên bề mặt. Ở lực thứ nhất của mỗi particle

được thiết lập tới 0, sau đó nếu particle này không cố định trên bề mặt thì lực wind

và gravity được thêm vào.

Thuật toán 2: Mô tả quá trình thêm lực vào mỗi particle

For (i=0 ... particles)

MAKEV(particles[i].f, 0.0f, 0.0f, 0.0f)

if (particles[i].fixed) continue;

ADDV(particles[i].f, wind);

particles[i].f.y +=gravity *particles[i].m;

2.3.3.3. Các điểm điều khiển

Mỗi sợi riêng lẻ sẽ được xây dựng mô hình bằng bề mặt hình trụ NURBS xoắn

với n điểm điều khiển, độ 2 và chia thành 20x20. Mỗi hình trụ này gồm một độ dày

và độ dài nhất định. Một đường tròn xác định bề dày của sợi hình trụ này. Trước

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

tiên, các điểm điều khiển của đường tròn đó sẽ gồm bề dày của sợi riêng lẻ này

53

được tạo ra. Sau đó, các điểm nút v đối với các điểm điều khiển đường tròn này

được tạo ra.

Hình 2.15. Độ dày của mỗi sợi với 9 điểm điều khiển.

Độ xoắn của sợi thì được xác định bởi vòng lặp hiện thời của hệ thống mass-

spring. Các điểm nút u được tính dựa trên nhiều particle mà sợi đó chưa đựng. Một

khi trong trường hợp, một sợi chỉ gồm có 8 particle thì chỉ có 12 điểm nút u.

Sau khi tất cả các điểm điều khiển được rút cho mỗi sợi, thì sợi đó được render

như là một bề mặt hình trụ NURBS xoắn.

Thuật toán 3: Mô tả quá trình xác định điểm điều khiển

For (i=0 … parts)

For (j=0 … 9)

MAKEV( cp[i*9+j],

ADDV( particles[k*parts+i].p, circle))

Hình 1.16. Các điểm điều khiển mass-spring trên bề mặt hình trụ NURBS xoắn

2.3.3.4. Mô hình NURBS xoắn

Mô hình NURBS xoắn được sử dụng để biểu diễn các sợi có dạng hình trụ với

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

các điểm điều khiển mass-spring.

54

Một NURBS surface có p độ theo hướng u và q độ theo hướng v được xác

định như sau:

Trong đó:

{Pi,j} được xác định từ một lưới điều khiển bi-directional,

{Wi,j} là trọng lượng,

{Ni,p(u)} và {Nj,q(v)} là các hàm cơ sở B-Spline vô tỷ (non-rational) được

xác định dựa trên các véctơ điểm nút (điểm trung tâm) như sau:

với r = n+p+1

với s= m+q+1

Như vậy, trên cơ sở sử dụng kỹ thuật mô phỏng Mass-Springs thì những sợi

khác nhau, những thuộc tính ràng buộc khác nhau được thiết lập và lựa chọn để tạo ra

những kiểu khác nhau phù hợp với từng yêu cầu cụ thể. Chẳng hạn như khi muốn mô

phỏng sợi có những thuộc tính khác nhau: số sợi, độ lớn, độ dài, không có ngoại

lực,… được thiết lập và lựa chọn khác nhau để mô phỏng sợi. Khi mô phỏng sợi mà

chưa có ngoại lực tác động thì sợi sẽ thẳng theo hướng vectơ pháp tuyến p. Để tạo ra

những kiểu sợi gần giống thực tế thì cần có ngoại lực tác động (gió, trọng lực,…),

việc lựa chọn giá trị cho ngoại lực thường tuỳ theo độ lớn sợi (to, nhỏ) khác nhau mà

ta có thể lựa chọn các thông số khác nhau.

2.4. Kết luận và vấn đề nghiên cứu

Mô phỏng sợi là một trong những nhiệm vụ quan trọng trong hệ thống mô

phỏng trong thực tại ảo, vì đối tượng dạng sợi có thể sử dụng vào trong nhiều đối

tượng ảo như sợi tóc, sợi vải,... trên con người ảo. Trong mô phỏng sợi, yêu cầu

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

không những phải đảm bảo chất lượng hình ảnh mà còn phải đáp ứng yêu cầu về tốc

55

độ xử lý. Trong chương này, luận văn đã trình bày ba kỹ thuật nghiên cứu cho mô

phỏng sợi, cụ thể:

 Kỹ thuật mô phỏng sợi dưới dạng ảnh dựa vào phân chia mô hình 3D

thành các vùng tương ứng và kỹ thuật ánh xạ, nhằm khắc phục hiện tượng biến dạng

trong quá trình ánh xạ từ ảnh sợi 2D lên các vùng mô hình 3D tương ứng. Kỹ thuật

này phù hợp cho mô phỏng tóc ngắn (tóc nam giới), tóc bám sát bề mặt da đầu và áp

dụng trên con người hay nhân vật ảo.

 Kỹ thuật mô phỏng sợi sử dụng mô hình NURBS và đề xuất nâng cao kỹ

thuật mô phỏng NURBS nhằm tăng tốc độ mô phỏng, thể hiện tính cục bộ của sợi

dựa vào giảm miền ảnh hưởng của các điểm điều khiển lên một điểm đang xét.

 Kỹ thuật mô phỏng Mass-Springs thì những sợi khác nhau, những thuộc

tính ràng buộc khác nhau được thiết lập và lựa chọn để tạo ra những kiểu khác nhau

phù hợp với từng yêu cầu cụ thể. Chẳng hạn như khi muốn mô phỏng sợi có những

thuộc tính khác nhau: số sợi, độ lớn, độ dài, không có ngoại lực,… được thiết lập và

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

lựa chọn khác nhau để mô phỏng sợi

56

Chương 3

CHƯƠNG TRÌNH THỰC NGHIỆM

3.1. Yêu cầu bài toán

Mô phỏng đối tượng dạng sợi là một công việc hết sức quan trọng và cần thiết

trong thực tại ảo, vì đối tượng có hình dạng sợi có thể sử dụng để mô hình hóa và

mô phỏng cho nhiều đối tượng khác trong môi trường ảo trên các nhân vật ảo như

sợi tóc trên con người ảo, sợi lông trên các nhân vật ảo, sợi vải, sợi tơ,… Tuy nhiên,

mỗi sợi khi thể hiện trên những đối tượng khác nhau lại có những đặc tính, thuộc

tính thể hiện khác nhau như to, nhỏ, mật độ, cong, thẳng, xoắn, có ngoại lực tác

động như gió, ướt,… nên khi mô phỏng chúng thì chúng ta cần phải thể hiện được

tất cả những thuộc tính đó sao cho đảm bảo giống với thực tế. Trong phạm vi

nghiên cứu của đề tài, luận văn tiến hành việc mô phỏng đối tượng dạng sợi, mảnh

trong thực tại ảo, mà tập trung vào mô phỏng thử nghiệm sợi tóc.

Bài toán mô phỏng sợi (tóc) theo hướng như sau:

+ Đầu vào (Input): Bằng cách thu thập, nghiên cứu các thông tin, hình ảnh

sợi, các thuộc tính của các sợi tóc, mảnh tóc thông qua các nguồn dữ liệu.

+ Đầu ra (Output): Mô phỏng sợi tóc với một số những thuộc tính khác nhau

như: to, nhỏ, mật độ, cong, thẳng, xoắn, có ngoại lực tác động như gió, ướt,….

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

Để xây dựng hệ thống mô phỏng sợi, thực hiện 2 pha chính :

Thứ nhất là tạo mô hình 3D : Có rất nhiều phần mềm công cụ cho việc tạo

mô hình 3D như Maya, 3DSMax, LightWare,… Song, hai phần mềm phổ biến nhất

là Maya và 3DSMax. Hai phần mềm này đều là những chuẩn 3D. Ở Việt Nam

3DSMax quen thuộc hơn Maya. Nhưng xu thế trên thế giới các công ty chuyển sang

Maya mạnh hơn. Mô hình với Maya cho kích thước nhẹ hơn so với 3DSMax. Hiện

tại phiên bản mới nhất của Maya là 2015 và 3DSMax là 2016.

Maya, 3DSMax cũng như các phần mềm tạo mô hình 3D khác giúp tạo mô

hình 3 chiều mô phỏng thế giới thực. Nó có các đối tượng nguyên thuỷ như hình

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

cầu, hình trụ, hình hộp, mặt phẳng, đường cong,… Từ các đối tượng nguyên thuỷ

57

này, ta sử dụng các thao tác như dịch chuyển, xoay, co giãn cùng với các kỹ thuật

chỉnh sửa như cắt xén, mở rộng, thêm bớt …để tạo nên đối tượng mong muốn trong

thế giới thực. Sau đó các đối tượng sẽ được thêm xương (nếu có), tính chất bề mặt

(như màu sắc, da, tóc, mắt,…) và được tạo các chuyển động mô phỏng một cách

sinh động các thể hiện của đối tượng trong thế giới thực.

Thứ hai là lập trình điều khiển mô hình : Hệ thống mô phỏng thử nghiệm

mô phỏng sợi tóc thông qua sử dụng ngôn ngữ lập trình C++, thư viện đồ hoạ

OpenSG và thư viện mã nguồn mở.

Khi làm việc với các phần mềm ta sẽ thao tác trên 4 khung nhìn khác nhau

của đối tượng, 4 khung nhìn này sẽ cho ta nhìn được đối tượng ở các góc độ khác

nhau một cách đồng thời, hình ảnh sau đây minh họa điều này :

Hình 3.1. Các khung nhìn khác nhau trên 3DSMax

Ta có hệ trục tọa độ 3 chiều XYZ, màu xanh lam ứng với trục Y, đỏ với trục

X và xanh đậm với trục Z. Góc trên phải là khung làm việc cho phép ta thao tác

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

trong 3 chiều, 3 góc còn lại cho phép ta làm việc ở 3 mặt cắt của mô hình. Với các

58

khung nhìn này ta có thể thao tác dễ dàng hơn, khi một thay đổi xuất hiện ở một

khung nhìn sẽ cho hiệu ứng đối với các khung nhìn khác.

Bên cạnh hệ trục tọa độ XYZ ta còn có hệ tọa độ UV, hệ tọa độ UV bao bọc

bề mặt theo 2 chiều trái sang phải và dưới lên trên. Có thể hình dung ra hệ tọa độ

này như là các đường kinh tuyến và vĩ tuyến của trái đất. Hệ tọa độ này chủ yếu

được sử dụng trong quá trình thêm tính chất bề mặt cho mô hình.

3.3. Một số kết quả của chương trình thử nghiệm

3.3.1. Kết quả thử nghiệm kỹ thuật mô phỏng sử dụng NURBS

Với lựa chọn công cụ là phần mềm 3DSMax và ngôn ngữ lập trình C++, thư

viện đồ họa OpenSG và mã nguồn mở với các thuật toán kỹ thuật xử lý ảnh. Sau

đây là kết quả thu được khi mô phỏng mô hình 3D về sợi tóc trên máy tính.

Mô phỏng một số đối tượng có hình dạng sợi, mảnh dựa vào mô hình NURBS

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 3.14. Mô phỏng đối tượng dạng sợi

59

Hình 3.3. Xác định vectơ nút ứng với trường hợp tối ưu

Trên cơ sở có mô hình sợi tóc, chúng ta cần biểu diễn tóc hay các kỹ thuật

nâng cao chất lượng biểu diễn tóc sao cho phù hợp với từng ứng dụng. Ví dụ: trong

giải trí, thường không yêu cầu cao về chất lượng hình ảnh mà chủ yếu yêu cầu về tốc

độ xử lý.

Tiếp theo, trình bày một ứng dụng cụ thể về mô phỏng tóc trên nhân vật con

người với một số chức năng như: thiết lập số lượng sợi tóc, mảnh tóc, kích thước

của mỗi sợi, bó tóc, độ dài và số điểm điều khiển mỗi sợi cũng như thêm vào các

ràng buộc như: sức gió, lực hấp dẫn và trọng lực, màu sắc,.. trên cơ sở những

nghiên cứu và đề xuất trên.

Sử dụng công cụ 3DS MAX, MAYA để tạo mô hình nhân vật cũng như thiết

kế và định nghĩa các vùng cho phù hợp như: vùng mặt, vùng tóc, lông mày, lông

my, vùng râu, vùng ria, …trên mô hình con người ảo.

+ Mô hình đầu được thiết kế từ 3DS MAX:

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 3.1. Mô hình thiết kế đầu và chi tiết thành phần (đầu và da đầu)

60

+ Mô hình đầu được lưu trữ với định dạng: *.WRML, *.LWO

Vì mỗi một định dạng (*.WRML, *.LWO,) lại có cách tổ chức và lưu trữ dữ

liệu khác nhau, tùy thuộc từng định dạng mà có cách load khác nhau, vì vậy một

yêu cầu tối thiểu trong quá trình load các file này vào chương trình là phải nắm rõ

được cấu trúc cũng như cách tổ chức dữ kiệu của từng định dạng, từ những hiểu biết

đó mới có thể làm chủ được các định dạng này.

Hình 3.2. Minh họa mô hình render tổng thể

+ Tiếp theo, sử dụng ngôn ngữ lập trình như VC++ kết hợp với các thư viện

đồ họa như OpenGL để load mô hình, điều khiển và tiến hành mô phỏng tóc trên

các mô hình đã thiết kế này. Load một mô hình vào chương trình thực chất là việc

lấy các thông số về tọa độ các điểm của mô hình trong không gian 3 chiều, các

thông tin về màu sắc, ánh sáng,...

 Xác định các bề mặt (Faces) đã được định nghĩa trong khi thiết kế mô

hình, mỗi một bề mặt là tập hợp của nhiều đa giác. Mỗi một đa giác thường được

cấu thành từ các thành phần nguyên thủy như: vertex, nomal, color…. , ở đây cần

quan tâm nhiều đến Vertex chính là một điểm hay một đỉnh của một đa giác. Một

Vertex sẽ quan tâm tới hai thành phần đó là: position và một vector nomal. Nếu chỉ

sử dụng các position được định nghĩa sẵn từ mô hình thì thử hình dung: mỗi người

thường có khoảng trên 100 nghìn sợi tóc, tức là tạo trước cần đó position cho mỗi

FacesHair. Đây quả là một thách thức không nhỏ trong quá trình thiết kế. Nhưng lại

có một cách khá đơn giản mà hiệu quả: thay vì phải tạo ra hàng nghìn position, mà

chỉ thiết kế, tạo ra khoảng vài trục position cho mỗi FacesHair, sau đó áp dụng các

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

thuật toán nội suy cho các position đó để sinh ra các position mới.

61

 Tiến hành biểu diễn các sợi tóc và cho chúng chuyển động theo các ngoại lực

tác dụng hoặc chuyển động ngẫu nhiên. Trong ứng dụng này dựa trên kỹ thuật bề mặt

NURBS đã trình bày trong chương 2.

Kết quả chính: dưới đây một số kết quả đạt được dựa trên những thuật toán

đề xuất trên, với thể hiện một số thuộc tính của mô hình tóc như: Biểu diễn sợi tóc,

mảnh tóc, màu sắc, tác động ngoại lực (gió thổi, lực hấp dẫn, trọng lực) với số điểm

điều khiển, độ dài và kích thước khau nhau của tóc.

Dưới đây là một số kết quả thử nghiệm cài đặt Thuật toán AHS thực hiện

việc mô phỏng tóc trên bề mặt da đầu và đã được cài đặt thực nghiệm trên máy tính

PC với Core(TM) i5 @ 2.60 GHz, 2 GB RAM bằng phần mềm Visual C++, thư

viện OPENGL ứng với số lượng sợi tóc khác nhau.

Hệ thống mô phỏng tóc được xây dựng với các chức năng chính như sau:

Hệ thống mô phỏng tóc

Option

Help

File

Head

Open

Exit

Win

Background

Hair Color

Tools

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 3.3. Chức năng chính của hệ thống

62

Một số giao diện chính của hệ thống:

Hình 3.4. Giao diện chính và tuỳ chọn cách tạo tóc

Trong hình 3.7, cho phép lựa chọn việc biểu diễn tóc dưới dạng sợi tóc, hay

bó tóc với những thuộc tính ràng buộc về số lượng sợi tóc, kích thước, số điểm điều

khiển và độ dài mỗi sợi tóc.

- Biểu diễn sợi tóc bởi NURBS:

a) Tóc với 8 sợi b) Tóc với 870 sợi c) Tóc với 2820 sợi

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 3.5. Tóc với số sợi khác nhau

63

- Biểu diễn bó tóc bởi NURBS:

a) Bó tóc với 7 sợi b) Bó tóc với 450 sợi c) Bó tóc với 750 sợi

Hình 3.6. Bó tóc với số sợi khác nhau

- Giao diện minh hoạ một số màu của tóc:

Hình 3.7. Hai kiểu tóc màu trắng và đen xoắn cùng với gió thổi

Ngoài ra, khi thêm những thuộc tính khác nhau thì hệ thống mô phỏng sẽ cho

những kết quả khác nhau, cụ thể:

Dưới đây là hình ảnh tóc kết quả khi thực hiện thuật toán AHS với một số

kiểu tóc ngắn (tóc nam giới) khi không và có ngoại lực tác động.

a) 10.000 sợi tóc, độ lớn=1,0 b) 50 sợi tóc, độ lớn=1,0

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 3.15. Một số mô hình tóc khi không có lực tác động

64

Sau khi thêm vào những lực tác động như gió (wind), trọng lực (gravity) ứng

với số sợi tóc, độ lớn (width), điểm điều khiển (control point) và độ dài của mỗi sợi

tóc (length) khác nhau.

a) Có 10.000 sợi tóc; trọng lực=15,0; độ lớn=1,0; số điểm điều khiển=4; độ dài=3,0

và có các hướng gió tác động khác nhau

b) Bó tóc có 50 sợi; độ lớn=1,0; số điểm điều khiển=5; gió=2,0 và có trọng

lực khác nhau

Hình 3.12. Một số mô hình tóc khi có lực tác động

* Kết quả thực nghiệm: mô hình NURBS tổng quát ở công thức (2.9) và

NURBS nâng cao ở công thức (2.12) vào mô phỏng tóc với số sợi, điểm điều khiển

khác nhau.

Biểu đồ 2.1. So sánh thời gian tính toán giữa mô hình NURBS gốc ở công

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

thức (2.9) và mô hình NURBS cải tiến ở công thức (2.12):

65

Trong biểu đồ 2.1 trên, so sánh về thời gian tính toán giữa NURBS gốc (2.9)

và NURBS cải tiến (2.12) ứng với bốn mức khác nhau:

Mức 1, với cùng số điểm điều khiển là 6 và 50 sợi tóc thì NURBS cải tiến

(1:01:20) thực thi nhanh hơn NURBS gốc (1:20:00); Mức 2, với cùng số điểm điều

khiển là 8 và 90 sợi tóc thì NURBS cải tiến (3:17:20) thực thi nhanh hơn NURBS

gốc (5:31:19); Mức 3, với cùng số điểm điều khiển là 10 và 100 sợi tóc thì NURBS

cải tiến (13:01:12) thực thi nhanh hơn NURBS gốc (16:11:22); Mức 4, với cùng số

điểm điều khiển là 12 và 150 sợi tóc thì NURBS cải tiến (21:14:15) thực thi nhanh

hơn NURBS gốc (26:31:21).

Như vậy, với độ phức tạp được so sánh như trên và biểu đồ 2.1, cho thấy

NURBS cải tiến ở (2.12) (đường màu xanh) có lợi thế hơn hẳn về mặt thời gian so

với NURBS gốc ở (2.9) (đường màu đỏ). Do việc đưa ra công thức cải tiến NURBS

thực chất là giảm miền ảnh hưởng của các điểm điều khiển lên một điểm đang xét,

việc thay đổi chỉ mang tính cục bộ chứ không ảnh hưởng lên toàn bộ mái tóc. Bên

cạnh đó, việc cải tiến NURBS không chỉ đáp ứng yêu cầu về tăng tốc độ mô phỏng

mà còn đáp ứng yêu cầu mô phỏng những đối tượng có đường và bề mặt với độ

cong cục bộ khác nhau, chẳng hạn, yêu cầu về các đặc điểm về lỗ thủng, gờ cho cơ

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

bám trên xương.

66

3.3.3. Kết quả thử nghiệm kỹ thuật mô phỏng sử dụng Mass-Springs

Dưới đây là một số kết quả thử nghiệm cài đặt kỹ thuật mô phỏng dựa vào

Mass-Springs vào mô phỏng đối tượng dạng sợi, chương trình thực hiện trên trên

máy tính PC với CPU Core(TM) i5 @ 2.60 GHz, 2 GB RAM bằng phần mềm

Visual C++, thư viện OPENGL ứng với số lượng sợi tóc khác nhau.

Hình 3.13. Tóc Messy trên plain trong một khung viền với các

điểm điều khiển mass-spring và các bề mặt NURBS xoắn

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 3.14. Tóc Messy trên plain trong một khung viền với bề mặt NURBS xoắn

67

Hình 3.15. Tóc dày, messy trên plain với bề mặt NURBS xoắn

Hình 3.16. Tóc dài, messy trên plain với bề mặt NURBS xoắn

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 3.17. Sợi ngắn, cong trên sphere với bề mặt NURBS xoắn

68

3.4. Phân tích kết quả đánh giá

Phần trên đây vừa được trình bày công cụ, kết quả mô phỏng mô hình hóa

3D sợi tóc trên máy tính. Với kỹ thuật như trên, cho phép chúng ta mô phỏng đầy

đủ được các đặc trưng, thuộc tính của tóc trong không gian 3D.

Trong chương này ở trên vừa trình bày kết quả thử nghiệm của hai kỹ thuật

mô phỏng, đó là: Kỹ thuật mô phỏng dựa vào mô hình NURBS và Kỹ thuật mô

phỏng dựa vào Mass-Springs.

Với kỹ thuật mô phỏng dựa vào NURBS: Trên cơ sở sử dụng NURBS nâng

cao vào mô phỏng tóc ứng với những sợi và bó tóc khác nhau, những thuộc tính

ràng buộc khác nhau được thiết lập và lựa chọn để tạo ra những kiểu tóc khác nhau

phù hợp với từng yêu cầu cụ thể. Một số mô hình tóc được tạo ra với các thuộc tính

về số sợi, độ lớn, độ dài, không có ngoại lực,… được thiết lập và lựa chọn khác

nhau để mô phỏng sợi, bó tóc. Khi mô phỏng tóc mà chưa có ngoại lực tác động thì

tóc sẽ thẳng theo hướng vectơ pháp tuyến p. Để tạo ra những kiểu tóc gần tóc thực

tế thì cần có ngoại lực tác động (gió, trọng lực,…), việc lựa chọn giá trị cho ngoại

lực thường tuỳ theo độ lớn sợi tóc (to, nhỏ) khác nhau mà ta có thể lựa chọn các

thông số khác nhau cho tóc có hình dạng gần tóc thực tế hơn.

Kỹ thuật mô phỏng dựa vào Mass-Springs: những sợi khác nhau, những thuộc

tính ràng buộc khác nhau được thiết lập và lựa chọn để tạo ra những kiểu khác nhau

phù hợp với từng yêu cầu cụ thể. Chẳng hạn như khi muốn mô phỏng sợi có những

thuộc tính khác nhau: số sợi, độ lớn, độ dài, không có ngoại lực,… được thiết lập và

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

lựa chọn khác nhau để mô phỏng sợi.

69

KẾT LUẬN

Mô phỏng đối tượng dạng sợi là một vấn đề quan trọng trong hệ thống mô

phỏng các nhân vật ảo, đặc biệt là đối với con người, vì sợi là một đối tượng không

thể thiếu trên mỗi con người, như sợi tóc, sợi vải,... Vì vậy, trong mô phỏng đòi hỏi

không những phải đảm bảo về chất lượng mô phỏng mà còn phải đáp ứng yêu cầu

không gian lưu trữ, tăng tốc độ mô phỏng.

Mô phỏng sợi trong thực tại ảo, thực chất là việc mô hình hoá và điều khiển

mô hình sợi trên mô hình bề mặt 3D. Kết quả thu được sẽ là kiểu sợi trên mỗi đối

tượng ảo trong không gian thực tại ảo.

Luận văn đã tập trung nghiên cứu một số kỹ thuật mô phỏng sợi, kỹ thuật

nâng cao hiệu quả mô phỏng sợi và ứng dụng của nó trong hệ thống mô phỏng con

người ảo. Cụ thể, luận văn đã đạt được những kết quả sau:

- Nghiên cứu tổng quan về đồ họa máy tính, thực tại ảo, nghiên cứu khái quát

về mô hình hóa 3D, phương pháp mô hình hóa, dựng hình 3D cũng như mô phỏng,

vai trò của mô phỏng và công nghệ mô phỏng trong thực tại ảo. Nghiên cứu tổng

quan về mô phỏng đối tượng dạng sơi, mảnh, trên cơ sở đó dẫn tới đề xuất nghiên

cứu thử nghiệm đối tượng dạng sợi dưới dạng là sợi tóc, mảnh tóc hay mái tóc trên

con người ảo. Đồng thời giới thiệu khái quát về vai trò của tóc cũng như mô hình hóa

và điều khiển các mô hình tóc trên hệ thống con người ảo.

- Kỹ thuật mô phỏng sợi dưới dạng ảnh dựa vào phân chia mô hình 3D thành

các vùng tương ứng và kỹ thuật ánh xạ, nhằm khắc phục hiện tượng biến dạng trong

quá trình ánh xạ từ ảnh sợi 2D lên các vùng mô hình 3D tương ứng. Kỹ thuật này phù

hợp cho mô phỏng tóc ngắn (tóc nam giới), tóc bám sát bề mặt da đầu và áp dụng trên

con người hay nhân vật ảo.

- Kỹ thuật mô phỏng sợi sử dụng mô hình NURBS và đề xuất nâng cao kỹ

thuật mô phỏng NURBS nhằm tăng tốc độ mô phỏng, thể hiện tính cục bộ của sợi

dựa vào giảm miền ảnh hưởng của các điểm điều khiển lên một điểm đang xét.

- Kỹ thuật mô phỏng Mass-Springs thì những sợi khác nhau, những thuộc tính

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

ràng buộc khác nhau được thiết lập và lựa chọn để tạo ra những kiểu khác nhau phù

70

hợp với từng yêu cầu cụ thể. Chẳng hạn như khi muốn mô phỏng sợi có những thuộc

tính khác nhau: số sợi, độ lớn, độ dài, không có ngoại lực,… được thiết lập và lựa

chọn khác nhau để mô phỏng sợi.

- Đã cài đặt thử nghiệm với hai kỹ thuật mô phỏng, đó là: Kỹ thuật mô phỏng

dựa vào mô hình NURBS và Kỹ thuật mô phỏng dựa vào Mass-Springs.

Hướng nghiên cứu phát triển tiếp theo của luận văn:

 Nghiên cứu và đề xuất các phương pháp, ứng dụng mô phỏng sợi trên cơ

sở nghiên cứu các tính chất vật lý, hoá học của tóc.

 Nghiên cứu và đề xuất việc ứng dụng độ bóng, ánh sáng,... trong mô

phỏng sợi.

Trong khuôn khổ luận văn này, với sự tìm hiểu và nghiên cứu còn hạn chế

nhưng cũng đã cho bản thân học viên hiểu sâu hơn về việc lập một đề án xây dựng

mô phỏng mô hình 3D cho một đối tượng trong thực tại ảo để áp dụng vào cuộc

sống. Được sự hướng dẫn của giáo viên, đặc biệt là sự góp ý chuyên sâu và nhiệt

tình của các thầy, cô trong Hội đồng đối với đề tài luận văn này. Bản thân em nhận

thấy đây là kết quả bước đầu rất bổ ích và thiết thực, là tiền đề thúc đẩy trong quá

trình học tập và nghiên cứu nhiều hơn nữa về nội dung này để thành công trong

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

cuộc sống cũng như trong công việc hàng ngày.

71

[1] P. Noble and W. Tang (2004), Modelling and animating cartoon hair with

TÀI LIỆU THAM KHẢO

[2] in Computer Graphics International (CGI), June 2004, pp. 60–67.

[3] Anna Sokol (2004), Modeling Hair and Fur with NURBS. Computer Science

nurbs surfaces,

Department.

[4] Z. Xu, X. D. Yang, T. Wang, and J. Yang (2000), The cluster hair model,

SUNY Stony Brook.

[5] Z. Brooks Jr (1999), What's Real About Virtual Reality, IEEE Computer

Graphics Models and Image Processing, vol. 62, no. 2, pp. 85–103, Mar. 2000.

[6] Z. Burdea, G. and P. Coffet (2003), Virtual Reality Technology, Second Edition.

Graphics And Applications, 19(6), 16, 1999.

[7] D. Baraff and A. Witkin. Large steps in cloth simulation, SIGGRAPH 98

Wiley-IEEE Press, 2003.

[8] D.H. House and D.E. Breen, Cloth Modeling and Animation, A.K. Peters, Ltd.,

Conference Proceedings, pages 43- 4, 1998

[9] Feng Han and Song-Chun Zhu, A Two-Level Generative Model for Cloth

2000

Representation and Shape from Shading, Journal IEEE Transactions on Pattern

Analysis and Machine Intelligence, Volume 29 Issue 7, July 2007 Pages 1230-

[10] C. K. Koh and Z. Huang (2000), Real-time animation of human hair modeled in

1243.

strips, Computer Animation and Simulation, Springer-Verlag, pages 101–110,

[11] C. K. Koh and Z. Huang (2001), A simple physics model to animate human hair

2000.

modeled in 2D strips in real time, Proceedings Of Computer Animation and

[12] D. Gibbs, Carlos, David A.Hart (2008), Modeling hair using interpolation and

Simulation, 2001.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

clumping in an iterative process, CA(US), 2008.

72

[13] K. Ward, F. Bertails, Kim, arschner, Cani, Ming C.Lin (2007), A Survey on Hair

Modeling: Styling, Simulation and Rendering, University of North Carolina at

[14] Yosuke Bando, Bing-Yu Chen, Tomoyuki Nishita(2003), Animating Hair with

Chapel Hill. 2007.

[15] Chia-Ying Lee, Wei-Ru Chen, Eugenia Leu*, Ming Ouhyoung(2001), A Rotor

Loosely Connected Particles(LCP), The University of Tokyo, 2003.

Platform Assisted System for 3D Hairstyles, Dept. of CS and IE, National

[16] Yong Kim and Ulrich Neumann(2002), A Thin Shell Volume for Modeling

Taiwan University, Taiwan, 2001.

Human Hair, Computer Graphics and Immersive Technology Laboratory,

[17] Tae-W. Liang and Z. Huang (2003), An enhanced framework for real-time hair

Integrated Media Systems Center, University of Southern California, 2002.

animation, in Pacific Graphics Conference on Computer Graphics and

[18] Nguyen Van Huan, Pham Viet Binh, Đo Nang Toan(2009), A hair material

Applications, October 2003

simulation approach in Virtual reality and application, Proceedings of The 7th

Asian Control Conference – ASCC2009, Hong Kong 27-29/08/2009, China

[19] Nguyen Van Huan, Do Nang Toan(2009), Morphing and Repairing a 3D Scalp

2009, 541-546.

Geometry in Building Hair Models and Simulation, Proceedings of 2nd

International Congress on Image and Signal Processing-CISP2009, Tianjin 17-

[20] Nguyen Van Huan, Do Nang Toan(2010), Vector Fields in Expressing

19/10/2009, China 2009, 705-710.

Hairstyles, Proceedings of The 2nd IEEE International Conference on

Advanced Computer Control -ICACC 2010, Shenyang 27-29/03/2010, China

[21] N.V. Huan, D.N. Toan (2009), A hair material simulation approach in Virtual

2010, 541-546

reality and application, In Proceedings of The 7th Asian Control Conference,

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hong Kong, China, 2009, pp. 541-546.

73

[22] Thomas Sederberg, BYU NURBS, http://cagd.cs.byu.edu/~557/text/ch6.pdf.

[23] http://en.infinisys.co.jp/product,

http://www.hairstylesdesign.com,

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

http://hairstyleonline.com

74

PHỤ LỤC

1. Thuật toán xác định hướng và độ xoắn của sợi tóc:

void CLine::Init(CPoint3D p0, CPoint3D dp)

{

n=dp; n.Normalize();

p0-=dp;

for (int i=0;i

{

pt[i].p=p0;

p0+=dp;

dp.x+=rnd(2*HAIRRANDOM)-HAIRRANDOM;

dp.y+=rnd(2*HAIRRANDOM)-HAIRRANDOM;

dp.z+=rnd(2*HAIRRANDOM)-HAIRRANDOM;

// dp vi tri ngau nhien cua mot diem toc

}

}

2. Thuật toán Phủ sợi tóc lên đối tượng:

void CHair::Init(CObject *_o,CSurface *_s)

{

o=_o; s=_s;

m=*s;

//xác định bề mặt phủ

m.flag&=~CMaterial::Lighting; //Lightinh là đấu hiệu nhận biết.

// Với mỗi một sợi tóc:

for (int i=0;i

{

int f=rnd(s->nbf);

CTriFace *fc=s->fc+f;

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

float a=rnd(1.0f);

75

float b=rnd(1.0f);

if (a+b>1.0f)

{

a=1.0f-a;

b=1.0f-b;

}

CPoint3D pos=fc->v[0]->p + a*(fc->v[1]->p - fc->v[0]->p) +

b*(fc->v[2]->p - fc->v[0]->p);

CPoint3D dir=fc->v[0]->n + a*(fc->v[1]->n - fc->v[0]->n) +

b*(fc->v[2]->n - fc->v[0]->n);

dir.Scale(HAIRLENGTH/dir.Length());

ln[i].Init(pos,dir);

}

// Thiết lập và áp đặt mầu sắc:

{

CColor4f col=m.diffuse;

for (int i=0;i

{

c[i]=col*((i+HAIRNCOLOR/2)*1.0f/HAIRNCOLOR);

}

}

}

3. Thuật toán mô phỏng sợi tóc chuyển động

void CHair::Update(CPoint3D Depl)

{

CPoint3D v,v2;

float l,f1,f2;

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

CLine *pl=ln;

76

int i=NBHAIR;

do

{

int p=HAIRSIZE-2;

//p là các điểm điều khiển, hay các đốt..

CNode *pp=pl->pt+2;

// Với mỗi một sợi tóc:

do

{

pp->p+=Depl;

v=pp[-1].p-pp[0].p;

//v: do dai cua mot dot toc

l=v.Length2();

if (l>MAXL)

{

v*=(1.0f-MAXL2/(float)sqrt(l));

pp->p+=v;

pp->v*=1.0f-FROT;

}

//pp la một con trỏ, trỏ đến từng điểm điều khiển(đốt).

else

{

f1=STIFFNESS*(1.0f-(LENGTH*LENGTH)/l);

v2=pp[-2].p-pp[0].p;

l=v2.Length2();

f2=0.4f*STIFF2*(1.0f-(LENGTH2*LENGTH2)/l);

pp->v=pp->v*(1.0f-FROT)+v*f1+v2*f2;

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

//+GForce;

77

// f1,f2 tính mềm dẻo của tóc

// v tốc độ chuyển động giữ hai điểm điều khiển liên

tiếp.

}

pp->v.z+=GRAVITY;

++pp; // trỏ tới điểm điều khiển tiếp theo

}

while (--p);

p=HAIRSIZE-2;

pp=pl->pt+2;

do

{

pp->p+=pp->v;

++pp;

}

while (--p);

++pl;

}

while (--i);

//duyet tat ca cac soi toc

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

}

78

NHẬN XÉT ………………………………………………………………………………………

………………………………………………………………………………………

………………………………………………………………………………………

………………………………………………………………………………………

………………………………………………………………………………………

………………………………………………………………………………………

………………………………………………………………………………………

………………………………………………………………………………………

………………………………………………………………………………………

………………………………………………………………………………………

………………………………………………………………………………………

Thái Nguyên ngày…..tháng…..năm 2019

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Chữ ký của người nhận xét