Chương 1: TỔNG QUAN VỀ THỰC TẠI ẢO VÀ LÔNG, TÓC TRONG 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
Trang 1MỤ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
Trang 2Chươ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
Trang 3MỞ ĐẦ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 (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 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”
Trang 4Bố 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
Trang 5Chương 1: TỔNG QUAN VỀ THỰC TẠI ẢO VÀ LÔNG, TÓC TRONG
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,
Trang 6ngườ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
Trang 7 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
Trang 8cá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
vực này
Trang 9Hì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
Trang 10 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
Trang 11giả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
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
Trang 12Phươ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
Trang 131.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à
Trang 14mộ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:
Trang 15+ 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ữ
Trang 16+ 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
Trang 17+ 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
Trang 181.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
Trang 19thuậ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
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
Trang 20mà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à
Trang 21số 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,
Trang 22nó 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
Trang 23đượ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
Trang 24Chươ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
Trang 252.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:
j
q j p i
j p i
v N u N
P v N u N v
u
S
0 0
j i, , ,
0 0
, j i, , ,
W ) ( ) (
W ) ( ) ( )
p 1
p
} , , 1 , , , u 0, ,0
u U
q 1
q
} , , 1 , , , v , 0, ,0
v V
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
Trang 26Hình 2.1: Độ dày của mỗi sợi tóc với 9 điểm điều khiển Sau khi tất cả các điểm điều khiển xác định cho mỗi sợi tóc, thì các sợi tóc này được render như là một bề mặt hình trụ NURBS xoắn Kết thúc của một sợi tóc được xác định là gốc trên bề mặt cơ sở Mặt khác, sợi tóc này sẽ bay theo mọi hướng khác nhau
Trang 27Hình 2.3: Các sợi tóc trong một bó Các hình cơ sở sử dụng bao gồm: plain, torus và sphere Chân mỗi sợi tóc được đặt trên bề mặt Torus và Sphere được render bằng cách sử dụng bề mặt NURBS (với góc nghiêng 2 độ và kích thước 20x20) Plain chỉ được render thông qua biểu diễn đa giác
Hình 2.4: Các hình cơ sở Đối với plain, chân tóc: y=0 và y thì được tăng dần một cách ngẫu nhiên với giới hạn độ dài cho mỗi phần của tóc Vì vậy, tóc sẽ luôn luôn có chiều hướng tăng Vị trí gốc của x và z được xác định một cách ngẫu nhiên trong phạm vi của
bó Tóc xoắn và quăn được xác định một cách ngẫu nhiên trong giới hạn góc của các giá trị x và z
Từ khi torus và sphere được tạo bằng cách sử dụng bề mặt NURBS thì việc xác định chân và hướng của các sợi tóc phức tạp hơn Các đỉnh của các bề mặt NURBS được chia nhỏ thì được sử dụng như là các chân Với mỗi sợi tóc thì các
Trang 28chia nhỏ Hướng của các sợi tóc được xác định bởi đỉnh bình thường mà nó xảy
ra đối với chân của sợi tóc đó Hình 2.5: mô tả giải thuật cho phép xác định hướng và độ xoắn của một sợi tóc Các phần này đại diện cho số lượng các phần của mỗi sợi tóc được chọn Góc còn lại là giới hạn góc còn lại được lựa chọn Độ dài là độ dài giới hạn được lựa chọn Surf(j).nx biểu diễn cho toạ độ x của lớp bề mặt j
Hình 2.5: Sợi tóc riêng lẻ đính kèm theo véctơ bề mặt
Thuật toán 1: Xác định hướng và độ xoắn của tóc trên bề mặt NURBS
Trang 29pp->p+=Depl;
v=pp[-1].p-pp[0].p;
l=v.Length2();
if (l>MAXL) {
v*=(1.0f-MAXL2/(float)sqrt(l));
pp->p+=v;
pp->v*=1.0f-FROT;
} 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;
}
if (wind= =2) {
pp->v.y - =gY;
Trang 30} else pp->v.y+=wind*gY;
pp->v.z+=gZ;
++pp;
} while ( p);
p=HAIRSIZE-2;
pp=pl->pt+2;
do { pp->p+=pp->v;
++pp;
} while ( p);