Tôi hiện đang cố gắng thực hiện một trình theo dõi đường Monte Carlo. Tôi đã thực hiện một số nghiên cứu và dường như một cách tiếp cận phổ biến đối với vật liệu là sử dụng mô hình lớp. Một cái gì đó như thế này:
Khi ánh sáng chiếu vào bề mặt, Fresnel cho chúng ta biết bao nhiêu ánh sáng đó được phản chiếu bởi lớp thứ nhất và bao nhiêu đi đến lớp thứ hai, v.v.
Vì vậy, tôi đã làm một cái gì đó tương tự, nhưng đơn giản hơn: chỉ có một lớp đặc trưng và một lớp khuếch tán. Chưa có truyền qua. Cho đến nay rất tốt, tôi sử dụng một brdf có trọng lượng cosine đơn giản cho khuếch tán của tôi và mô hình vi sợi Cook-Torrance cho đặc điểm của tôi.
Bây giờ đến phần khó: tôi nên làm gì khi một tia chạm vào bề mặt? Thông thường, tôi sẽ chọn brdf tương ứng với vật liệu bề mặt, lấy mẫu hướng ánh sáng tới, đánh giá brdf và chia cho hàm phân phối xác suất đúng.
Nhưng ở đây, một bề mặt đạt hiệu quả tương ứng với nhiều vật liệu. Cách ngây thơ để xử lý việc này sẽ là lấy mẫu một lần cho mỗi lần nhấn. Nhưng đây rõ ràng là nguồn gốc của một hiệu suất lớn, khiến con đường của tôi trở thành một cái cây hiệu quả.
Có một giải pháp tốt hơn?