Hãy để chúng tôi lùi lại một bước. Khi bạn thực hiện theo dõi đường dẫn, bạn đang thực hiện tích hợp Monte Carlo. Điều đó có nghĩa là gì? Bạn cố gắng giải quyết∫f(x)dxbằng cách lấy mẫu. Sự tích hợp Monte Carlo nói cho một sự đủ lớnn: 1n∑ni=0f(xi)→∫f(x)p(x)dx
Nếu chúng ta thay f(xi)p(xi) chúng tôi nhận được 1n∑ni=0f(xi)p(xi)→∫f(x)dx. Bây giờ của bạnf(x) là phương trình kết xuất và bạn có cho mình một cách gần đúng phương trình kết xuất.
Bây giờ chúng ta đang ở cùng một trang về những điều cơ bản, hãy xem xét những gì bạn làm. Bạn tạo ra một đường ánh sáng, nó sẽ trở thành một trong những mẫuf(xi)p(xi). Để làm điều này, bạn mô hình hóa sự tương tác của ánh sáng với bề mặt ở mỗi bước dọc theo đường dẫn. Và bạn luôn cập nhật xác suất đường dẫn hiện tại của bạnp(xi).
Bây giờ đâu là cách chính xác để xử lý một vật liệu có nhiều cách khác nhau mà một tia có thể truyền đi? Không có một cách chính xác. Phần quan trọng duy nhất là, giá trị của bạnn, f(xi) và p(xi) giữ đúng
Khi bạn phân kỳ đường đi và sinh ra hai tia, bạn phải tăng số lượng ntrong tổng số mẫu phù hợp bởi vì bây giờ bạn đã thực hiện hai mẫu. Sau đó xử lý cả hai con đường như thể chúng tách biệt ngay từ đầu.
Nếu bạn muốn chỉ tiếp tục một con đường, bạn có thể làm điều đó với cách roulette Nga. Xác định ba khoảng (một cách phổ biến là chọn các khoảng là phân vùng của các số từ 0 đến 1). Kích thước tương đối của các khoảng này phải tỷ lệ thuận với vật liệu. Phần khó khăn là làm thế nào để bạn thiết kế này. Trong lớp học của chúng tôi, chúng tôi đã xác định một số phản xạρ. Chúng tôi vẽ một số ngẫu nhiên trong khoảng từ 0 đến 1, nếu nó thấp hơnρcon đường kết thúc. Khác chúng tôi phản ánh. BRDF sẽ chăm sóc để cân trọng lượng của phần chính và phần khuếch tán nếu bạn làm đủ mẫu.
Tất nhiên bạn có thể cải thiện điều này thông qua việc lấy mẫu quan trọng, và đó có lẽ là nơi bạn gặp vấn đề. Đối với một thiết kế bề mặt rất đặc biệt, một phân phối ngẫu nhiên chỉ rút ra nhiều hướng hơn từ hướng phản xạ của gương. Nghỉ ngơi sẽ được khuếch tán. Tôi không có đủ kinh nghiệm với các công cụ theo dõi thực sự phình to để giúp bạn cách thiết kế một, nhưng nguồn của bạn có thể sẽ có một cái gì đó ở đây.
Điều quan trọng ở đây là một lần nữa: Thiết kế nó để bạn biết khả năng của một hướng cụ thể, và sau đó giữ nguyên hướng của bạn p(xi) tùy theo nó, vì vậy cuối cùng bạn có thể chia cho điều này và có được ước tính chính xác của Monte Carlo.
TL; DR Không có cách chính xác. Điều quan trọng là phải giữ xác suất của các mẫu trong tâm trí.
Tôi hy vọng tôi đã không bỏ lỡ điểm hoàn toàn của câu hỏi của bạn.
Bổ sung: Monte Carlo samling, miễn là bạn xác định trọng số theo xác suất, sẽ luôn luôn có các mẫu vô hạn hội tụ với giá trị chính xác. Điều này có nghĩa là ngay cả khi bạn sử dụng một cách hoàn toàn ngu ngốc để tạo mẫu, nếu bạn làm điều đó đủ lâu, điều đó sẽ hiệu quả. Có thể không phải trong cuộc đời của bạn hoặc của cháu chắt của bạn, nhưng nó sẽ.