Cây KD cân bằng (The balanced KD Tree)

Một phần của tài liệu Kỹ thuật PHOTON MAPPING trong sinh ảnh và ứng dụng (Trang 29 - 32)

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.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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ụng (Trang 29 - 32)