मैं वर्तमान में केविन बीसन (छोटा: http://www.kevinbeason.com/smallpt/) द्वारा विकसित रे ट्रैसर को समझने की कोशिश कर रहा हूं और यदि मैं सही ढंग से कोड को समझता हूं तो वह यादृच्छिक रूप से प्रतिबिंबित या अपवर्तित करने का विकल्प चुनता है किरण (यदि सतह दोनों चिंतनशील और अपवर्तक है)।रे ट्रेसिंग: केवल प्रतिबिंब और अपवर्तन किरणों के बजाय एकल किरण का उपयोग करें
रेखा 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);
किसी को भी केवल बजाय उन दोनों की एक किरण कास्टिंग का नुकसान के बारे में समझाएं कर सकते हैं? मैंने इस तकनीक के बारे में कभी नहीं सुना था और मैं उत्सुक हूं कि व्यापार बंद क्या है, यह देखते हुए कि यह एक बड़ी जटिलता में कमी का परिणाम है।
क्या आपने [इस प्रस्तुति] को देखा है (https://docs.google.com/open?id=0B8g97JkuSSBwUENiWTJXeGtTOHFmSm51UC01YWtCZw) जो सबकुछ बताता है और स्पष्ट रूप से उस साइट से जुड़ा हुआ है? – KillianDS
हां, मैंने प्रेजेंटेशन पढ़ा है और यह बहुत अच्छा है! जो मैं खोज रहा हूं वह गहराई से स्पष्टीकरण में है कि केवल एक ही किरण कास्टिंग कैसे एल्गोरिदम की दक्षता को प्रभावित करता है। उन्होंने फैसला क्यों किया कि 2 दोनों किरणों की गहराई के लिए मूल्यांकन किया जाना चाहिए, लेकिन बाद में नहीं (यानी कोई कारण है कि यह वास्तव में 2 क्यों है या यह कम या ज्यादा यादृच्छिक है?)। – crapper
अधिक या कम यादृच्छिक, लेकिन विचार शायद यह है कि आपको अपने पहले कुछ प्रतिबिंब और अवशोषण से अधिक रंग तीव्रता मिलेगी। जितना आगे आप प्रतिबिंबित/अपवर्तित करेंगे, उतना ही महत्वहीन योगदान होना चाहिए। – KillianDS