Phục vụ cho các hoạt cảnh hoặc các ứng dụng chuyển động tươ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ệu dụng, lưu trữ được các thông tin có thể sử dụng lại
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Trang 2KHOA CÔNG NGHỆ THÔNG TIN
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ác thuậ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ên mạ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ận tì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ùng tậ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
LỜI CAM ĐOAN 1
LỜI CẢM ƠN 2
DANH MỤC CÁC HÌNH 5
PHẦN MỞ ĐẦU 6
Chương 1 8
KHÁI QUÁT VỀ THỰC TẠI ẢO VÀ SINH ẢNH 8
1.1 Khái quát về thực tại ảo 8
1.1.1 Thực tại ảo là gì? 8
1.1.2 Lịch sử ra đời và phát triển của thực tại ảo 9
1.1.3 Các thành phần chính trong thực tại ảo: 10
1.1.3 Ứng dụng của thực tại ảo 12
1.2 Sinh ảnh trong thực tại ảo 17
1.2.1 Sinh ảnh trong thực tại ảo 17
1.2.2 Photon mapping trong sinh ảnh 19
Chương 2 21
MỘT SỐ VẤN ĐỀ TRONG SINH ẢNH BỞI PHOTON MAPPING 21
2.1 Thuật toán Photon mapping 21
2.1.1 Photon Tracing 23
2.1.2 Tối ưu hóa bản đồ photon 26
2.3.3 Cây KD cân bằng (The balanced KD Tree) 27
2.2 Cấu trúc dữ liệu 30
2.2.1 Photon bóng 30
2.2.2 Toàn cảnh và tụ quang các photon 31
2.2.3 Cấu trúc dữ liệu không gian 31
2.3 Tính toán bức xạ từ các bản đồ Photon 32
2.3.1 Ước tính bức xạ tại một bề mặt 32
2.3.2 Lọc (Filtering) 37
2.4 Sinh ảnh (Rendering) 39
2.4.1 Cơ sở khoa học 39
2.4.2 Phương trình sinh ảnh (Equation Rendering) 39
2.4.3 Chiếu sáng trực tiếp 42
2.4.4 Phản chiếu và độ bóng phản xạ 44
2.4.5 Tính tụ quang (Caustics) 45
2.4.6 Phản xạ đa khuếch tán (Multiple diffuse reflections) 46
2.5.5 Lấy mẫu và thanh lọc 47
2.4.8 Tối ưu hóa 48
Chương 3 49
CHƯƠNG TRÌNH THỬ NGHIỆM 49
3.1 Bài toán 49
3.2 Công cụ thiết kế và chức năng một số hàm trong chương trình 49
3.2.1 Giới thiệu về ngôn ngữ lập trình mã nguồn mở Processing 49
3.2.2 Chức năng một số hàm trong chương trình 50
3.3 Thực nghiệm chương trình và đánh giá kết quả 51
3.3.1 Thực nghiệm chương trình 51
Trang 63.3.2 Kết quả thực hiện 52
KẾT LUẬN 56 TÀI LIỆU THAM KHẢO 58
Trang 7DANH 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 8PHẦ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ếp giữ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ôi cuố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ĩnh vực khoa học, kĩ thuật, nghệ thuật, kinh doanh, quản lí, các ứng dụng đồ họa rấ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áng trê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 ra bở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ất lượng ảnh hoặc sinh ra các hình ảnh trung gian hoặc tương lai trong một hệ
Trang 9thống biến đổi Phục vụ cho các hoạt cảnh hoặc các ứng dụng chuyển động
tươ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ệu
dụ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ụng
củ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ình
sinh ả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ủa chương trình sinh ảnh, ý chức năng của các hàm trong chương trình Thực
nghiệm chương trình đưa ra kết quả và đánh giá kết quả thu được
Trang 10Chươ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ểm nà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ện nhữ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ôi trường đó mà con người có thể quan sát hay cảm nhận được thông qua các thiế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 ảo là: 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ần củ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ào con người có thể chìm đắm trong môi trường không gian ba chiều và cho phép con người có khả năng quan sát, tương tác với môi trường ảo đó Những tương tác đó đều được chương trình xử lý và thông qua thiết bị đầu ra sẽ đem
Trang 11lạ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ển mộ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à đơn giả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ựng thà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ệu nhữ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ị cho phù hợp Kết quả là người sử dụng cảm thấy mình bị vây quanh hay bị chìm vào một thế giới mà chỉ tồn tại trong máy vi tính
Trang 12Vào những năm bẩy mươi trung tâm nghiên cứu NASA bắt đầu triển khai 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ững ngườ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 đã được phát triển mà ở đó người dùng thao tác với các đối tượng 3D trong không gian bằng tay Năm 1984, NASA đã bắt đầu tiến hành dự án VIVED (Virtual Visual Environment Display) và sau đó là dự án VIEW (Virtual Visual Environment 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ình phá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ủa thự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 13* 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) để di chuyể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àn hì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 (Haptic feedback như găng tay, ) để tạo xúc giác khi sờ, nắm đối tượng Bộ phản hồi xung 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ình hay 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ễn phí) OpenGL, C++, Java3D, VRML, X3D, hay các phần mềm thương mại như 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ông dụ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ớn thô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 14nguyê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 đây
thự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ếp
vớ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 nay
là: 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 ra cá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ốt
hơ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ại
thì không ai có thể phủ nhận được, một trong các lĩnh vực mà ứng dụng
Cô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ụng
Công nghệ thông tin trong y học:
Hình 1.1 Mô phỏng các cơ cánh tay
Trang 15Đây là dự án nghiên cứu của Châu Âu vào tháng 11 năm 1993, dự án này cho 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 cho con 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ên khắp thế giới có thể cùng tham gia quan sát, thảo luận để đưa ra phương pháp chữ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ệc cung 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 con người ví dụ như tầm quan sát của mắt chúng ta không thể quan sát được mạch má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 16hay trong phẫu thuật nhiều khi không thể thực hiện được do đối tượng thực hiệ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ụng thự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ốt thậ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ương phá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ững khả 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 được niềm đam mê, hứng thú hay không thể phát huy hết được khả năng tưở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èn luyện khả năng tưởng tượng, những chương trình cung cấp mô hình thực nghiệ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 được xâ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ượng cầ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 tin trong 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 17mô 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ăng tương tác của con người với môi trường mô phỏng đó, có khả năng kích thích cao với người tham gia Qua những lần thực nghiệm này thì chúng ta sẽ ngày cà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ời gian 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ái nhì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 gian như trên thực tế mà đã được xây dựng trên máy vi tính và sẽ giúp cho chú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 18- 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ất cao Nếu sử dụng các mô hình thay thế, kèm theo âm thanh và tiếng động cũ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ản củ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ật trong 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ảnh ngoạn mục, hoành tráng Một vài những năm gần đây những phim đó đã ứng dụng thực tại ảo và những phương pháp xử lý đồ họa mạnh tạo ra những hiệ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 ba chiều có đặc điểm:
Kích thích mạnh mẽ người tham gia trong hội thảo
Trang 19 Â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ởi nhữ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òng giả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ính nhờ đ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 ra những ứng dụng mà ở đó con người có một cách để xây dựng, thao tác dữ liệu phứ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ới thực trong nhiều ứng dụng khác nhau Tuy nhiên để có được các mô hình thực tạ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ếp theo 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ình sinh 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ột ngô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ày bao 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ột hì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 tin biên tập phim để tạo kết quả video cuối cùng
Trang 20Rendering 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' (graphics pipeline), sinh ảnh là bước quan trọng cuối cùng để tạo ra diện mạo kết cục củ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ính ngày càng tăng, từ năm 1970 đến nay, rendering đã trở thành một chủ đề riêng biệt
Sinh ảnh được sử dụng trong: trò chơi video và điện tử (computer and video 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à trong hình tượng hóa thiết kế (design visualisation), mỗi cái áp dụng một cân bằng giữa các đặc trưng và kỹ thuật khác nhau Hiện nay còn có nhiều sản phẩm phần mềm đa dạng dùng cho việc sinh ảnh đồ họa Một số được kết hợp trong nhữ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ững phầ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ột chươ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ệc sinh ảnh trong thời gian thực (real time rendering) Sinh ảnh trước là một tiế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ệc tạ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 (3D hardware accelerators)
Trang 211.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 đầu tiê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ức tạp Nó cung cấp sự linh hoạt tương tự như phương pháp Monte Carlo ray tracing 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 đồ photon gồm 2 vấn đề Vấn đề đầu tiên là xây dựng bản đồ photon bằng cách phát ra cá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 được tá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ủa thuật toán, làm cho nó có khả năng mô phỏng chiều sáng toàn cảnh trong nhữ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ác biệ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ông cần phải chia lưới Các thuật toán độ phát xạ nhanh hơn trong các cảnh khuế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 mapping cò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ất hiệ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 22Lợi thế lớn của các bản đồ photon (trong thương mại) là không có bằng sáng chế về phương pháp, bất cứ ai có thể thêm các bản đồ photon để sinh ảnh của họ Do đó một số hệ thống thương mại đã sử dụng Photon mapping để sinh ảnh tụ quang
Trang 23Chươ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ách
các bản đồ photon từ đại diện hình học đơn giản hóa và cho phép đại diện cho
cả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àn
toàn mới, bản đồ chiếu sáng lần đầu tiên được đề xuất bởi Arvo [4] như là một
bước theo hướng này bản đồ chiếu sáng Arvo tương tự như một bản đồ kết
cấu nhưng thay vì tịnh tiến hoặc nhiễu loạn nhiều vector pháp tuyến, nó mang
thô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ủa
cá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 đối
tượng Một tia sáng va đập một bề mặt, độ lớn năng lượng được lưu trữ trong
bốn điểm dữ liệu lân cận có trọng số như minh họa trong hình 2.1
Trang 24Hì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ác bả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ểu diễn bằng tham số
Thuật toán của hai bản đồ chiếu sáng và Photon mapping thể hiện qua hai 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
Bản đồ chiếu sáng
Trang 25Tuy nhiên Photon mapping khác với bản đồ chiếu sáng là trong Photon 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ác cá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ác photon là không thống nhất và do đó được tách ra từ nhiều hình học Các photon 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úc photon là cần thiết Đại diện cho thông lượng mỗi photon phải chứa các thông tin 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ể được né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ướng photon
Phần đầu tiên của thuật toán photon mapping là photon tracing được nghiên cứu bởi Jensen Photon tracing là một quá trình phát photon từ
Trang 26cá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ủa
photon tracing nói chính xác là giống như ray tracing Nhưng sự khác biệt
trong photon tracing là thông lượng truyền của các photon trong khi các tia
trong ray tracing lại tập trung về sự bức xạ của các photon Sự tương tác của
mộ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ủa
mộ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 đổi
dự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ới
cá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ành
các cảnh và cuối cùng được lưu trữ trong một bản đồ photon Bản chất của
mộ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 được
phả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ập
nhật phương pháp photon là một trong tính chất hai phản xạ hoặc khúc xạ tùy
theo 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ột
phương pháp phải được sử dụng để xác định ngẫu nhiên mà thành phần của
vật liệu quan trọng hơn Một trong những phương pháp là Russian roulette
[4]
Trang 27Nế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ẽ được phả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ặc phả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ọng hơ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ột tì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ửa hoặ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ông phả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 28nó được hấp thụ Ban đầu bản đồ photon được sắp xếp như là một mảng phẳng đơn giản của các photon Vì lý do hiệu quả mảng này được tổ chức lại thà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ần sinh ảnh của bản đồ photon là một cấu trúc dữ liệu tĩnh được sử dụng để tính toán ước lượng của dòng photon đến và bức xạ phản xạ ở nhiều điểm trong cảnh Để làm điều này thì cần phải xác định vị trí các photon gần nhất trong bả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 khi thự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 nhanh cà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ện các bản đồ photon Các cấu trúc dữ liệu cần được nhỏ gọn và đồng thời cho phé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 292.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 cho mộ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ây dựng một cây-kd là xác định mức độ của vấn đề không gian, điều này chỉ đơn giả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 chia không gian của một không gian hai chiều Trong hình minh hoạ khoảng cách ngang 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ước ngang 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 chia khô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 khi chỉ 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ằng mười lăm
Trang 30Hì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