Đầ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
End.
Bước 1: Với PC
Xây dựng vectơ hướng P P=
Có thể bạn quan tâm!
- Kỹ Thuật Mô Phỏng Đối Tượng Dạng Ảnh Dựa Vào Texture Mapping
- 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
- Nâng Cao Hiệu Quả Mô Phỏng Đối Tượng Dạng Sợi, Mảnh
- Kết Quả Thử Nghiệm Kỹ Thuật Mô Phỏng Sử Dụng Nurbs
- 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 - 9
- 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 - 10
Xem toàn bộ 81 trang tài liệu này.
//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
* 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 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
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 xây dựng mô hình chỉ dựa vào việc biểu diễn các đa giác.
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) if (nx==0) particles[i*parts+j].p.x=
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 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
đượ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 các điểm điều khiển mass-spring.
Một NURBS surface có p độ theo hướng u và q độ theo hướng v được xác định như sau:
n m
S(u, v)
Ni, p (u)N j ,q (v)Wi, j Pi, j i0 j 0
n m
Trong đó:
Ni, p (u)N j ,q (v)Wi, j
i0 j 0
{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:
U {0,...,0 , u p1 ,..., ur p1 ,1,...,1} với r = n+p+1
p1
p1
V {0,...,0 , v q1 ,..., vsq1 ,1,...,1} với s= m+q+1
q1
q1
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 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
độ 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à lựa chọn khác nhau để mô phỏng sợi
3.1. Yêu cầu bài toán
Chương 3
CHƯƠNG TRÌNH THỰC NGHIỆM
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 cầu, hình trụ, hình hộp, mặt phẳng, đường cong,… Từ các đối tượng nguyên thuỷ