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,
PiAj, 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) PPax
- Với mỗi điểm TPns, 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 TQuQvQw 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 TQuQvQw:
= 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 PiAj, Cj, i=1,..,n
) Bước 2: Với n cặp điểm điều khiển (Pi,
Tìm ánh xạ fj:AjCj
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) PPax
4.2. Với TPns
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 TQuQvQw 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
TQuQvQw:
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 MCx, NCy
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 2u6 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ì 2i6.
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 PC, 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 PC 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 PC 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: 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 ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… 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étHệ thống
mô phỏng tóc
NHẬN XÉT
………………………………………………………………………………………