Tải bản đầy đủ (.pdf) (61 trang)

Một số ứng dụng mô phỏng lông và tóc trong thực tại ảo

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.07 MB, 61 trang )

MỤC LỤC

MỤC LỤC ..........................................................................................................1
LỜI CẢM ƠN .................................................... Error! Bookmark not defined.
MỞ ĐẦU ............................................................................................................3
Chương 1: TỔNG QUAN VỀ THỰC TẠI ẢO VÀ LÔNG, TÓC TRONG THỰC
TẠI ẢO ...............................................................................................................5
1.1. Tổng quan về Thực tại ảo..........................................................................5
1.1.1. Thực tại ảo là gì..................................................................................5
1.1.2. Sơ lược lịch sử phát triển ....................................................................5
1.1.3. Các lĩnh vực ứng dụng........................................................................6
1.2. Mô phỏng lông, tóc trong Thực tại ảo và ứng dụng .................................13
1.2.1. Vai trò của mô phỏng lông, tóc trong Thực tại ảo .............................13
1.2.3. Hướng tiếp cận .................................................................................18
1.2.4. Ứng dụng của mô phỏng lông tóc trong Thực tại ảo .........................23
Chương 2: KỸ THUẬT MÔ PHỎNG LÔNG, TÓC TRONG THỰC TẠI ẢO ..24
2.1. Kỹ thuật bề mặt hình trụ NURBS............................................................25
2.1.1. Sợi tóc riêng lẻ..................................................................................25
2.1.2. Bó tóc...............................................................................................26
2.2. Các vấn đề liên quan cách xử lý các hiệu ứng tóc....................................31
2.2.1. Vấn đề giao nhau của tóc..................................................................31
2.2.2. Cấu trúc dữ liệu tóc ..........................................................................31
2.2.3. Đánh bóng mô hình ..........................................................................33
2.2.4. Chiếu sáng tổng thể ..........................................................................34
2.2.5. Hình học aliasing..............................................................................34
2.2.6. Xén tóc .............................................................................................35
2.2.7. Tạo ra mái tóc hợp lí.........................................................................36
2.2.8. Khử những nếp răng cưa...................................................................37
2.2.9. Một ý tưởng đối với độ trong suốt ....................................................37

1




Chương 3:

CHƯƠNG TRÌNH ỨNG DỤNG .................................................38

3.1. Đặt vấn đề bài toán..................................................................................38
3.2. Hướng giải quyết bài toán .......................................................................38
3.3. Kết quả đạt được .....................................................................................43
3.3.1. Một số kết quả đã đạt được...............................................................43
3.3.2. Một số hình ảnh khi chạy chương trình.............................................43
3.4. Một số kỹ thuật liên quan ........................................................................47
3.4.1. Phép nội suy Affine ..........................................................................47
3.4.2. Phép nội suy Billineear ....................................................................48
3.5. Một số đoạn mã chương trình quan trọng ................................................50
3.5.1. Load một file LWO vào VC++ .........................................................50
3.5.2. Khởi tạo từng sợi tóc ........................................................................57
3.5.3. Mô phỏng sợi tóc theo thời gian thưc...............................................58
3.5.4. Tìm bề mặt phủ tóc...........................................................................59
KẾT LUẬN.......................................................................................................60
TÀI LIỆU THAM KHẢO .................................................................................61

2


MỞ ĐẦU

Ngày nay sự phát triển của công nghệ thông tin đã đẩy nhanh sự phát triển
nhiều lĩnh vực của đời sống xã hội. Với sự phát triển của phần cứng về cả
phương diện thu nhận và hiển thị đã mở ra nhiều hướng mới cho sự phát triển của

phần mềm. Trong số đó phải kể đến lĩnh vực thể hiện hình ảnh 3 chiều.
Trong lĩnh vực thể hiện hình ảnh 3 chiều có 2 phần chính là tạo mô hình bề
mặt (Modelling) và tạo sự chuyển động cho mô hình (Animation). Còn trong xây
dựng các mô hình, mô hình nhân vật là một phần không thể thiếu, trong đó để
thực hiện mô phỏng các nhân vật thì tóc là một trong những yếu tố quan trọng.
Mô phỏng 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 lông,
tóc càng ngày càng trở nên cần thiết. 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 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

