Với lượng thông tin trực quan, đa dạng vàphong phú được chuyển tải qua hình ảnh, các ứng dụng đồ họa máy tính đã lôicuốn nhiều người nhờ tính thân thiện, dễ dùng, kích thích khả năng sán
Trang 1ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN
Trang 2LUẬN VĂN THẠC SỸ NGÀNH KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS Nguyễn Thị Hồng Minh
Thái Nguyên - 2010
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan toàn bộ nội dung bản luận văn này là do tôi tự sưu tầm,tra cứu và sắp xếp cho phù hợp với nội dung yêu cầu của đề tài
Nội dung luận văn này chưa từng được công bố hay xuất bản dưới bất kỳhình thức nào và cũng không được sao chép từ bất kỳ một công trình nghiên cứu nào
Phần mã nguồn của chương trình sử dụng một số thư viện chuẩn và cácthuật toán và bản demo được các tác giả xuất bản công khai và miễn phí trênmạng Internet
Nếu sai tôi xin tôi xin hoàn toàn chịu trách nhiệm
Thái Nguyên, ngày 15 tháng 10 năm 2010
Người cam đoan
Vũ Phú Cường
Trang 4LỜI CẢM ƠN
Trong quá trình luận văn tốt nghiệp em đã gặp rất nhiều vấn đề phức tạp,khó xử lý do đề tài mà em nghiên cứu là khá mới Nhưng được sự giúp đỡ tậntình của các thầy, cô và các bạn luận văn của em đã hoàn thành đúng thời hạn
và đạt được kết quả tốt
Lời đầu tiên em xin được trân thành cảm ơn sự giúp đỡ quí báu, sựhướng dẫn nhiệt tình và sự chỉ bảo tận tụy của cô
TS Nguyễn Thị Hồng Minh – Trường ĐH QG Hà Nội
Các thầy cô giáo công tác tại Khoa công nghệ thông tin – ĐHTN, cùngtập thể các bạn học viên lớp cao học Khóa 7 đã luôn giúp đỡ và nhiệt tình chia
sẻ với em những kinh nghiệm học tập, nghiên cứu trong suốt khoá học
Thái Nguyên, ngày 15 tháng 10 năm 2010
Học viên
Vũ Phú Cường
Trang 5MỤC LỤC
Trang 6DANH MỤC CÁC HÌNH
Hình 1.1 Mô phỏng các cơ cánh tay 7
Hình 1.2 Mô phỏng cấu trúc bộ não 8
Hình 1.3 Mô phỏng kiến trúc công trình 10
Hình 2.1 Bản đồ chiếu sáng 17
Hình 2.2: Xây dựng bản đồ photon tụ quang (a) và bản đồ photon toàn cảnh (b) 21
Hình 2.3: Phân chia không gian sử dụng cây KD 23
Hình 2.4: Đơn giản hóa 2D cây KD cho phân chia không gian trong hình 2.5 23
Hình 2.5: Tính bức xạ phản xạ (Jensen, 2001) 29
Hình 2.6: Sử dụng hình cầu (trái) và hình đĩa (bên phải) xác định vị trí các photon 30
Hình 2.7: Truy tìm một tia qua một điểm ảnh 35
Hình 2.8: Đánh giá chính xác sự chiếu sáng trực tiếp 38
Hình 2.9: Sinh ảnh phản chiếu và bóng phản xạ 39
Hình 2.10: Sinh ảnh tụ quang 41
Hình 2.11: Tính toán gián tiếp khuếch tán ánh sáng với tầm quan trọng lấy mẫu 42
Hình 3.1: Số lượng photon phát ra là 1000 48
Hình 3.2: Photon phát ra là 1500, nguồn sáng bên trên (a), bên phải (b) 48
Hình 3.3: Sử dụng ánh sáng trực tiếp (a), sinh ảnh bằng Photon mapping (b) 49
Hình 3.4: Sinh ảnh với 4 nguồn sáng 49
Hình 3.5: Sinh ảnh với môi trường tham gia 50
Hình 3.6: Vòng kim loại tụ quang 50
Trang 7PHẦN MỞ ĐẦU
Sự ra đời của đồ họa máy tính thực sự là cuộc cách mạng trong giao tiếpgiữa người dùng và máy tính Với lượng thông tin trực quan, đa dạng vàphong phú được chuyển tải qua hình ảnh, các ứng dụng đồ họa máy tính đã lôicuốn nhiều người nhờ tính thân thiện, dễ dùng, kích thích khả năng sáng tạo
và tăng đáng kể hiệu suất làm việc
Đồ họa máy tính ngày nay được ứng dụng rất rộng rãi trong nhiều lĩnhvực khoa học, kĩ thuật, nghệ thuật, kinh doanh, quản lí, các ứng dụng đồ họarất đa dạng, phong phú và phát triển liên tục không ngừng Ngày nay, hầu nhưkhông có chương trình ứng dụng nào mà không sử dụng kĩ thuật đồ họa đểlàm tăng tính hấp dẫn của mình
Trong đồ họa máy tính, Photon mapping là thuật toán chiếu sángtrên toàn cảnh phát triển bởi Henrik Wann Jensen Nó được sử dụng vào thực
tế mô phỏng sự tương tác của ánh sáng với các đối tượng khác nhau Đặc biệt,
nó có khả năng mô phỏng khúc xạ ánh sáng qua một chất trong suốt nhưthủy tinh hoặc nước, phản xạ khuếch tán giữa các đối tượng được chiếu sáng,
sự tán xạ ngầm của ánh sáng trong vật liệu mờ, và một số các tác dụng gây rabởi hạt vật chất như khói hoặc hơi nước Nó cũng có thể được mở rộng
để mô phỏng chính xác hơn của ánh sáng như sinh ảnh quang phổ
Trong tự nhiên, một tia sáng được tạo ra bởi nguồn sáng chiếu đến một
bề mặt làm ngắt quãng quá trình của nó Có thể tưởng tượng tia sáng này nhưmột dòng photon Trong chân không hoàn hảo, tia sáng này sẽ đi thẳng.Trong hiện thực sẽ là hỗn hợp của các hiệu ứng khúc xạ, phản xạ, tán xạ.Nghiên cứu sử dụng kỹ thuật Photon mapping, trợ giúp cho việc nâng cao chấtlượng ảnh hoặc sinh ra các hình ảnh trung gian hoặc tương lai trong một hệ
Trang 8thống biến đổi Phục vụ cho các hoạt cảnh hoặc các ứng dụng chuyển độngtương tác trong xử lý ảnh và thực tại ảo, ước lượng được các điểm bề mặt hiệudụng, lưu trữ được các thông tin có thể sử dụng lại của ánh sáng, giảm tải sốlượng tính toán Và tất cả các tia sáng tạo ra sau các quá trình ấy sẽ được mô
tả lại để tạo nên các hình ảnh sống động như thật
Bố cục của luận văn bao gồm: Phần mở đầu, ba chương chính,phần kết luận, tài liệu tham khảo Cụ thể như sau
Chương 1 Giới thiệu khái quát về thực tại ảo và sinh ảnh, các ứng dụngcủa thực tại ảo Phương pháp sinh ảnh trong thực tại ảo và tổng quan vềphương pháp photon mapping trong sinh ảnh
Chương 2 Trình bày thuật toán photon trong sinh ảnh, các cấu trúc
dữ liệu cần thiết cho các bản đồ photon, trong chương này có trình bày cụ thể
về tính toán bức xạ từ các bản đồ photon, quá trình xây dựng phương trìnhsinh ảnh và việc tối ưu hóa bản đồ photon
Chương 3 Mô tả bài toán sinh ảnh, giới thiệu công cụ hỗ trợ củachương trình sinh ảnh, ý chức năng của các hàm trong chương trình Thựcnghiệm chương trình đưa ra kết quả và đánh giá kết quả thu được
Trang 9Chương 1
KHÁI QUÁT VỀ THỰC TẠI ẢO VÀ SINH ẢNH
Công nghệ thông tin đã và đang xuất hiện trong mọi lĩnh vực của xã hội.Tuy nhiên phần lớn các mô hình được xây dựng trên máy tính là hai chiều vàcon người không thể tương tác với các đối tượng trong mô hình đó như là ởtrong thế giới thực, những chương trình nghiên cứu khắc phục nhược điểmnày đã dẫn đến việc xuất hiện một lĩnh vực mới của Công nghệ thông tin đó làthực tại ảo
1.1 Khái quát về thực tại ảo
1.1.1 Thực tại ảo là gì?
Thực tại ảo là mô phỏng của môi trường không gian ba chiều trên máy
tính, trong môi trường mô phỏng đó con người có thể quan sát và thực hiệnnhững thao tác mà mình mong muốn Với tất cả những gì có trong môi trường
mô phỏng thông qua thiết bị đầu vào, kết quả trả lại là những thay đổi của môitrường đó mà con người có thể quan sát hay cảm nhận được thông qua cácthiết bị đầu ra
Theo như định nghĩa trên có thể nhận ra các thành phần của thực tại ảolà: môi trường không gian ba chiều, mô hình tạo trên máy tính, sự tương tác,các thiết bị vào, ra Thực tại ảo là một thế giới thực song lại ảo, vì một phầncủa thế giới thực sẽ được tái tạo trên máy tính, thông qua các thiết bị đầu vàocon người có thể chìm đắm trong môi trường không gian ba chiều và cho phépcon người có khả năng quan sát, tương tác với môi trường ảo đó Nhữngtương tác đó đều được chương trình xử lý và thông qua thiết bị đầu ra sẽ đem
Trang 10lại cho con người cảm nhận về thay đổi của môi trường ấy như trong thực tế
và tất cả mọi thứ diễn ra trong không gian ba chiều
1.1.2 Lịch sử ra đời và phát triển của thực tại ảo
Khái niệm cơ bản về thực tại ảo có từ năm 1950, một hệ thống nguyên sơđầu tiên được tạo ra rất lâu trước khi con người đặt chân lên mặt trăng
Vào cuối những năm năm mươi có một người đàn ông ít được biết đến
có tên là Morton Heilig đã thiết kế ra hệ thống ảo đầu tiên Ông đã phát triểnmột thứ được gọi là Sensorama Tương tự như máy chò trơi ngày nay,Sensorama được kết hợp với chiếu film, âm thanh, chuyển động, gió thậm chí
cả mùi vị khiến cho con người cảm thấy như trong thế giới thực hơn là đơngiản chỉ xem
Bất chấp sự hạn chế của công nghệ máy tính vào những năm sáu mươi,một giáo sư về đồ hoạ máy tính có tên là Sutherland đã quản lý xây dựngthành công hệ thống thực tại ảo cơ bản đầu tiên trên máy vi tính, nó được gọi
là “Sword of Damocles” bao gồm: một màn hình máy tính, một hệ thống máyđiều chỉnh, một máy tính để làm mọi thứ Máy tính thực hiện vẽ đường thẳngđen trắng của một hình cơ bản mà người ta có thể quan sát từ mọi góc Mặc
dù nó đơn giản song nó đã đưa ra khái niệm làm việc cơ bản về thực tại ảo vàcũng đặt nền móng cho nhiều sự cải tiến sau này Sutherland đã giới thiệunhững nội dung chính của việc nhúng người xem vào thế giới mô phỏng vàcảm giác hoàn thiện về các thiết bị vào ra Ông đã phát minh ra thuật ngữ
“The Ultimate Display” mô tả một hệ thống hiển thị cho đồ họa máy tính, cái
mà tuỳ theo sự điều chỉnh của người sử dụng sẽ được cập nhật để hiển thị chophù hợp Kết quả là người sử dụng cảm thấy mình bị vây quanh hay bị chìmvào một thế giới mà chỉ tồn tại trong máy vi tính
Trang 11Vào những năm bẩy mươi trung tâm nghiên cứu NASA bắt đầu triểnkhai những ý tưởng về thực tại ảo, họ đã xây dựng được một thiết bị mũ độiđầu (Head Mounted Display) đơn giản đầu tiên Điều đó khiến cho nhữngngười say mê bắt đầu thiết kế hệ thống thực tại ảo cho riêng mình.
Những năm đầu của thập kỷ tám mươi không gian ảo ba chiều đã đượcphát triển mà ở đó người dùng thao tác với các đối tượng 3D trong không gianbằng tay Năm 1984, NASA đã bắt đầu tiến hành dự án VIVED (VirtualVisual Environment Display) và sau đó là dự án VIEW (Virtual VisualEnvironment Workstation)
Hiện nay các công ty như Virtual I/O, Age, VitorMaxx Technologies vàForte đang sản xuất các thiết bị mũ đội đầu, gang tay dữ liệu tốt hơn bất cứmột sản phẩm nào do cá nhân nghiên cứu với giá cả hợp lí Trước tình hìnhphát triển các công nghệ sản xuất thiết bị như hiện nay thì vấn đề chủ yếu củathực tại ảo là xây dựng cho được các mô hình thực tại ảo như mong muốn.1.1.3 Các thành phần chính trong thực tại ảo:
Một hệ thống trong thực tại ảo gồm có các thành phần chính sau [ 3 ]:
- Các ứng dụng (Nghiên cứu – Đào tạo – Thương mại)
Trang 12* Phần cứng:
+ Máy tính (PC hay Workstation với cấu hình đồ họa mạnh)
+ Các thiết bị đầu vào (Input devices): Bộ dò vị trí (position tracking)
để xác định vị trí quan sát Bộ giao diện định vị (Navigation interfaces) để dichuyển vị trí người sử dụng Bộ giao diện cử chỉ (Gesture interfaces) nhưgăng tay dữ liệu (data glove) để người sử dụng có thể điều khiển đối tượng
+ Các thiết bị đầu ra (Output devices): gồm hiển thị đồ họa (như mànhình, HDM, ) để nhìn được đối tượng 3D nổi Thiết bị âm thanh (loa) để ngheđược âm thanh vòm (như Hi-Fi, Surround, ) Bộ phản hồi cảm giác (Hapticfeedback như găng tay, ) để tạo xúc giác khi sờ, nắm đối tượng Bộ phản hồixung lực (Force Feedback) để tạo lực tác động như khi đạp xe,
* Phần mềm:
+ Phần mềm luôn là linh hồn của Thực tại ảo cũng như đối với bất cứmột hệ thống máy tính hiện đại nào Ta có thể dùng bất cứ ngôn ngữ lập trìnhhay phần mềm đồ họa nào để mô hình hóa (modelling) và mô phỏng(simulation) các đối tượng của VR Ví dụ: như các ngôn ngữ (có thể tìm miễnphí) OpenGL, C++, Java3D, VRML, X3D, hay các phần mềm thương mạinhư WorldToolKit, PeopleShop,
+ Phần mềm của bất kỳ Thực tại ảo nào cũng phải bảo đảm 2 côngdụng chính: Tạo hình và Mô phỏng Các đối tượng của Thực tại ảo được môhình hóa nhờ chính phần mềm này hay chuyển sang từ các mô hình 3D (thiết
kế nhờ các phần mềm CAD khác như AutoCAD, 3D Studio,3D max, ) Sau
đó phần mềm Thực tại ảo phải có khả năng mô phỏng động học, động lực học,
và mô phỏng ứng xử của đối tượng
Nói chung, các hệ thống thực tại ảo phải xử lý mội khối lượng lớnthông tin (đa phần là các thông tin của các đối tượng 3D do đó tốn bộ nhớ vàđòi hỏi thời gian xử lý là thời gian thực), vì thế nó đòi hỏi một lượng tài
Trang 13nguyên bộ nhớ RAM lớn và bộ xử lý cùng các thiết bị vào ra có tốc độ cao Vìvậy mặc dù bắt đầu nghiên cứu từ khá lâu, xong trong một số năm gần đâythực tại ảo mới có được sự phát triền và mở rộng ứng dụng đáng kể.
1.1.3 Ứng dụng của thực tại ảo
Hai công ty VPL và Autodesk đã giới thiệu các thiết bị cho việc giao tiếpvới thế giới ảo ở hội trợ triển lãm thương mại năm 1989 Đây là bước điđầu tiên cho việc khám phá rộng rãi các lĩnh vực ứng dụng mới của thực tại
ảo
Những lĩnh vực đang ứng dụng thực tại ảo một cách mạnh mẽ hiện naylà: Y học, Giáo dục và khoa học, Công nghệ thông tin, Xây dựng, Giải trí,Quốc phòng, Điện ảnh
−Trong y học: Khi xã hội càng phát triển thì vấn đề sức khoẻ con người
càng được quan tâm hơn Càng ngày người ta càng cố gắng tìm racác phương pháp, các cách thức chữa trị bệnh cho con người ngày một tốthơn
Hiện nay Công nghệ thông tin đang phát triển và những ứng dụng của nóvào thực tế trở nên phổ biến, đồng thời những thành quả to lớn của nó đem lạithì không ai có thể phủ nhận được, một trong các lĩnh vực mà ứng dụngCông nghệ thông tin một cách hiệu quả hiện nay là y học
Dưới đây là một số hình ảnh minh hoạ về việc nghiên cứu và ứng dụngCông nghệ thông tin trong y học:
Hình 1.1 Mô phỏng các cơ cánh tay
Trang 14Đây là dự án nghiên cứu của Châu Âu vào tháng 11 năm 1993, dự án nàycho phép xây dựng lại mô hình cánh tay của con người trong không gian 3D
từ những dữ liệu hình ảnh trong y học và mô phỏng tất cả sự thay đổi có thể
có của các bộ phận như sự co giãn cơ
Hình 1.2 Mô phỏng cấu trúc bộ não Đây là dự án nghiên cứu nhằm đưa thực tại ảo vào việc chữa trị bệnh chocon người Bằng cách xây dựng một chương trình mà cho phép các bác sĩ trênkhắp thế giới có thể cùng tham gia quan sát, thảo luận để đưa ra phương phápchữa trị hiệu quả nhất
Trong y học con người còn gặp rất nhiều những vấn đề mà nếu không
có thực tại ảo thì không dễ tìm ra phương pháp giải quyết: ví dụ như việccung cấp môi trường thực hành cho việc nghiên cứu và học tập, đây cũng làvấn đề bức xúc và gặp nhiều khó khăn hiện nay, chúng ta thiếu các mẫu đểthực tập phẫu thuật hay môi trường thực để quan sát Đôi khi vì khả năng conngười ví dụ như tầm quan sát của mắt chúng ta không thể quan sát được mạchmáu của chúng ta như thế nào hay cấu trúc lược đồ gen của chúng ta ra sao
Trang 15hay trong phẫu thuật nhiều khi không thể thực hiện được do đối tượng thựchiện không có điều kiện sức khoẻ để thực hiện ca phẫu thuật lớn
Những vấn đề trên được giải quyết một cách hiệu quả khi có ứng dụngthực tại ảo Chỉ bằng cách xây dựng các mô hình thực tại ảo cần thiết cho cácđối tượng là chúng ta đã có ngay môi trường quan sát, nghiên cứu thực tập tốtthậm chí có thể nói là tốt hơn thực tế
- Trong giáo dục và khoa học: Giáo dục con người là vấn đề hàng đầu
của mỗi quốc gia trên thế giới Tìm hiểu, nghiên cứu nhằm đưa ra phươngpháp giáo dục hiệu quả đã khó, song còn có những vấn đề còn khó khăn hơn
đó là làm sao kích thích được niềm say mê học tập, nghiên cứu của con người
và tính tự giác, khả năng tư duy và tưởng tượng của mỗi con người và làm sao
để cung cấp môi trường học tập nghiên cứu tốt nhất nhằm phát huy hết nhữngkhả năng của con người
Theo như cách giáo dục truyền thống nhiều khi chúng ta không thểcung cấp được môi trường nghiên cứu học tập tốt, không khơi dậy đượcniềm đam mê, hứng thú hay không thể phát huy hết được khả năngtưởng tượng và tư duy của con người làm cho hiệu quả giáo dục không cao.Những chương trình nhằm rèn luyện tư duy, những chương trình rènluyện khả năng tưởng tượng, những chương trình cung cấp mô hình thựcnghiệm, những chương trình kích thích trí tò mò là chưa nhiều hay có thể
là chưa nhiều chương trình hiệu quả Nguyên nhân là các chương trình đượcxây dựng chưa có khả năng phát huy hết được sự cảm nhận của con người,chưa gây được ấn tượng sâu sắc về vấn đề cần truyền đạt cho đối tượngcần truyền đạt, môi trường truyền đạt không gây được trí tò mò
Hiện nay có một xu hướng mới trong việc ứng dụng Công nghệ thông tintrong giáo dục mà rất được quan tâm nghiên cứu và phát triển đó là xây dựng
Trang 16mô hình thực tại ảo trên máy vi tính nhằm cung cấp các môi trường học tập
và nghiên cứu Những mô hình được xây dựng ở đây phải xây dựng làm sao
để chuyển tải được thực tế vào môi trường mô phỏng đó, cung cấp khả năngtương tác của con người với môi trường mô phỏng đó, có khả năng kích thíchcao với người tham gia Qua những lần thực nghiệm này thì chúng ta sẽ ngàycàng đạt được hiệu quả cao hơn trong giảng dạy
− Trong thiết kế xây dựng: Những chương trình đồ họa mạnh nhất hiện
nay chủ yếu được phục vụ vào các lĩnh vực thiết kế và xây dựng nhưAUCAD, AUTODEST, 3DMAX, SHAPRE,… Những chương trình này đãgiúp cho những nhà thiết kế xây dựng giảm được rất nhiều chi phí về thờigian và công sức thiết kế Song hầu hết các chương trình này mới chỉ dừng lại
ở mức các bản vẽ chứ chưa thực sự tạo ra cho người ta cảm giác hay một cáinhìn về những công trình mà họ thiết kế trên thực tế nó sẽ như thế nào Thực tại ảo tạo ra cho người ta cảm giác chìm đắm trong một không giannhư trên thực tế mà đã được xây dựng trên máy vi tính và sẽ giúp chochúng ta có thể có một cái nhìn chi tiết về công trình đã được thiết kế
Dưới đây là một số hình ảnh về ứng dụng của thực tại ảo trong xây dựng,thiết kế và trang trí
Hình 1.3 Mô phỏng kiến trúc công trình
Trang 17- Trong quốc phòng: Để binh lính không bị xa lạ, bỡ ngỡ với chiến trận
thì cần phải thường xuyên có những lần tập trận, mà chi phí cho việc đó là rấtcao Nếu sử dụng các mô hình thay thế, kèm theo âm thanh và tiếng độngcũng có thể tạo ra được một trận tập kích mà hiểu quả đạt được là như thật vàchi phí thì rất ít Bên cạnh đó, để cho binh lính có thể tiếp xúc và hiểu biết vềcác máy móc và thiết bị đắt tiền thì nên xây dựng các mô hình về thiết bị đó,máy móc đó như vậy sẽ đảm bảo được tính phổ dụng rộng rãi
Khi ứng dụng thực tại ảo vào trong quân sự thì hiệu quả kinh tế mà nómang lại là thực sự to lớn, người ta sẽ giảm được một lượng lớn kinh phí phục
vụ cho việc tập luyện hay thực hiện được những vấn đề mà trên thực tế khó cóthể thực hiện được hay những vấn đề trên thực tế phải áp dụng những quy tắc
an toàn nghiêm ngặt song vẫn có mối nguy hiểm lớn đến tính mạng và tài sảncủa con người
− Trong điện ảnh: Như chúng ta đã biết hiện nay điện ảnh là một lĩnh
vực đang lên ngôi, chắc hẳn ai trong chúng ta cũng đã từng xem phim và cũng
đã từng thưởng thức những cảnh thú vị trong phim do các diễn viên, nhân vậttrong phim thể hiện Và chúng ta chỉ có thể nghĩ rằng những điều đó chỉ cóthể có trong phim chứ không có trên thực tế Đúng vậy những phim được coi
là hay nhất, được ưa chuộng nhất hiện nay là những phim có những cảnhngoạn mục, hoành tráng Một vài những năm gần đây những phim đó đã ứngdụng thực tại ảo và những phương pháp xử lý đồ họa mạnh tạo ra nhữnghiệu ứng, những cảnh mà trên thực tế không thể thực hiện được
− Trong hội thảo từ xa: Các công việc được trao đổi giữa những người ở
các nơi khác nhau bằng cách chia sẻ thông tin thông qua mạng Hội thảo từ
xa là một ứng dụng của mục đích này Sự cảm nhận không gian và sửdụng không gian cho việc gặp gỡ và trao đổi với nhau trong môi trường bachiều có đặc điểm:
Kích thích mạnh mẽ người tham gia trong hội thảo
Trang 18 Âm thanh vẫn giữ được tự nhiên.
Có được các thao tác phối hợp như trong thế giới thực
Như vậy thực tại ảo có ứng dụng trong hầu hết các lĩnh vực của đời sống.Qua đó cũng nhận thấy được ý nghĩa to lớn của việc ứng dụng thực tại ảo, bởinhững vấn đề khó khăn mà nếu không có thực tại ảo thì có thể nói là khó lònggiải quyết hay nếu có giải quyết được thì hiệu quả cũng không cao và chi phí
sẽ rất tốn kém Còn khi ứng dụng thực tại ảo vào thì những vấn đề đó trở nênđơn giản hơn và hiệu quả mang lại thật sự to lớn kể cả vật chất lẫn tinh thần.Thực tại ảo cung cấp một giao diện nhiều chiều giữa máy và con người, chínhnhờ điều này và kết hợp với các thiết bị khác nhau cho nên thực tại ảo tạo ranhững ứng dụng mà ở đó con người có một cách để xây dựng, thao tác dữ liệuphức tạp một cách tự nhiên và thực tại ảo được sử dụng để mô phỏng thế giớithực trong nhiều ứng dụng khác nhau Tuy nhiên để có được các mô hình thựctại ảo như trên thì cần phải có một ngôn ngữ xây dựng chúng, chương tiếptheo sẽ tìm hiểu ngôn ngữ VRML để xây dựng mô hình thực tại ảo
1.2 Sinh ảnh trong thực tại ảo
1.2.1 Sinh ảnh trong thực tại ảo
Trong đồ họa máy tính, rendering gọi tắt là sinh ảnh, là một quá trìnhsinh tạo một hình ảnh từ một mô hình bằng cách sử dụng một chương trìnhứng dụng phần mềm Mô hình là mô tả của các đối tượng ba chiều bằng mộtngôn ngữ được định nghĩa chặt chẽ hoặc bằng một cấu trúc dữ liệu Mô tả nàybao gồm các thông tin về hình học, điểm nhìn, chất liệu và bố trí ánh sáng củađối tượng Hình ảnh này có thể là một hình ảnh số (digital image) hoặc mộthình ảnh đồ họa điểm (raster graphics image) Thuật ngữ này có thể tươngđồng với "quá trình một họa sĩ vẽ" một phong cảnh nào đấy Thuật ngữ "sinhảnh" còn được dùng để chỉ quá trình tính toán các hiệu ứng trong một tập tinbiên tập phim để tạo kết quả video cuối cùng
Trang 19Rendering là một trong các chủ đề con chính của đồ họa máy tính
ba chiều (3D computer graphics) Trong thực tiễn, nó luôn luôn có quan hệchặt chẽ với các chủ đề khác Trong 'quy trình xử lý đồ họa' (graphicspipeline), sinh ảnh là bước quan trọng cuối cùng để tạo ra diện mạo kết cụccủa các mô hình và hoạt hình Với tính phức tạp của đồ họa máy tínhngày càng tăng, từ năm 1970 đến nay, rendering đã trở thành một chủ đề riêngbiệt
Sinh ảnh được sử dụng trong: trò chơi video và điện tử (computer andvideo games), trong các chương trình mô phỏng (simulators), trong điện ảnh(movies) hay trong hiệu ứng đặc biệt (special effects) trên TV, và tronghình tượng hóa thiết kế (design visualisation), mỗi cái áp dụng một cân bằnggiữa các đặc trưng và kỹ thuật khác nhau Hiện nay còn có nhiều sản phẩmphần mềm đa dạng dùng cho việc sinh ảnh đồ họa Một số được kết hợp trongnhững bộ phần mềm tạo mô hình và làm phim hoạt họa, một số khác là nhữngphần mềm đứng riêng (stand-alone) và một số là những dự án nguồn mở tự do(free open-source projects) Bên trong chúng, chương trình sinh ảnh là mộtchương trình ứng dụng được thiết kế và xây dựng một cách cẩn trọng,dựa trên một số kiến thức của các ngành: vật lý quang học, nhận thức thị giác(visual perception), toán học và phát triển phần mềm
Trong trường hợp đồ họa 3D, việc sinh ảnh là một quá trình chậm chạp,chẳng hạn như trong tiến trình sinh ảnh trước (pre-rendering), hoặc trong việcsinh ảnh trong thời gian thực (real time rendering) Sinh ảnh trước là mộttiến trình đòi hỏi một khối lượng tính toán lớn, đặc biệt được dùng trong việctạo phim điện ảnh, trong khi đó, sinh ảnh trong thời gian thực thường được sửdụng trong các trò chơi điện tử 3D (3D video games), và phụ thuộc vào các
bộ điều hợp đồ họa (graphics cards) với bộ tăng tốc phần cứng 3D (3Dhardware accelerators)
Trang 201.2.2 Photon mapping trong sinh ảnh
Thuật toán photonmapping được phát triển 1993-1994 và các tài liệu đầutiên về phương pháp này được xuất bản vào năm 1995 Nó là một thuật toán
đa năng có khả năng mô phỏng ánh sáng toàn cảnh bao gồm quang học,khuếch tán phản xạ qua lại, và tham gia truyền thông trong những cảnh phứctạp Nó cung cấp sự linh hoạt tương tự như phương pháp Monte Carlo raytracing chỉ sử dụng một phần nhỏ thời gian tính toán
Thuật toán chiều sáng toàn cảnh dựa trên phương thức bản đồ photongồm 2 vấn đề Vấn đề đầu tiên là xây dựng bản đồ photon bằng cách phát racác photon từ các nguồn ánh sáng vào cảnh và lưu trữ chúng trong một bản đồphoton khi nó va đập phản chiếu các đối tượng Thứ hai, sinh ảnh, sử dụng kỹthuật thống kê trên bản đồ photon để trích xuất thông tin về thông lượng đến
và phản ánh bức xạ tại bất kỳ điểm nào trong cảnh Các bản đồ photon đượctách riêng từ các đại diện hình học của các cảnh Đây là tính năng chính củathuật toán, làm cho nó có khả năng mô phỏng chiều sáng toàn cảnh trongnhững cảnh phức tạp có chứa hàng triệu điểm ảnh, minh họa hình học, và cácbiện pháp phức tạp xác định đối tượng
So với độ phát xạ phần tử hữu hạn, Photon mapping có lợi thế là khôngcần phải chia lưới Các thuật toán độ phát xạ nhanh hơn trong các cảnhkhuếch tán đơn giản nhưng lại là sự phức tạp của việc tăng cảnh, bản đồphoton có xu hướng quy mô tốt hơn Ngoài ra phương pháp Photon mappingcòn xử lý bề mặt không khuếch tán và điểm tụ quang
Lợi ích chính của Photon mapping so với những phương pháp khác rấthiệu quả, và yêu cầu chính của phương pháp này là bộ nhớ dùng để lưu trữthêm các photon
Trang 21Lợi thế lớn của các bản đồ photon (trong thương mại) là không có bằngsáng chế về phương pháp, bất cứ ai có thể thêm các bản đồ photon để sinh ảnhcủa họ Do đó một số hệ thống thương mại đã sử dụng Photon mapping đểsinh ảnh tụ quang.
Trang 22Chương 2
MỘT SỐ VẤN ĐỀ TRONG SINH ẢNH
BỞI PHOTON MAPPING
2.1 Thuật toán Photon mapping
Thuật toán lập bản đồ photon được phát minh bởi Henrik Wann Jensen.Lập bản đồ photon ánh sáng từ sự tách rời hình học của cảnh và lưu trữ
dữ liệu này trong một cấu trúc riêng biệt gọi là một bản đồ photon Việc táchcác bản đồ photon từ đại diện hình học đơn giản hóa và cho phép đại diện chocảnh phức tạp
Ý tưởng của việc tách ánh sáng từ hình học của cảnh không phải là hoàntoàn mới, bản đồ chiếu sáng lần đầu tiên được đề xuất bởi Arvo [4] như là mộtbước theo hướng này bản đồ chiếu sáng Arvo tương tự như một bản đồ kếtcấu nhưng thay vì tịnh tiến hoặc nhiễu loạn nhiều vector pháp tuyến, nó mangthông tin chiếu sáng Bản đồ chiếu sáng bao gồm một mảng hình chữ nhật củacác điểm dữ liệu đặt vào một hình vuông 1 x 1 và ánh xạ lên bề mặt của đốitượng Một tia sáng va đập một bề mặt, độ lớn năng lượng được lưu trữ trongbốn điểm dữ liệu lân cận có trọng số như minh họa trong hình 2.1
Trang 23Hình 2.1 Bản đồ chiếu sáng
Lập bản đồ chiếu sáng có những vấn đề tương tự như phương thức phần
tử hữu hạn Vấn đề chính là tính toán độ phân giải của bản đồ Sử dụng cácbản đồ chiếu sáng trong các mô hình phức tạp là khá tốn kém và cả khi sửdụng nó trên các bề mặt bằng phẳng cũng rất khó nếu họ có thể được biểudiễn bằng tham số
Thuật toán của hai bản đồ chiếu sáng và Photon mapping thể hiện quahai giai đoạn Giai đoạn đầu tiên chiếu sáng cảnh và tạo ra các bản đồ Giaiđoạn thứ hai giới thiệu cho người xem và sinh ảnh từ cảnh Do đó ánh sángđầu tiên ánh sáng được phân tán xung quanh cảnh
Tia được tạo ra trong chiếu sáng Bề mặt phản chiếu
Bề mặt
Năng lượng bị tiêu hao thông qua phản xạ khuếch tán
Bản đồ chiếu sáng
Trang 24Tuy nhiên Photon mapping khác với bản đồ chiếu sáng là trongPhoton mapping không chỉ lưu trữ các photon mà còn cả cường độ chiếu sáng.Photon A có một hướng, một địa điểm và một giá trị màu sắc Mặt kháccác bản đồ chiếu sáng dựa hoàn toàn vào hình học của các đối tượng để cóthông tin về hướng Thứ hai các photon không được lưu trữ cố định trong một
hệ thống lưới như đã làm với các bản đồ chiếu sáng Sự phân bố của cácphoton là không thống nhất và do đó được tách ra từ nhiều hình học Cácphoton trong chính nó chính là một điểm chứa dữ liệu
2.1.1 Photon Tracing
Để lưu giữ ánh sáng một cách riêng biệt từ hình học của cảnh, cấu trúcphoton là cần thiết Đại diện cho thông lượng mỗi photon phải chứa các thôngtin về hướng của dòng năng lượng, lượng năng lượng và vị trí của các photon.Một kiểu cấu trúc photon thể hiện trong C sẽ như sau:
struct
photon
{
float x,y,z; // position ( 3 x 32 bit floats )
float color[3]; // power ( 3 x 32 bit floats )
float vector[3]; // incident direction ( 3 x 32 bit floats )
short sortFlag; // flag used in kd-tree}
Trong trường hợp bộ nhớ là vấn đề cần quan tâm, photon có thể đượcnén bằng cách chọn các photon đại diện lũy thừa bằng bốn byte bằng cách sửdụng chia sẻ của Ward-RGB-định dạng số mũ và sử dụng tọa độ theo hướngphoton
Phần đầu tiên của thuật toán photon mapping là photon tracing đượcnghiên cứu bởi Jensen Photon tracing là một quá trình phát photon từ
Trang 25các nguồn ánh sáng và dựng (vẽ) lại mô hình từ nguồn sáng đó Công việc củaphoton tracing nói chính xác là giống như ray tracing Nhưng sự khác biệttrong photon tracing là thông lượng truyền của các photon trong khi các tiatrong ray tracing lại tập trung về sự bức xạ của các photon Sự tương tác củamột photon với một đối tượng nào đó có thể khác biệt với sự tương tác củamột tia với một đối tượng Ví dụ khi một tia bị khúc xạ bức xạ của nó thay đổidựa trên các chỉ số tương đối của sự khúc xạ, điều này không xảy ra đối vớicác photon.
Các bản đồ photon đại diện cho chiếu sáng trực tiếp và gián tiếp.Các bản đồ photon được tạo ra là kết quả của photon tracing đó là phầnđầu tiên của thuật toán Photon nằm phân tán từ các nguồn ánh sáng thànhcác cảnh và cuối cùng được lưu trữ trong một bản đồ photon Bản chất củamột photon khi tương tác với một điểm trên một bề mặt có thể được mô tảnhư sau:
Khi một photon gặp một bề mặt khuếch tán, phương tỷ lệ và năng lượngđược lưu trữ trong các bản đồ photon tại điểm giao nhau và nó cũng đượcphản xạ trong một hướng ngẫu nhiên Các bản đồ photon chỉ lưu trữcác photon có sự khuếch tán tương tác
Khi một photon gặp một bề mặt phản xạ, bản đồ photon không được cậpnhật phương pháp photon là một trong tính chất hai phản xạ hoặc khúc xạ tùytheo tính chất bề mặt
Nếu bề mặt là một phần khuếch tán và một phần phản chiếu sau đó mộtphương pháp phải được sử dụng để xác định ngẫu nhiên mà thành phần củavật liệu quan trọng hơn Một trong những phương pháp là Russian roulette[4]
Trang 26Nếu một photon được hấp thụ bởi bề mặt, nó được lưu trữ trong các bản
đồ photon và thời gian tồn tại photon là kết thúc
Một kỹ thuật rất quan trọng trong photon tracing là Russian roulette Kỹthuật Russian roulette được sử dụng để quyết định xem một photon sẽ đượcphản xạ, hấp thụ hoặc truyền qua đường truyền Sau đó nó được sử dụng đểquyết định xem một photon được phản xạ cần được phản xạ khuếch tán hoặcphản chiếu Nói cách khác nó xác định thành phần của vật liệu quan trọnghơn Điều này được minh họa trong đoạn code sau, ở đó d đóng vai trò làphản xạ của một bề mặt và Φ là năng lượng của photon đến:
Sức mạnh của thuật toán Russian roulette là rõ ràng khi tưởng tượng mộttình huống mà 1000 photon được bắn vào một bề mặt với độ phản xạ là 0,5.Chúng tôi có thể phản ánh tất cả 1000 photon với năng lượng cho một nửahoặc chỉ phản xạ một nửa (500) của các photon với toàn bộ năng lượng.Russian roulette cho phép tùy chọn sau đó sẽ được thực hiện và đây rõ ràng làmột kỹ thuật mạnh để giảm bớt các yêu cầu tính toán cho photon tracing.Như đã đề cập đến lượng tử ánh sáng mà va đập vào những bề mặt khôngphản chiếu được lưu trữ trong một cấu trúc dữ liệu bản đồ toàn cảnh gọi làphoton map Mỗi photon có thể được lưu trữ một vài lần dọc theo hướng của
nó Các thông tin về một photon được lưu trữ tại các điểm trên bề mặt nơi
Trang 27nó được hấp thụ Ban đầu bản đồ photon được sắp xếp như là một mảngphẳng đơn giản của các photon Vì lý do hiệu quả mảng này được tổ chức lạithành một cấu trúc kd-tree cân bằng trước khi sinh ảnh.
2.1.2 Tối ưu hóa bản đồ photon
Các photon chỉ được phát sinh trong suốt phần photon tracing trong phầnsinh ảnh của bản đồ photon là một cấu trúc dữ liệu tĩnh được sử dụng để tínhtoán ước lượng của dòng photon đến và bức xạ phản xạ ở nhiều điểm trongcảnh Để làm điều này thì cần phải xác định vị trí các photon gần nhất trongbản đồ photon
Hình 2.2: Xây dựng bản đồ photon tụ quang (a) và bản đồ photon toàn cảnh (b).
Đây là một quá trình được thực hiện rất thường xuyên, và do đó nó làmột ý tưởng tốt để tối ưu hóa các đại diện của các bản đồ photon trước khithực hiện sinh ảnh vì vậy mà việc tìm kiếm các photon gần nhất là càng nhanhcàng tốt
Trước tiên, chúng ta cần phải chọn một cấu trúc dữ liệu tốt cho đại diệncác bản đồ photon Các cấu trúc dữ liệu cần được nhỏ gọn và đồng thời chophép nhanh chóng tìm kiếm những điểm gần nhất Nó cũng có khả năng xử lýtốt sự phân bố không đồng đều, điều này rất thường xảy ra trong bản đồphoton tụ quang Để xử lý các yêu cầu này là dùng cây cân bằng kd
Trang 282.3.3 Cây KD cân bằng (The balanced KD Tree)
Do yêu cầu về hiệu quả, cơ cấu kd-tree là một sự lựa chọn tự nhiên chomột bản đồ photon Một cây kd là một thuật toán phân chia không gian có thểđược sử dụng trong phạm vi tìm kiếm trực giao Bước đầu tiên trong việc xâydựng một cây-kd là xác định mức độ của vấn đề không gian, điều này chỉ đơngiản là mức độ không gian tối đa của các hạt trong kích cỡ không gian Ví dụtrong một không gian hai chiều, vấn đề không gian là một hình chữ nhật cóhai mặt là những phân chia tối đa giữa các hạt trong mỗi chiều
Hình (2.3) minh họa việc sử dụng một thuật toán kd-tree cho phân chiakhông gian của một không gian hai chiều Trong hình minh hoạ khoảng cáchngang tối đa là giữa các hạt 2 và 6 và điều này xác định vấn đề kích thướcngang của không gian, trong khi khoảng cách dọc giữa các điểm 3 và 7 xácđịnh kích thước theo chiều dọc Các vấn đề không gian ban đầu là hình chữnhật lớn có nhãn Node 1
Bước tiếp theo là đệ quy chia không gian trong đó kích thước phân chiakhông gian tối đa là lớn nhất Do đó Node 1 được chia theo chiều dọc để từnode 2 và node 3 Việc phân chia đệ quy của các nút được tiếp tục cho đến khichỉ có một phẩn tử trong mỗi ô Kết quả của mỗi giai đoạn của quá trình này
có thể được lưu trữ trong một cấu trúc cây tương tự như mô tả trong hình(2.4) Từ sự phân chia không gian đệ quy kết thúc khi chỉ có một phần tửtrong mỗi ô; trong tám phần tử ban đầu đã tạo ra một cây với tổng số nút bằngmười lăm
Trang 29Hình 2.3: Phân chia không gian sử dụng cây KD
Ở đây cây KD được mô tả là một cây hoàn toàn cân bằng Nó đòi hỏi sốlượng các photon được chia bởi hai và số lượng các nút trong cây luôn luôn là2N-1 trong đó N là số hạt photon [5]
Hình 2.4: Đơn giản hóa 2D cây KD cho phân chia không gian trong hình 2.5