Tối ưu hóa bản đồ photon

Một phần của tài liệu Kỹ thuật photon mapping trong sinh ảnh và ứng dụn (Trang 27 - 31)

2.1. Thuật toán Photon mapping

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.

2.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.

Hì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

Một cây KD ba chiều được xây dựng theo cách tương tự, nhưng bao gồm chiều thứ ba. Các vấn đề không gian trong trường hợp này sẽ mang hình dáng của một hình lập phương. Trong suốt phần thứ hai, photon mapping sử dụng thuật toán Monte Carlo ray tracing để sinh ảnh. Tia được bắt nguồn từ việc quan sát qua từng điểm ảnh của hình chiếu mặt phẳng vào cảnh. Cây KD (bản đồ photon) được dùng để tìm những điểm lân cận gần nhất tại các điểm giao nhau giữa các tia và các đối tượng trong cảnh. Điều này là do sự sắp xếp không gian để cho phép thuật toán nhanh chóng thu hẹp vấn đề không gian bằng cách thực hiện đủ điều kiện thử nghiệm ở cấp nhóm. Tìm kiếm bắt đầu từ gốc, được dán nhãn Node 1 trong ví dụ đã cho. Một thử nghiệm đủ điều kiện được áp dụng cho các nút 2 và 3. Nếu một node không đủ điều kiện tất cả các nút phụ của nó là bị loại mà không cần phải kiểm tra mỗi thành viên của các nút phụ [5].

Việc thực hiện các thuật toán photon mapping chủ yếu phụ thuộc vào hiệu quả của ba công việc:

1. Chi phí hoặc tốc độ xây dựng và cân bằng bản đồ photon. Cây kd không cân bằng được xây dựng nhanh hơn nhưng lại chậm hơn nhiều lúc truy tìm những điểm lân cận gần nhất.

2. Chi phí của việc xác định đối tượng của giao điểm trong quá trình ray tracing. Chi phí này phụ thuộc vào số lượng các đối tượng trong cảnh nhưng được tăng thêm bởi sự hiện diện của vật liệu phản xạ và khúc xạ.

3. Chi phí tính toán ước lượng bức xạ từ bản đồ photon, tại điểm giao nhau. Điều này liên quan đến việc làm thế nào để tập hợp nhanh các điểm photon lân cận gần nhất có thể được xác định.

Dự án này chủ yếu quan tâm đến khía cạnh tối ưu hóa có liên quan trực tiếp với việc xây dựng bản đồ photon và tính toán dự toán bức xạ (điểm 1 và 3 ở trên).

Sự phức tạp của thuật toán cân bằng là O(NlogN) trong đó N là số photon trong các bản đồ photon. Trong thực tế, bước này chỉ mất vài giây ngay cả đối với một vài triệu photon.

Một phần của tài liệu Kỹ thuật photon mapping trong sinh ảnh và ứng dụn (Trang 27 - 31)

Tải bản đầy đủ (DOC)

(59 trang)
w