मैं वर्तमान में एक मोंटे कार्लो पथ अनुचर को लागू करने की कोशिश कर रहा हूं। मैंने कुछ शोध किया है और ऐसा लगता है कि सामग्री के लिए एक सामान्य दृष्टिकोण एक स्तरित मॉडल का उपयोग करना है। कुछ इस तरह:
जब प्रकाश सतह से टकराता है, तो फ्रेस्नेल हमें बताता है कि पहली परत से उस प्रकाश का कितना भाग परावर्तित होता है और दूसरा कितना आगे जाता है।
इसलिए मैंने कुछ ऐसा ही किया, लेकिन सरल: केवल एक परत स्पेक्युलर और एक परत फैलाना। अभी तक कोई संप्रेषण नहीं। अब तक बहुत अच्छा है, मैं अपने प्रसार के लिए एक साधारण कोसाइन-वेटेड ब्रैड का उपयोग करता हूं और अपने सट्टेबाज के लिए कुक-टॉरेंस माइक्रोफैसेट मॉडल।
अब कठिन हिस्सा आता है: मुझे एक बार किरण को सतह से टकराकर क्या करना चाहिए? आम तौर पर, मैं सतह सामग्री के अनुरूप brdf चुनता हूं, एक घटना प्रकाश दिशा का नमूना देता हूं, brdf का मूल्यांकन करता हूं, और सही संभावना वितरण फ़ंक्शन द्वारा विभाजित करता हूं।
लेकिन यहां, एक सतह हिट प्रभावी रूप से कई सामग्रियों से मेल खाती है। इसे संभालने का भोला तरीका प्रत्येक परत के हिट होने के लिए एक बार नमूना लेना होगा। लेकिन यह स्पष्ट रूप से एक विशाल प्रदर्शन हिट का स्रोत है, जिससे मेरा रास्ता प्रभावी रूप से एक पेड़ बन जाता है।
क्या कोई बेहतर समाधान है?