Tôi hiện đang cố gắng hiểu trình theo dõi được phát triển bởi Kevin Beason (smallpt: http://www.kevinbeason.com/smallpt/) và nếu tôi hiểu mã một cách chính xác, anh ấy chọn ngẫu nhiên hoặc phản xạ tia (nếu bề mặt phản xạ và khúc xạ).Ray Tracing: Chỉ sử dụng tia đơn thay vì cả tia phản xạ và khúc xạ
Dòng 71-73:
return obj.e + f.mult(depth>2 ? (erand48(Xi)<P ? // Russian roulette
radiance(reflRay,depth,Xi)*RP:radiance(Ray(x,tdir),depth,Xi)*TP) :
radiance(reflRay,depth,Xi)*Re+radiance(Ray(x,tdir),depth,Xi)*Tr);
Ai có thể vui lòng giải thích những nhược điểm của chỉ đúc một tia duy nhất thay vì cả hai trong số họ? Tôi chưa bao giờ nghe nói về kỹ thuật này và tôi tò mò về sự cân bằng giữa cái gì, cho rằng nó dẫn đến một sự giảm phức tạp lớn.
Bạn đã xem [bản trình bày này] (https://docs.google.com/open?id=0B8g97JkuSSBwUENiWTJXeGtTOHFmSm51UC01YWtCZw) giải thích mọi thứ và được liên kết rõ ràng trên trang web đó chưa? – KillianDS
Có, tôi đã đọc bản trình bày và nó rất tuyệt! Những gì tôi đang tìm kiếm là một giải thích sâu hơn về cách chỉ đúc một tia ảnh hưởng đến hiệu quả của thuật toán. Tại sao ông quyết định rằng đối với độ sâu lên đến 2 cả hai tia nên được đánh giá nhưng không phải sau đó (tức là có bất kỳ lý do nào đằng sau lý do tại sao nó là chính xác 2 hoặc là nó nhiều hơn hoặc ít hơn ngẫu nhiên?). – crapper
nhiều hơn hoặc ít hơn ngẫu nhiên, nhưng ý tưởng có lẽ là bạn sẽ nhận được cường độ màu nhất từ vài phản xạ và hấp thụ đầu tiên của bạn. Bạn càng phản ánh/khúc xạ càng nhiều thì càng có nhiều đóng góp không đáng kể. – KillianDS