( />
,

. 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 phục vụ cho việc xây dựng các mô hình nhân vật
trong thế giới game là chủ yếu.
Hiện nay với sự phát triển của phần cứng đã thúc đẩy sự phát triển của nhiều
lĩnh vực khác của công nghệ thông tin, đặc biệt là xử lý ảnh và đồ hoạ 3 chiều.
Những kết quả này hiện nay ở Việt Nam chưa nhiều. Xuất phát từ những lý do
trên, dưới sự chỉ dẫn của thầy hướng dẫn, em đã chọn đề tài “Một số kỹ thuật mô
phỏng lông, tóc và ứng dụng”.

3


Bố cục của đồ án gồm Phần mở đầu, Phần kết luận, phần phụ lục, Tài liệu

tham khảo và 3 chương chính có nội dung, cụ thể:
Chương 1: Tổng quan về Thực tại ảo, mô phỏng lông, tóc trong Thực tại ảo
Trình bày tổng quan về thực tại ảo và mô phỏng lông, tóc trong thực
tại ảo, đặt ra nhiệm vụ của đồ án là nghiên cứu các kỹ thuật mô
phỏng lông, tóc trong Thục tại ảo và ứng dụng của nó.
Chương 2: Các kỹ thuật mô phỏng lông, tóc
Trình bày một số kỹ thuật mô phỏng lông, tóc trong Thực tại ảo và
các hiệu ứng liên quan.
Chương 3: Chương trình ứng dụng
Trình bày một chương trình ứng dụng mô phỏng lông, tóc theo thời
gian thực trong Thực tại ảo.

4


Chương 1: TỔNG QUAN VỀ THỰC TẠI ẢO VÀ LÔNG, TÓC TRONG
THỰC TẠI ẢO

1.1. Tổng quan về Thực tại ảo
1.1.1. Thực tại ảo là gì
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 để cung cấp thông tin
đầu vào và sử dụng khối hiển thị trực quan (VDU) để 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 (Virtual Reality-VR), 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 hơn với máy tính.
Thực tại ảo là công nghệ sử dụng các kỹ thuật mô hình hoá các đới tượng
trong không gian ba chiều với sự hỗ trợ của các thiết bị đa phương tiện hiện đại
để xây dựng một thế giới mô phỏng bằng máy tính – môi trường ảo (virtual
environment). Trong thế giới ảo này, người sử dụng không còn được xem như

người quan sát bên ngoài, mà đã thực sự trở thành một phần của hệ thống. Một
cách lý tưởng, người sử dụng có thể tự do chuyển động trong không gian ba
chiều, tương tác với các vật thể ảo, quan sát và khảo cứu thế giới ảo ở những góc
độ khác nhau về mặt không gian. Ngược lại, môi trường ảo lại có những phản
ứng tương ứng với mỗi hành động của người sử dụng, tác động vào các giác quan
như thị giác, thính giác, xúc giác của người sử dụng trong thời gian thực và tuân
theo những quy tắc vật lý rất tự nhiên, làm anh ta có cảm giác như đang tồn tại
trong một thế giới thực.
1.1.2. Sơ lược lịch sử phát triển
Mặc dù Thực tại ảo được mô tả như một công nghệ mới mang tính cách
mạng, nhưng ý tưởng về việc nhúng người sử dụng vào một môi trường nhân tạo
không còn mới. Thực tại ảo có thể được xem như một sự mở rộng của những ý
tưởng đã ra đời khá lâu như hệ thống mô phỏng bay (flight simulation), rạp chiếu
phim màn ảnh rộng (như Cinerama hay IMAX). Sử dụng các hệ thống như vậy,

5


người dùng được quan sát hình ảnh trong một màn hình có trường nhìn rộng lớn
cho họ cảm giác như đang tồn tại trong trường không gian đó.
Sự ra đời của các máy điện toán mini và bài báo khoa học của Ivan
Sutherland có tên “Màn hình tối tân” (Ultimate Display) vào năm 1965 được xem
là hai bước đột phá lớn vào những năm 1960 cho công nghệ Thực tại ảo. Trong
bài báo của mình, Sutherland đã tiên đoán sự phát triển của Thiết bị Hiển thị đội
đầu (Head Mounted Display-HMD) đầu tiên, mà sau đó chính ông đã tạo ra một
thiết bị như vậy, có tên là “Thanh kiếm của Damocles” (The Sword of
Damocles). Sutherland cũng nhận ra tiềm năng của máy điện toán trong việc tạo
lập hình ảnh cho hệ thống mô phỏng bay, trong khi những hình ảnh này trước đó
được xây dựng bằng video camera.
Những ý tưởng này được hai nhà khoa học Mỹ ở NASA là Fisher và

McGreevy kết hợp lại trong một dự án có tên là “trạm làm việc ảo” (visual
workstation) vào năm 1984. Cũng từ đó NASA phát triển thiết bị Hiển thị đội
đầu có tính thương mại đầu tiên, được gọi là màn hình môi trường trực quan
(visual environment display - VIVED), thiết kế dựa trên mẫu hình mặt nạ lặn với
các màn hình quang học mà hình ảnh được cung cấp bởi hai thiết bị truyền hình
cầm tay Sony Watchman. Sự phát triển của thiết bị này đã thành công ngoài dự
đoán, bởi NASA đã sản xuất được một thiết bị HMD có giá chấp nhận được trên
thị trường, và như vậy ngành công nghiệp Thực tại ảo đã ra đời.
1.1.3. Các lĩnh vực ứng dụng
Mặc dù khái niệm về Thực tại ảo đã xuất hiện từ khá lâu, nhưng do nhiều lý
do về mặt công nghệ (kéo theo chi phí cho nghiên cứu và phát triển), phải mất
nhiều thời gian và nỗ lực để Thực tại ảo có được những thành tựu như ngày nay.
Hiện tại đây vẫn là lĩnh vực công nghệ nhiều tiềm năng xét về khía cạnh ứng
dụng. Ở đây, đồ án cố gắng đưa ra những lĩnh vực ứng dụng chính có khuynh
hướng phát triển mạnh mẽ nhất trong thời gian gần đây.

6


 Kiến trúc và thiết kế thiết bị công nghệ
Một trong những lĩnh vực ứng dụng tiêu biểu nhất của Thực tại ảo là thiết kế
kiến trúc. Khả năng mô hình hoá thế giới thực của công nghệ Thực tại ảo dường
như đáp ứng một cách tự nhiên mục tiêu của ngành thiết kế kiến trúc: đưa ra mô
hình trực quan nhất có thể về hình ảnh công trình kiến trúc mong muốn trong
tương lai.

Hình 1.1: Ứng dụng thực tại ảo trong thiết kế kiến trúc
Việc xây dựng các mô hình không gian kiến trúc bằng hình ảnh lập thể với
đầy đủ mô tả trực quan về các hình khối kiến trúc của một căn nhà, cách bố trí
nội thất bên trong, thậm chí hoa văn cửa sổ hay màu sơn của tường, cùng với khả

năng cho phép khách hàng tự do tham quan, khảo sát căn nhà của họ trong tương
lai theo nhiều góc độ và vị trí, từ phòng này sang phòng khác thực sự đem lại
hiệu quả trực quan mang tính cách mạng trong lĩnh vực mang nhiều đặc điểm
nghệ thuật này.
Tương tự như trong kiến trúc, với các ngành sản xuất thiết bị mà trong đó
công đoạn thiết kế đóng vai trò quan trọng như thiết kế động cơ, thiết kế ô tô, tàu
biển, hay thậm chí tàu vũ trụ, hình dạng và cách bố trí các chi tiết không chỉ đơn
thuần mang tính thẩm mỹ, tính kỹ thuật mà đôi khi còn ảnh hưởng tới sức sống
của thiết bị xét về khía cạnh thương mại. Khả năng mô hình hoá bằng hình ảnh
lập thể của công nghệ Thực tại ảo cho phép người thiết kế thể hiện được một

7


cách trực quan nhất ý tưởng thiết kế của mình, đánh giá cơ bản về hiệu năng của
thiết bị dựa trên những thử nghiệm mô phỏng trên thiết bị ảo, từ đó có những
hiệu chỉnh cần thiết trước khi thiết bị thực sự được sản xuất. Điều này rõ ràng
góp phần không nhỏ trong thành công của thiết bị công nghệ, giảm bớt những chi
phí phát sinh.

Hình 1.2: Ứng dụng công nghệ Thực tại ảo trong thiết kế thiết bị công nghệ
 Giải trí
Thị trường giải trí cũng là một ứng dụng tiêu biểu khác của các môi trường
Thực tại ảo. Trên thực tế, đây là lĩnh vực ứng dụng lớn nhất xét theo khía cạnh
lợi ích về tài chính. Rất nhiều công ty đang sản xuất ra các trò chơi có sử dụng
các nguyên lý Thực tại ảo. Số lượng người bị cuốn hút theo các trò chơi như vậy,
đặc biệt là giới trẻ, tăng theo cấp số nhân đánh dấu tiềm năng thương mại to lớn
của

công


nghệ

Thực

tại

ảo

trong

lĩnh

vực này.

8


Hình 1.3: Ứng dụng thực tại ảo trong lĩnh vực giải trí
Hơn thế, ngành công nghiệp trò chơi điện tử có những ảnh hưởng to lớn tới
lĩnh vực Thực tại ảo. Nó tạo ra động lực cần thiết để thúc đẩy sự phát triển của
rất nhiều phần cứng Thực tại ảo, chẳng hạn như card tăng tốc đồ hoạ (graphic
accelerator cards). Nếu như chúng ta trở lại khoảng 10 năm về trước, thật khó có
thể tìm thấy một card tăng tốc đồ hoạ có đủ năng lực tính toán cần thiết cho phép
tạo ra các ứng dụng Thực tại ảo thời gian thực. Tại thời điểm đó, những chiếc
card như vậy trị giá hàng ngàn đô-la và chỉ đủ khả năng sinh 100.000 đa
giác/giây ở mức độ phân giải trung bình. Những thiết bị phần cứng khác như
Găng tay dữ liệu (DataGloves) và Thiết bị hiển thị đội đầu (Head Mounted
Displays-HMD) cũng chịu ảnh hưởng phần nào của công nghiệp giải trí. Tóm lại,
chúng ta có thể nói rằng các ứng dụng Thực tại ảo trong giải trí đã và đang đóng

một vai trò quan trọng trong việc định hướng đi cho công nghiệp Thực tại ảo.

9


 Giáo dục và Đào tạo
Phát triển trên nền công nghệ và kỹ thuật cao, Thực tại ảo tích hợp những đặc
tính làm cho bản thân nó có những tiềm năng vượt trội so với các công nghệ đa
phương tiện truyền thống khác: cho người sử dụng cảm nhận sự hiện diện của
mình trong môi trường do máy tính tạo ra bằng khả năng tương tác, tự trị
(autonomy) của người dùng trong môi trường ảo, cũng như bằng những phản hồi
tức thời, trực quan từ phía môi trường ảo tới các giác quan của người sử dụng.
Hơn thế nữa, công nghệ Thực tại ảo cho phép mô phỏng những môi trường nguy
hiểm hay tốn kém như buồng lái máy bay, phòng thí nghiệm hoá chất v.v..

Hình 1.4: Mô hình huấn luyện bay sử dụng công nghệ Thực tại ảo
Tất cả những đặc tính này khiến công nghệ Thực tại ảo trở nên rất phù hợp
cho các ứng dụng có tính chất giáo dục hay đào tạo. Trong đó, những mô hình
trình diễn lập thể đóng vai trò quan trọng. Các vật thể trong thế giới ảo được biểu
diễn chính xác hơn nhiều so với các đối tượng phẳng (hình ảnh hai chiều) do
được bổ sung thêm chiều sâu. Kết quả là các trình diễn minh hoạ hay những thí
nghiệm cũng được mô phỏng chính xác hơn do có thể quan sát từ nhiều góc độ
khác nhau về mặt không gian, điều mà thế giới phẳng hai chiều không làm được.
Tính chất trực quan của bài giảng được nâng cao một bước làm tăng sự hứng
thú trong học tập cũng như khả năng ghi nhớ các khái niệm quan trọng trong bài

10


giảng. Xét về mặt này, khả năng tương tác với môi trường ảo là một khía cạnh

đáng lưu ý. Nếu thiếu đi khả năng tương tác (hai chiều) giữa môi trường ảo và
người tham dự, Thực tại ảo không gì khác hơn là một giao diện lập thể ấn tượng
nhưng không có sự sống. Trong các phòng thí nghiệm hay huấn luyện ảo, thực
hiện các thao tác trên các đối tượng trong môi trường ảo, nhận được những phản
hồi kịp thời và có nghĩa từ các vật thể và môi trường là một trong những yếu tố
tiên quyết khiến cho học viên có cảm nhận đang được trải nghiệm trong những
tình huống thực. Từ đó, học viên nắm bắt được nhanh chóng và có ý thức hơn
với những tính huống được học.
 Y học
Y học là một trong những lĩnh vực ứng dụng tiềm năng trong công nghệ Thực
tại ảo và là một trong số ít lĩnh vực ứng dụng thuộc ngành khoa học của Thực tại
ảo. Cho đến nay, lĩnh vực nổi bật trong y học áp dụng thành công công nghệ
Thực tại ảo là giả lập giải phẫu (Surgical Simulation).
Trên cơ sở các kỹ thuật đồ hoạ máy tính và Thực tại ảo, hệ thống đào tạo y
học này bao gồm hai bộ phận cơ bản: Khối tương tác ba chiều là mô hình sinh
thể ảo cho phép người sử dụng thực hiện các thao tác giải phẫu thông qua các
dụng cụ giải phẫu ảo; Khối giao diện người dùng hai chiều cung cấp những thông
tin phản hồi trực quan từ mô hình trong quá trình giải phẫu cũng như những
thông tin hướng dẫn trong phiên đào tạo.

Hình 1. 5: Phẫu thuật ảo – Phương
pháp đào tạo phẫu thuật mới dùng công
nghệ Thực tại ảo

11


Phương pháp đào tạo có tính tương tác cao này mang nhiều ưu điểm so với
các phương pháp truyền thống như thực hành trên mô hình plastic hay trên bệnh
nhân thực. Thứ nhất, khác với phương pháp dùng mô hình plastic, sinh thể giải

phẫu ảo có khả năng cung cấp những thông tin phản hồi sinh học một cách tự
nhiên như một sinh thể sống thực, dưới tác động giải phẫu của bác sỹ mổ, chẳng
hạn như sự thay đổi về nhịp tim, huyết áp,… Điều này tạo cho học viên có cảm
giác đang trải qua một ca mổ trong một tình huống thực. Thứ hai, khác với thực
hành trên bệnh nhân thật, rõ ràng sai lầm của học viên trong quá trình thực tập
không phải trả giá bằng những thương tổn thực trên cơ thể người bệnh. Điều này
cũng làm giảm áp lực lên học viên khi thực hiện phẫu thuật ảo. Từ đó, giúp họ tự
tin và chủ động hơn trong học tập.
Phương pháp này không chỉ cho phép các học viên y khoa thực hành các ca
phẫu thuật trong tình huống thực, đem lại cho họ những kinh nghiệm cần thiết
trước khi thực hiện phẫu thuật trên cơ thể con người, đây còn là cơ hội để các bác
sỹ mổ nâng cao kỹ thuật giải phẫu và kỹ năng phối hợp làm việc theo nhóm trong
phòng mổ. Điều này đặc biệt quan trọng trong các tình huống phẫu thuật nguy
hiểm và nhạy cảm.
Các kỹ thuật Thực tại ảo cũng được sử dụng để hỗ trợ bác sỹ mổ trong giai
đoạn lập kế hoạch tiền phẫu thuật (preoperative planning). Trước khi thực hiện
quy trình giải phẫu trên bệnh nhân thực, người bác sỹ có thể thử nghiệm các
phương pháp tiến hành phẫu thuật khác nhau trên mô hình ảo của người bệnh.
Mô hình này mô phỏng đầy đủ các đặc điểm bệnh lý của người bệnh thật. Theo
cách này, người bác sỹ sẽ lựa chọn ra được cách thức an toàn nhất, hiệu quả nhất
và tốn ít thời gian nhất trong phòng phẫu thuật, hạn chế những biến cố trong quá
trình giải phẫu.

12


1.2. Mô phỏng lông, tóc trong Thực tại ảo và ứng dụng
1.2.1. Vai trò của mô phỏng lô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 200.000-400.000 sợi. Số lượng tóc nhiều hay ít còn tùy thuộc vào
chủng tộc, yếu tố di truyền của ông bà, cha mẹ. Đôi khi dựa 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 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ở
lê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 những nhân vật với những 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 vào Thực tại
ảo.
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 qúa 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….Công việc mô phỏng tóc là

13



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.
1.2.2. Phân loại tóc
Phân loại tóc có rất nhiều cách nhưng trong đồ án này tôi xin được đưa ra một
số cách để phân loại tóc như: phân loại theo tính chất của tóc, phân loại theo kiểu
tóc, phân loại tóc theo màu sắc tóc, phân loại tóc theo giới tính, phân loại tóc
theo độ tuổi…
+ Phân loại tóc theo tính chất chủa tóc:


Kết cấu của sợi tóc: to hay nhỏ?



Tính co dãn đàn hồi của sợi tóc: cứng hay mềm?



Độ dày mỏng, tính nặng nhẹ của sợi tóc.

+ Phân loại tóc theo kiểu tóc:


Tóc dài, tóc ngắn



Tóc cua, tóc mái, tóc để ngôi…




Tóc quăn, tóc thẳng…

(a) tóc quăn

(b) tóc thẳng
Hình 1.7

14


+ Phân loại tóc theo giới tính:


Tóc nam



Tóc nữ

Hình 1.9: Một số kiểu tóc nam

Hình 1.10: Một số kiểu tóc nữ

15


+ Phân loại tóc theo độ tuổi:



Tóc trẻ em



Tóc người trưởng thành



Tóc người cao tuổi

Tóc trẻ em

Tóc người trưởng thành
Hình 1.10

Hình 1.11: Tóc người cao tuổi

16


+ Phân loại tóc theo màu sắc:


Tóc đen



Tóc nâu




Tóc vàng



Tóc trắng …

Hình 1.12: Minh họa một số mầu tóc
Mô phỏng tóc được ứng dụng để xây dựng nên các kiểu tóc khác nhau cho
các nhân vật khác nhau trong thế giới ảo.

17


1.2.3. Hướng tiếp cận
Chúng ta có thể tiếp cận việc mô phỏng lông, tóc theo một số kỹ thuật sau:
 Kỹ thuật quét lưới Rasterization
* Ý tưởng: Việc quét lưới (theo hình 2.1) hoặc quét mành đó chính là một
quá trình nhận biểu tượng tổng thể, nhìn chung đó là mắt lưới tam giác hoặc là
hình ảnh 3D chuyển hoá vào không gian của màn hình và biến thành hình ảnh
hình học 2D ở trên màn hình. Đây là quá trình được sử dụng bởi hàng loạt các trò
chơi điện tử và những hình ảnh tương tác khác bởi vì phần cứng 3D hiện đại có
thể quét mành ở tốc độ cao đến mức không thể ngờ tới.

Hình 2.1. Biểu diễn quét dòng
* Kỹ thuật: Khi tạo tóc, chúng ta cần một cách để đặt tóc trên bề mặt của mô
hình. Thật là dễ dàng để đặt một số lượng tóc đồng đều trên bề mặt của các mắt
lưới tam giác:
+ Mô hình hình tam giác cơ sở:
Lặp lại số lần làm tròn kết quả các số nguyên của [vùng tam giác cộng với

một số ngẫu nhiên nhỏ]:
Phát sinh hai số ngẫu nhiên giữa 0 và 1.
Nếu tổng của chúng > 0.5 thì lật chúng lại (số = 1 - số). Hai số bây giờ đại
diện một tọa độ ngẫu nhiên trong tam giác 2D tạo ra những điểm (0,0),(1,0),(0,1).
Có được tọa độ thế giới bởi việc coi hai số như những tọa ngang qua hình tam
giác 3D (“Những tọa độ barycentric”).
Đặt gốc tóc tại tọa độ đó.
Nếu như mục đích để đặt tóc một cách chính xác trên những điểm phân tán
ngẫu nhiên nhưng bằng nhau qua bề mặt mắt lưới hình tam giác, thì những giải

18


thuật chính xác hơn có thể được phát triển, nhưng cái này đã đủ tốt cho việc tạo
ra lông thú.
Sau khi được làm, thông qua tóc ban đầu và tạo ra một sợi tóc thú tại một
trong số chúng, theo phần còn lại của những tham số tóc như mô tả cơ sở, góc
độ, độ nghiêng,…. đây là phần mã chạy nặng nhất của tiến trình, và hầu hết là
các dòng véctơ toán học khá phức tạp nối tiếp nhau và nhiều phương pháp đa
dạng đặc biệt khác có vẻ như làm việc không trơn chu như là bộ tự sinh tóc của
Maya.
Những tính chất thiếu:
 Cụm lông và sự hấp dẫn (điều khiển lông thú sử dụng tóc).
 Hiệu chỉnh lông thú/tóc (sử dụng để điều khiển hệ thống lông thú với
hệ thống tóc).
 Ánh sáng bao quanh không được nhòe hoặc vạch ra vì nó được giới
hạn trong bộ quản lí màu tô của Turtle.
Những đặc tính khác:
 Sắc thái không phải lúc nào cũng giống nhau.
 Mật độ tóc và tỉ lệ được phép ở một vài vị trí là khác nhau.

 Tính mờ sẽ làm việc không hiệu quả.
Hai lí do cơ bản giải thích việc quét mành nhanh đến như vậy đó là mức độ
cực kì cao của độ tương thích bộ nhớ mà có thể đạt được và một số lượng lớn
tính song song ẩn mà có thể khai thác được. Việc tạo bóng và tạo kết cấu trong 1
pixel ở hầu hết mọi trường hợp đều có thể kết hợp được với cùng một bộ nhớ và
thực hiện các phép tính toán tương tự giống như những bộ nhớ xung quanh nó và
chúng không hoàn toàn lệ thuộc vào nhau. Phần cứng hiện đại phát triển dựa trên
sự tương thích của bộ nhớ, do lỗi trễ của bộ nhớ gia tăng tương ứng đối với công
suất hoạt động, và bộ nhớ trong được sử dụng để làm giảm độ chậm này. Phần
cứng đồ họa có thể chứa một lượng các bộ đệm (bộ nhớ) cực kì chuyên dụng đã
được chọn cẩn thận để có thể khai thác độ tương thích một cách tối ưu, và có thể
dễ dàng chứa đựng những bộ xử lí nhân đôi để có thể đưa thêm vào nhiều pixel
theo cấp độ song song. Một ưu thế khác của quét mành đối với dò tia là khi quét

19


mành toàn bộ phong cảnh không cần được lưu trữ trong bộ nhớ bởi vì nó có thể
được vẽ ra từng phần một.
 Kỹ thuật dò tia Ray tracing
* Ý tưởng: Rò tia tạo ra những hình ảnh bằng cách bắn các tia tưởng tượng
vào khung cảnh và xử lí bằng máy tính tại những điểm bắn chúng (xem hình 2.2),
sau đó sử dụng thông tin nhận được giống như bề mặt thông thường và vị trí
nguồn tia sáng để xử lí bằng máy tính màu sắc của bề mặt tại những điểm bắn
chúng. Nếu như người sử dụng muốn sử dụng nhiều thời gian hơn để tạo ra hình
ảnh, việc dò tia sẽ dễ dàng được bổ xung thêm hiệu ứng phụ như phản chiếu
bóng hoặc minh họa hình cầu bằng cách đơn giản bắn nhiều tia hơn theo những
cách thông minh. Những hiệu ứng này khó khăn hơn nhiều hoặc khó có thể thực
hiện chính xác đối với việc thực hiện quét dòng.
* Kỹ thuật: Những ý kiến đề xuất sử dụng dò tia luôn nhấn mạnh đến tính ưu

việt đa dạng của dò tia và thường lờ đi một việc quan trọng: ý tưởng của việc dò
tia O(log n) chỉ có thể sử dụng được khi biểu diễn hình ảnh ở trạng thái tĩnh, thì
tất cả các cấu trúc dò tia gia tốc theo định nghĩa tối thiểu xây dựng dựa trên cơ sở
O(n) (chúng chứa tất cả hình học của phong cảnh). Một số cấu trúc hỗ trợ với
việc nâng cấp cập nhật, tuy nhiên lại làm cho nhiều hình ảnh động sống động
hơn.
Gần đây có một số nghiên cứu trong việc áp dụng các phần cứng dò tia gia
tốc[2], phần cứng này cũng bị ảnh hưởng bởi vấn đề cấu trúc gia tốc.

Hình 2.2: Dò tia
Việc bắn tia đơn thuần chỉ bắn một lần sử dụng máy bắn gia tốc loại tốt được
xem như O(mlog n), trong đó m là số lượng pixel trong hình ảnh được tạo ra, n là

20


số lượng vật mẫu trong khung cảnh, nhưng việc bắn tia ban đầu vẫn không phải
toàn bộ công việc. Trong công việc ban đầu, những dữ liệu hình học cần phải
được tạo ra từ dữ liệu tóc mà chúng ta có thể lấy ra từ dữ liệu của Maya, và đưa
vào dữ liệu máy gia tốc. Độ phức tạp chuẩn bị hình học thực tế là O(n) đối với
những bộ tóc riêng biệt, độ phức tạp của việc đưa vật thể vào mắt lưới Turtle
không thể dễ dàng ước tính được. Mặc dù xét về cơ sở lý thuyết nó lên lược bớt
dần tới kết quả giống như O(n log n).
Vậy kết luận rằng, chúng ta có O(n)+O(n log n)+O(mlog n) = O((n+m) log
n). Tuy nhiên những nhân tố khác ở những giai đoạn khác nhau, thực tiễn phong
cảnh có thể sử dụng minh họa hình cầu và không chỉ đơn thuần là biểu diễn ngay
khi bắn lần đầu tiên làm cho giả thiết này tương đối là không đúng.
Việc dò tia nhìn chung có thể đạt được nhiều mức độ tương thích của bộ nhớ
nhưng thấp hơn nhiều so với việc quét, bởi những tia khác thường sinh ra những
tia phụ đi theo những hướng khác biệt xuyên qua phong cảnh, và những vật thể

nhìn chung thường là không có một thứ tự kết cấu và không được tạo thành bóng
theo yêu cầu, dẫn đến tính phức tạp và tràn bộ nhớ. Thêm vào đó dò tia chắc
chắn đảm bảo cho toàn phong cảnh ở trong bộ nhớ (cũng có một số cách để thực
hiện việc này, nhưng chúng dùng cũng ít hơn và thường gây ra tổn thất lớn).
 Kỹ thuật The LOD catch-22
Thật không may mắn khi tạo ra nhiều mức chi tiết (LODS) của mô hình và sử
dụng các LOD khác nhau khi đó sự khác nhau quan trọng của các tia sáng (được
mặc định thông qua sự khác nhau của các tia sáng) không phải là một khái niêm
khó, nó không tương thích với hầu hết các tia sáng có cấu trúc gia tốc. Turtle có
dạng “phông nhỏ”, cái mà nhanh nhất, đơn giản là một búi tóc được lắp (lồng)
vào các ô lưới, trong đó tất cả các phông hình được chèn vào.
* Ý tưởng: Trong tiêu chuẩn biểu diễn quét lưới, phương pháp thường được
sử dụng để tính toán khoảng cách giữa đối tượng và camera, và để đơn giản sử
dụng cái đó để quyết định việc giảm chi tiết mẫu của đối tượng được vẽ. Trong
phương pháp dò tia sẽ không hiệu quả khi mà có rất nhiều tia khác có thể được
chọn: Nó có thể tới “từ” camera, nó có thể phản chiếu từ bên ngoài một gương,

21


nó có thể bị tách ra bởi một chất điện môi ví dụ như là kính. Bởi vậy không có
mức chi tiết nào mà chúng ta có thể gán cho đối tượng, vì vậy chúng ta phải chọn
một mức chi tiết để gán cho đối tượng của mỗi tia sáng. Đối với catch-22: Chúng
ta không thể biết được độ dài của tia sáng đối với vật thể là bao nhiêu trước khi
ra phóng tia. Điều này thậm chí có thể bỏ qua cả mức độ xấp xỉ của mô hình chi
tiết! Có hai cách đơn giản xung quanh vấn đề này: 1: Đặt một giới hạn thể tích
xung quanh vật thể và 2: Bắn tia gia tăng theo từng bước xuyên qua không gian,
với chiều dài vật thể sao cho bạn có thể tính được vị trí cuối. Những phương
pháp này được vẽ trong hình 2.4. Bởi vì cấu trúc gia tốc Turtle hoạt động theo
cách của nó, phương pháp 2 được lựa chọn.

* Kỹ thuật: Xu hướng đầu tiên đó là tạo ra 8 mắt lưới của phong cảnh, mỗi
mắt lưới đều thấp hơn so với LOD mắt lưới trước. Điều này đơn thuần chưa thể
giúp đỡ được khi chúng ta cần một phương pháp để lựa chọn xem mắt lưới nào
cần được bắn tia sáng vào. May mắn thay Turtle đáp ứng được quan điểm sự
khác biệt của tia sáng hoàn toàn có thể xử lí bằng vi tính xem tia sáng ở khoảng
cách nhất định nào. Khi bắn tia sáng trong Turtle, nó cũng hạn chế độ dài của tia
sáng. Phối hợp đặc tính này chúng ta làm được những việc sau:
Bước 1: Đặt khung lưới hiện tại lên toàn bộ khung lưới.
Bước 2: Tính xem một tia sáng sẽ phải đi bao xa để có thể dày như một bộ tóc
trong ô lưới hiện tại.
Bước 3: Dò tia đến thẳng khoảng cách này. Nếu có vấn đề thì chuyển sang
bước 6.
Bước 4: Đặt khung lưới hiện tại sang khung lưới tiếp theo.
Bước 5: Quay lại bước 2.
Bước 6: Xem xét lại chi tiết liên kết giữa các phần (Khoảng cách,
bề mặt …).
Vấn đề nổi trội đối với giải pháp này là bạn có thể có được sự lựa chọn một
cách chính xác khi có nhiều hệ thống tóc khác nhau, mỗi hệ thống lại có một độ
dày về tóc riêng trên cùng một phong cảnh. Vấn đề này về cơ bản có thể tránh

22


được khi sử dụng một khung lưới lồng thẳng vào, giống như Turtle đã thực hiện
nhanh hơn trong khung cảnh nhỏ.
Một kỹ thuật nữa rất quan trọng và hiệu quả được áp dụng để giải quyết bài
toán mô phỏng tóc trong Thực tại ảo, đó là Kỹ thuật bề mặt hình trụ NURBS. Kỹ
thuật này sẽ được trình bày một cách chi tiết và cụ thể ở Chương 2.
1.2.4. Ứng dụng của mô phỏng lông tóc trong Thực tại ảo
Mô phỏng lông, tóc trong Thực tại ảo có thể được ứng dụng trong làm phim

3D, tạo nên các mô hình lông, tóc ảo cho các nhân vật.
Mô phỏng lông, tóc trong Thực tại ảo có thể được ứng dụng trong việc mô
phỏng lại cá loài vật(các bộ lông) đã bị tuyệt chủng. Xây dựng các bộ lông cho
các loài thú giống như thật.
Việc mô phỏng tóc trong Thực tại ảo có thể áp dụng để tái tạo lại khuôn mặt
người bị biến dạng hoặc cũng có thể đưa ra các bộ mặt của người nào đó với các
kiểu tóc khác nhau, có thể áp dụng vào việc điều tra tội phạm.

23


Chương 2: KỸ THUẬT MÔ PHỎNG LÔNG, TÓC TRONG THỰC TẠI
ẢO

Việc mô phỏng tóc thực là một vấn đề lớn bởi vì đây là một lĩnh vực khá
phức tạp. Ví dụ: Một người thường có trên 200.000 sợi tóc, vì vậy để mô phỏng
được tóc là một công việc rất khó khăn. Mô phỏng tóc tĩnh đã là một công việc
khó khăc, nhưng mô phỏng tóc động lại là cả một vấn đề nan giải, hơn thế để tạo
ra và mô phỏng được tóc dài và tóc cong động thậm trí còn phức tạp hơn rất
nhiều.
Trong khi các bộ phim 3D lại bao gồm rất nhiều nhân vật không chỉ người mà
còn có cả nhưng con thú. Chính vì vậy mà chúng ta cần phải tạo nên được những
bộ tóc 3D, bộ lông 3D sinh động giống như thật để đáp ứng nhu cầu thưởng thức
ngày càng cao của khán giả. Nhưng để xây dựng mô hình tóc, kiểu tóc, mô
phỏng tóc và tạo tóc sống động thì xử lý vẫn còn rất chậm, thiếu hấp dẫn và
thường gây ra chán, buồn tẻ cho những người cổ vũ và mệt nhọc tiêu tốn nhiều
tiền bạc của nhưng người làm phim.
Đồ án đề xuất cách tiếp cận dựa trên Kỹ thuật bề mặt hình trụ NURBS, cho
phép tạo ra mô hình tóc một cách nhanh chóng. Tóc được render theo thời gian
thực. Nó có thể render tới 5000 sợi tóc riêng lẻ mà chỉ mất trong 5 giây. Tóc

trông có thể ngắn hoặc dài, cong hoặc thẳng, và lộn xộn hoặc được chải ra.
Việc xây dựng mô hình tóc là một lĩnh vực nghiên cứu rất tích cực và có
nhiều cách tiếp cận tồn tại. Ví dụ: xây dựng mô hình tóc bằng cách sử dụng
phương pháp LOD để mô tả tóc ở mức chi tiết ở chỗ mà tóc được render các sợi
tóc, bó tóc và sợi tóc riêng lẻ dựa vào sự xuất hiện của những sợi tóc riêng lẻ xảy
ra. Chúng sử dụng sự chia nhỏ để mô tả, đại diện cho mỗi bó tóc hoặc sợi tóc và
các mảnh tóc thì không cần thiết được render tất cả.
Kỹ thuật cho phép render theo thời gian thực của mô hình lông và tóc. Tuy
nhiên, kỹ thuật này thì không làm việc tốt hoặc thích hợp cho việc render tóc dài,
tóc gợn sóng và tóc cong.

24


2.1. Kỹ thuật bề mặt hình trụ NURBS
Bề mặt hình trụ NURBS xoắn được sử dụng để xây dựng mô hình các sợi tóc
riêng lẻ. Mô hình tóc được xây dựng trên một plain, sphere và torus. Với mỗi
giới hạn góc còn lại, số các phân đoạn đối mỗi sợi tóc, độ dài của mỗi đoạn, số
các sợi tóc mỗi bó, và số các bó được người sử dụng tự động lựa chọn.
Một NURBS surface có p độ theo hướng u và q độ theo hướng v được xác
định như sau:
n

m

 N
S (u , v) 

i, p


(u ) N j ,q (v) Wi, j Pi , j

i 0 j 0
n m

 N

i, p

(u ) N j , q (v) Wi, j

i  0 j 0

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ỷ, được xác định dựa
trên các véctơ điểm nút như sau:
U  {0,...,0
,...,1}
 , u p1 ,..., u r  p 1 ,1

p 1

p 1

với r = n+p+1

V  {0,...,0
,...,1}
 , v q 1 ,..., v s q 1 ,1


q 1

q 1

với s= m+q+1

2.1.1. Sợi tóc riêng lẻ
Mỗi sợi tóc riêng lẻ được xây dựng mô hình dựa vào bề mặt hình trụ NURBS
xoắn với n điểm điều khiển. Với mỗi hình trụ bao gồm một mật độ dày và một độ
dài nhất định. Một hình tròn xác định mật độ dày của sợi tóc hình trụ. Trước tiên,
điểm điều khiển của hình tròn đó sẽ bao gồm mật độ dày của các sợi tóc riêng lẻ
được tạo. Sau đó, các điểm nút v cho các điểm điều khiển đường tròn này được
tạo.

25


×