- 1 -
LỜI CẢM ƠN
Trong quá trình thực hiện đồ án tốt nghiệp này, em luôn nhận được sự
hướng dẫn nhiệt tình của thầy giáo, thạc sỹ: Nguyễn Văn Huân, công tác tại khoa
công nghệ thông tin thuộc Đại học Thái Nguyên, là cán bộ trực tiếp hướng dẫn
em thực hiện đồ án này. Em xin chân thành cảm ơn thầy !
Em chân thành cảm ơn các thầy cô giáo trong khoa công nghệ thông tin, đã
dạy dỗ, động viên em trong suốt 5 năm qua. Giúp em có thêm những kiến thức
để hoàn thành đồ án tốt nghiệp này. Em xin chân thành cảm ơn các thầy cô !
Tôi xin chân thành cảm ơn các anh, các chị và các bạn sinh viên đại học chính
quy khóa II - Khoa công nghệ thông tin thuộc Đại học Thái Nguyên đã luôn động
viên, giúp đỡ và nhiệt tình chia sẻ với tôi những kinh nghiệm học tập và làm việc
trong suốt khoá học.
Thái Nguyên, ngày 30 tháng 4 năm 2008
Nguyễn Văn Tài
2.3.1. Tương tác giữa tóc với tóc 41
2.3.2. Tương tác giữa tóc với vật thể khác 42
2.4. Phát hiện va chạm 43
2.5. Việc thúc đẩy cho hệ thống khung kép 51
2.6. Thiết lập bộ khung kép 52
CHƯƠNG III : XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG 54
3.1. Giới thiệu một số mô hình tóc 54
3.2. Xây dựng chương trình ứng dụng 57
3.2.1. Chương trình mô phỏng chất liệu lông 57
3.2.2. Chương trình mô phỏng chất liệu tóc 61
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 69 - 4 -
MỞ ĐẦU
Trong thời đại hiện nay với sự phát triển của các ngành khoa học kĩ thuật,
1.1. Thực tại ảo và ứng dụng
1.1.1. Khái niệm về thực tại ảo
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. Nó 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.
Ví dụ : 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 nó.
1.1.2. Các lĩnh vực ứng dụng của thực tại ảo
Những lĩnh vực đang được nghiên cứu ứng dụng thực tại ảo một cách mạnh
mẽ hiện nay là: y học, giáo dục, tin học, thương mại, giao thông, hàng không,
xây dựng, khoa học quân sự, quốc phòng, thiết kế nội thất và trang trí nhà cửa,
giải trí, điện ảnh…
Trong 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 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 (hệ
thống định vị toàn cầu).
Người ta đã xây dựng các hệ thống mô phỏng phục vụ cho việc tập luyện
của bộ binh, hay những hệ thống mô phỏng hệ thống an ninh, mô phỏng trận địa,
phục vụ cho việc nghiên cứu, tập luyện nhằm tìm ra các phương pháp phòng thủ
và chiến đấu một cách hiệu quả.
Trong giáo dục và đào tạo
Một số trường đào tạo lái xe của Việt Nam hiện nay cũng đang sử dụng các
phương tiện cho phép học viên thực hành trên cơ sở thực tại ảo.
Xây dựng các mô hình thực tại trên máy vi tính nhằm cung cấp các môi trường
- 6 -
học tập và nghiên cứu cho người sử dụng. Những mô hình được xây dựng ở đây
chuyển tải được thực tế của chúng ta vào môi trường mô phỏng, cung cấp khả
phẫu thuật truyền thống. Hơn nữa, khi bệnh nhân được chữa trị bởi đồng thời
nhiều bác sĩ giỏi trên khắp thế giới, thì chắc chắn kết quả mang lại sẽ tốt hơn hơn
rất nhiều.
Hiện nay có rất nhiều dự án tập trung vào việc xây dựng các mô hình, mô
phỏng các bộ phận của con người, đồng thời mô phỏng những sự thay đổi cơ bản
khi có sự tương tác, thay đổi, hay sự biến đổi của các bộ phận khi con người hoạt
động. Việc xây dựng các mô hình cho phép thực hiện các ca phẫu thuật giả,
chuẩn đoán bệnh .
Trong 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ị đó. Ví dụ như: Với một cái ôtô,
người sử dụng không những xem được mọi ngóc ngách của nó mà còn có thể thử
- 8 -
lái nó trong môi trường ảo. Với một bản thiết kế xây dựng, không những khách
hàng có thể nhìn thấy các hình ảnh của nó mà còn có thể đi lại xem chi tiết từng
phòng, từng khu vực của kiến trúc đó với mọi góc nhìn có thể.
Bằng các hình ảnh được xây dựng trên máy vi tính sẽ giúp con nguời có thể
có một cái nhìn chi tiết về công trình đã được thiết kế. Hình 1.6. Hình ảnh của dự án về xây dựng, thiết kế và trang trí
Trong khoa học cơ bản
Nói chung, 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ý,
người ta 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, thực tại ảo giúp người ta 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. Ví dụ như: mô phỏng lại hoạt
không gian, chúng ta không thể giao một chiếc máy bay cho một phi công lần
đầu tiên bước lên máy bay mà chưa qua huấn luyện, vì chi phí cho mỗi chiếc máy
bay không phải là nhỏ.
Trong những năm gần đây, khi tin học phát triển thì các ứng dụng của nó
vào lĩnh vực hàng không vũ trụ càng trở lên mạnh mẽ, nhất là trong vấn đề trợ
giúp đào tạo phi công. Người ta đã xây dựng rất nhiều chương trình 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ế. Một chương trình máy tính tạo ra không gian 3D kết
- 10 -
hợp với thiết bị phần cứng 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ế. Với cách này, người ta sẽ giảm thiểu
được thời gian, chi phí đào tạo và nâng cao tính an toàn của mỗi chuyến bay.
1.2. Mô phỏng chất liệu trong thực tại ảo
1.2.1. Tổng quan về mô phỏng chất liệu
Mô phỏng là một lĩnh vực quan trọng trong quá trình phát triển và ứng dụng
công nghệ thông tin ở Việt Nam nói riêng và trên thế giới nói chung. Nó là một
trong những mục tiêu cơ bản trong lĩnh vực công nghệ thông tin, do đó bài toán
mô phỏng là một trong những bài toán cơ bản, cốt yếu trong lĩnh vực công nghệ
thông tin. Các nhà nghiên cứu trên thế giới do theo đuổi các nghiên cứu mô
phỏng này từ hàng trục năm qua, gần đây đã thu được nhiều thành tựu đáng kể.
Bài toán mô phỏng là một bài toán mô phỏng lại những hiện tượng, hoạt động
của những đối tượng trong thế giới thực, mô phỏng lại những hoạt động của con
người, …Tuy nhiên, tuỳ thuộc vào từng bài toán cụ thể mà chúng ta có các bài
toán mô phỏng khác nhau.
Trong thực tại ảo, có rất nhiều loại đối tượng khác nhau, với mỗi đối tượng
có các chất liệu che phủ khác nhau, …Do đó, để mô phỏng các đối tượng trong
thực tại ảo trước hết chúng ta cần tạo ra đối tượng cần mô phỏng. Mỗi đối tượng
nghiên cứu loại chất liệu cụ thể: chất liệu lông, tóc. Vì lông, tóc là một trong
những thành phần quan trọng không thể thiếu đối với rất nhiều đối tượng như:
con người, động vật, …nó là những 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ì lông và tóc gắn liền với nhiều đối tượng
trong cuộc sống chúng ta như lông, tóc đều gắn liền với đối tượng là con người,
ngoài ra lông còn gắn liền với nhiều đối tượng khác như lông con châu, lông con
bò, lông con chó, Vì vậy, để mô phỏng được các đối tượng khác nhau chúng ta
cần mô phỏng chất liệu lông, tóc, mô tả đối tượng, phân loại và phân nhóm các
mẫu lông, tóc khác nhau nên việc tạo ra các kiểu lông, tóc phù hợp với từng đối
tượng là những vấn đề quan trọng trong mô phỏng, được ứng dụng trong nhiều
ngành khoa học khác nhau. Một mức thấp hơn nhưng lại được ứng dụng nhiều đó
- 12 -
là việc tạo ra những mẫu lông và tóc khác nhau, phù hợp với từng đối tượng.
Chẳng hạn, việc tạo ra các mẫu lông hay tóc đối với những người nước ngoài thì
khác đối với các mẫu lông hay tóc con người Việt. Với sự bùng nổ của thông tin,
việc mô phỏng lông và tóc đối với từng đối tượng là điều cần thiết và đặc biệt là
đối với con người Việt, nó thể hiện nét văn hoá của con người Việt Nam.
Mô phỏng chất liệu lông, tóc nhằm mô phỏng lại những hiện tượng, hoạt
động thực của lông, tóc bằng máy tính, tạo ra được các mẫu lông, tóc khác nhau
phù hợp với từng đối tượng trong thế giới thực. Cùng với sự phát triển nhanh
chóng của công nghệ thông tin nói chung và hệ thống mô phỏng nói riêng, mô
phỏng chất liệu lông, tóc càng ngày càng trở nên là một xu hướng tất yếu, là một
hướng nghiên cứu mở và đầy hứa hẹn. Trong vòng 40 năm qua, rất nhiều thuật
toán được đề xuất và triển khai trên các hệ thống mô phỏng chất liệu lông, tóc.
Trên thế giới đã có nhiều bộ phần mềm thương mại dành cho mô phỏng tóc như:
Công ty Infinisys (http://en.infinisys.co.jp/product),
http://www.hairstylesdesign.com, http://hairstyleonline.com.
Những phần mềm này cung cấp chức năng mô phỏng thiết kế kiểu tóc và tô màu
tóc với khoảng trên 800 kiểu tóc và chia làm 7 nhóm:
khác nhau.
Hiện nay, những kết quả nghiên cứu ở trong nước về mô phỏng chất liệu
lông, tóc mới chỉ là bước đầu. Viện Công nghệ thông tin – Viện KH &CN Việt
Nam đã có một số hệ thống mô phỏng chất liệu như hệ thống mô phỏng chất liệu
lông, hệ thống mô phỏng chất liệu nước, hệ thống mô phỏng chất liệu vải. Tuy
nhiên, việc nghiên cứu hệ thống mô phỏng chủ yếu mới dừng ở mức nghiên cứu
và thử nghiệm, xây dựng mô hình trên cơ sở khai thác một số công cụ nhằm hỗ
trợ cho việc nghiên cứu.
Nhằm giải quyết một số điểm mấu chốt trong hệ thống mô phỏng chất liệu
lông, tóc, tác giả tập trung vào một số phương pháp:
- 14 -
+ Mô phỏng những thuộc tính của từng sợi lông - tóc, đám lông - tóc, mảnh
lông – tóc.
+ Mô phỏng chất liệu lông, tóc của các đối tượng khác nhau phù hợp với nét
văn hoá, kiểu dáng, kích thước,
+ Mô phỏng những tương tác theo thời gian thực giữa các thành phần của
lông, tóc như: phát hiện va chạm và điều chỉnh va chạm giữa chúng.
Luận án nghiên cứu một số phương pháp mô phỏng chất liệu và nhằm định
hướng vào ứng dụng mô phỏng chất liệu lông, tóc trong thực tại ảo.
1.2.2. Mô hình mô phỏng chất liệu tóc
Lông và tóc có thể nói là những chất liệu gần giống nhau, chúng có cùng
tính chất vật lý. Nhưng thường thì Mô phỏng lông trong thực tại ảo sẽ dễ dàng
hơn mô phỏng tóc rất nhiều, ta thấy lông thường là ngắn hơn tóc, mềm mại hơn
và ít phải chịu tác động từ những lực bên ngoài. Chúng được dùng cho những đối
tượng ít được quan tâm hơn như: những con thú có lông, những con thú nhồi
bông, quần áo lông, hay trên con người như lông my, lông mày, lông tay…Do
đó khi mô phỏng lông chỉ cần tạo ra lông và gắn vào đối tượng, khi mà đối tượng
chuyển động thì lông cũng chuyển động theo. Mọi đối tượng cần được phủ lông
đều phải được xây dựng thông qua các phần mềm tạo hình 3d. Dưới đây là một
Hình 1.2.3: Một vài mẫu mô phỏng chất liệu tóc.
Do vậy để xây dựng được những nhân vật trong thế giới ảo giống với con
người ngoài thực tế hơn, thì tóc là một phần rất quan trọng trong việc xây dựng
mô hình nhân vật, để làm cho nhân vật sinh động. Việc xây dựng được một mô
hình tóc phù hợp với nhân vật đòi hỏi người lập trình phải mất nhiều thời gian,
công sức, bởi vì những vấn đề liên quan đến tóc là rất khó khăn và phức tạp.
Hình 1.2.4: Hai dạng tóc thẳng và tóc quăn
- 17 -
Tóc chuyển động không theo một hướng cụ thể, mà nó chuyển động theo những
lực tác động đến chúng, chẳng hạn như: ảnh hưởng của gió, hướng chuyển động
của đầu, của thân thể, theo trọng lực, ngoài ra nó còn bị chi phối khi bị thấm ướt
bởi nước. Do đó hình dạng và chuyển động của tóc rất phong phú, đa dạng.
Hình 1.2.5: Tóc khô và tóc thấm nước
Ngoài ra, việc phát hiện va chạm giữa tóc với tóc, gữa tóc với các vật thể khác
cũng đòi hỏi nhiều công nghiên cứu, để từ đó sẽ có sự phản xạ lại của tóc một
cách hợp lý. Không những thế, khi có ánh sáng chiếu vào thì màu của tóc cũng
phải thay đổi, phải có khả năng phản xạ lại ánh sáng một cách linh hoạt, để người
quan sát có cảm giác tóc mô phỏng gần giống với tóc ngoài thực tế.
1.3. Chức năng
Trong đề tài này chỉ trình bày một số mô hình mô phỏng tóc đơn giản, bao
gồm: những sợi tóc riêng lẻ, những bó tóc và những mảnh tóc. Những mô hình
này được xây dựng từ những lớp khung cơ bản, được mô tả qua những chuyển
động đơn giản và sự phát hiện va chạm, biến đổi đồ họa cho tóc, để đạt được sự
mềm dẻo trong sự cân bằng giữa quá trình mô phỏng và chất lượng của tóc được
mô phỏng. Mỗi một cái đầu của con người có khoảng 100 000 sợi tóc riêng biệt,
do vậy rất khó khăn để làm cho những sợi tóc này chuyển động trong thời gian
thực được giống như ở ngoài thế giới thực, vì máy tính phải sử dụng những con
Giảm bớt tính toán trong toàn bộ quá trình mô phỏng động, sự phát hiện
va chạm của lông, tóc và những biến đổi đồ họa cho lông và tóc.
Tính linh hoạt trong việc làm cân bằng giữa tốc tính toán để mô phỏng
lông, tóc và tính tự nhiên của lông, tóc đạt được trong quá trình mô phỏng.
Tính tổng quát dưới dạng mô hình nhiều kiểu tóc khác nhau: ngắn thay vì
dài, thẳng thay vì gợn sóng, mỏng thay vì dày, tinh tế thay vì thô.
- 19 -
Sử dụng những kiểu khung cơ bản khác nhau để tạo ra những kiểu tóc khác nhau
khi mà thực hiện quá trình mô phỏng, có thể phải chấp nhận giảm chất lượng của
tóc khi mô phỏng.
Hình 1.3.1: 3 kiểu tóc đơn giản
(a) Một miếng tóc; (b) Một bó tóc; (c) Một sợi tóc.
Mô hình mô phỏng tóc là một mảng nghiên cứu lớn trong bộ môn đồ hoạ máy
tính và đã có rất nhiều cách tiếp cận được đề cập liên quan đến lĩnh vực này. Kỹ
thuật cơ bản được giới thiệu là mô hình chuyển động của những sợi tóc riêng lẻ,
với mỗi sợi tóc được miêu tả như là hàng loạt những đoạn thẳng giống nhau được
liên kết với nhau, việc hình thành nên sợi tóc phụ thuộc vào góc giữa những đoạn
thẳng đó. Những lực tương tác ứng dụng để điều khiển các điểm của những đoạn
thẳng phục vụ cho điều khiển hoạt động của tóc. Để giảm bớt toàn bộ thời gian
tính toán các thành phần của tóc ở gần nhau hoặc di chuyển trong những kiểu
cách tương tự, chúng được bó lại cùng nhau thành một nhóm hay một mớ. Sử
dụng những cách tương tự để nhóm những sợi tóc riêng lẻ lại cùng nhau thành
mớ để thuận lợi cho hoạt động của tóc dài, với mỗi kiểu sử dụng khung co giãn
và có thể làm biến dạng chúng. Một cách tiếp cận tương tự được sử dụng để
tương tác thiết kế các kiểu tóc. Tuy nhiên không kỹ thuật nào ở đây có thể thực
hiện cả hoạt động cho tóc và sự biến đổi của chúng trong thời gian thực. Mới
đây, một khối lượng ảnh 2D đã được sử dụng để làm gần chính xác cho những
nhóm tóc. Kỹ thuật như vậy cho phép sử dụng để mô phỏng tóc trong thời gian
riêng lẻ, những bó và những miếng tóc.
Sử dụng cách mô phỏng ở mức độ chi tiết đã được mở rộng làm cho
những kiểu tóc chuyển động và những mô phỏng động của tóc được tốt hơn.
Kiểu mô phỏng ở mức độ chi tiết này được sử dụng để làm đơn giản hoặc làm
gần đúng những chuyển động trong một khung cảnh như cảnh ngoài thực tế,
tương tự như cách mô tả hình học chi tiết, nó được sử dụng để làm đơn giản hoá
một số hình học phức tạp. Mỗi kiểu tóc có một kiểu khung nhất định và chuyển
động của tóc lại dựa vào việc điều khiển các nút của bộ khung, nó ảnh hưởng đến
toàn bộ kiểu tóc.
Những loại tóc quăn có nhiều sự phức tạp hơn tóc thẳng, nó cần nhiều
điểm để định nghĩa độ quăn của tóc. Những đoạn mà độ xoắn ốc chặt hơn, thì
kích thước đoạn giữa mỗi điểm điều khiển được làm nhỏ hơn, có nhiều điểm điều
khiển trong khung hơn. Việc giảm bớt kích thước đoạn giữa mỗi điểm điều
khiển làm cho số điểm được điều khiển tăng lên nhưng vẫn giữ nguyên được độ
dài của tóc. Một bộ khung có thể được sử dụng để tạo ra nhiều kiểu tóc. Mỗi kiểu
- 22 -
mô phỏng tóc ở mức độ chi tiết được phát sinh từ một mô hình khung và như
vậy, nó có thể được sử dụng cho nhiều kiểu tóc khác nhau. Một nhóm những sợi
tóc riêng lẻ được được tập hợp lại là biểu hiện ở mức độ chi tiết nhất, sự trình
bày này đưa ra một kết quả trực quan, tốt nhất cho mỗi kiểu tóc. Hình dạng của
những nhóm sợi và những bó tóc được mô tả hay định nghĩa bởi người sử dụng.
Trong khi mô phỏng dưới dạng bó, cho kết quả tốt hơn đối với tóc thẳng, nó cũng
có thể được sử dụng để làm mô hình cho tóc quăn và gợn sóng, nhưng nó không
đạt được sự tinh tế như hai sự trình bày kia. Tuy nhiên những mô phỏng theo
kiểu miếng tóc chỉ được sử dụng khi người xem không quan tâm đến sự tinh tế
của nó. Mô phỏng kiểu miếng tóc được sử dụng khi khoảng cách từ nhân vật đến
người xem là xa, và những chi tiết chính xác không được chú ý, hoặc khi tóc
không nằm trong tầm nhìn của người xem. Như vậy trình bày theo kiểu miếng
không thể cho một kết quả chính xác cho việc trình bày các kiểu tóc. Ba kiểu tóc
- 24 - Hình 2.1.3: Khung hình cấu tạo của sợi tóc
Các đốt tóc được chia ra là các đoạn: S
1
, S
2
… Các đoạn này được liên kết
với nhau bởi các link, các liên kết này làm cho tóc trở nên mềm mại hơn. Ở đây
các liên kết là các lực liên kết giữa các đoạn lại với nhau tạo nên sự ràng buộc
giữa các đoạn với nhau.
Hình 2.1.4: Các lực liên kết trong một sợi tóc
Qua hình ta thấy tại những điểm nút (đốt tóc) thì những đoạn sau đó có thể
quay xung quanh những nút này, ngoài ra giữa các nút đối nhau lại có một lực
ràng buộc, do vậy chuyển động của tóc sẽ mềm mại hơn. Việc chuyển động của
- 25 -
tóc phụ thuộc vào các góc
0
và Ø
0
, tại mỗi điểm điều khiển trong khung.
Tóc thẳng có thể được tạo bởi sự biến đổi của các góc từ
i 0
đến 0 và Ø
cho tính quăn của tóc.
F
i spring,
là lực cho nút thứ i trong khung được tính toán bằng việc kết hợp các lực
F
i
và F
i Ø
.
Trong đó k
và k
Ø
là những hằng số,
i 0
và Ø
i 0
là những góc ban đầu của nút
thứ i.