Kết Quả Thử Nghiệm Kỹ Thuật Mô Phỏng Sử Dụng Nurbs


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 1

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


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.

Có thể bạn quan tâm!

Xem toàn bộ 81 trang tài liệu này.

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


Hình 3 14 Mô phỏng đối tượng dạng sợi Hình 3 3 Xác định vectơ nút ứng với 2Hình 3 14 Mô phỏng đối tượng dạng sợi Hình 3 3 Xác định vectơ nút ứng với 3

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


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ô 4Hì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ô 5



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ô 6

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:


Hình 3 1 Mô hình thiết kế đầu và chi tiết thành phần đầu và da đầu Mô hình 7Hình 3 1 Mô hình thiết kế đầu và chi tiết thành phần đầu và da đầu Mô hình 8

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


+ 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 thuật toán nội suy cho các position đó để sinh ra các position mới.


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.

Head

Win

Hair Color

Background

Tools

Option

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:


Help

Hệ thống mô phỏng tóc

File


Open


Exit


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


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 9Hì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 10

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 Hình 3 5 Tóc với số sợi 11a Tóc với 8 sợi b Tóc với 870 sợi c Tóc với 2820 sợi Hình 3 5 Tóc với số sợi 12a Tóc với 8 sợi b Tóc với 870 sợi c Tóc với 2820 sợi Hình 3 5 Tóc với số sợi 13

a) Tóc với 8 sợi b) Tóc với 870 sợi c) Tóc với 2820 sợi

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


- 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 14a 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 15a 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 16

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 17Hì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 18

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 Hình 3 15 Một số mô hình 19a 10 000 sợi tóc độ lớn 1 0 b 50 sợi tóc độ lớn 1 0 Hình 3 15 Một số mô hình 20

a) 10.000 sợi tóc, độ lớn=1,0 b) 50 sợi tóc, độ lớn=1,0

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


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 độ 21a 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 độ 22a 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 độ 23

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 24b 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 25

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 thức (2.9) và mô hình NURBS cải tiến ở công thức (2.12):

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 02/10/2023