मैंने यहाँ और यहाँ विस्तृत वैश्विक रोशनी फैलाने के लिए कैस्केड लाइट प्रोपोगेशन वॉल्यूम एल्गोरिथम (अभी तक कोई अप्रत्यक्ष छायांकन) लागू नहीं किया है । यह ठीक काम करता है लेकिन मैं अभी भी विशेष रूप से एक कलाकृति को ठीक करने की कोशिश कर रहा हूं।
संक्षिप्त सारांश
आप इसे छोड़ सकते हैं यदि आप पहले से ही जानते हैं कि एल्गोरिथ्म कैसे काम करता है।
एल्गोरिथ्म एक 3D ग्रिड में गोलाकार हार्मोनिक्स के रूप में प्रकाश की जानकारी संग्रहीत करके काम करता है, जहां शुरू में ग्रिड के प्रत्येक सेल में डेटा एक विस्तारित छाया मानचित्र ( चिंतनशील छाया नक्शा) प्रदान करने से आता है) जिसमें रंग और सामान्य जानकारी शामिल है, गहराई के अलावा। विचार यह है कि अनिवार्य रूप से एक प्रकाश स्रोत द्वारा देखे गए सभी पिक्सल अप्रत्यक्ष रोशनी की पहली उछाल का कारण हैं, इसलिए आप छाया मानचित्रण के लिए आपके द्वारा उपयोग की जाने वाली साधारण गहराई बफर के साथ आवश्यक जानकारी संग्रहीत करते हैं, और 3 डी ग्रिड को आरम्भ करने के लिए सभी डेटा का नमूना लेते हैं। । 3 डी ग्रिड में जानकारी को उसके 6 प्रत्यक्ष पड़ोसियों (ऊपर, नीचे, बाएं, दाएं, ऊपर, नीचे) के सभी को एक सेल में सूचना का प्रसार (प्रत्येक पुनरावृत्ति के लिए) द्वारा पुन: प्रसारित किया जाता है। ग्रिड में जानकारी का उपयोग करके दृश्य को प्रकाश में लाने के लिए, आप अपने दृश्य पर एक पूर्ण स्क्रीन पास लागू करते हैं, और प्रत्येक रेखापुंज पिक्सेल के लिए आपके पास उपलब्ध सतह की विश्व स्थान स्थिति उपलब्ध होती है (जैसे जी-बफ़र्स से आस्थगित छायांकन में), इसलिए आप पता है कि ग्रिड के कौन से सेल स्क्रीन पर एक निश्चित पिक्सेल हैं।
यह अधिकांश भाग के लिए ठीक काम कर रहा है, यहाँ दो चित्र हैं बिना सिम्युलेटेड जीआई और सिर्फ एक हार्डकोड परिवेशी शब्द, और इसके आगे एलपीवी एल्गोरिथ्म के साथ एक छवि है। सतहों पर रंगीन प्रतिबिंब, बेहतर गहराई विस्तार, आदि पर ध्यान दें।
मुसीबत
प्रकाश चरण के दौरान कोशिकाओं को देखते समय, ट्रिलिनियर इंटरपोलेशन (हार्डवेयर टेक्सचर फिल्टर्स का उपयोग) का उपयोग सेल के केंद्र, उसके पड़ोसी कोशिकाओं के बीच डेटा को सुचारू रूप से प्रक्षेपित करने के लिए किया जाता है, और वास्तविक अप टेक्सचर कोऑर्डिनेट किया जाता है। अनिवार्य रूप से, यह प्रक्षेप सेल के केंद्र में प्रकाश की जानकारी के प्रसार की नकल करता है, जहां केंद्र को जानकारी दिखाई देती है। यह आवश्यक है क्योंकि अन्यथा प्रकाश बहुत अधिक मोटा और बदसूरत दिखाई देगा। हालाँकि, चूंकि ट्रिलिनियर इंटरपोलेशन किसी सेल में एन्कोडेड प्रकाश सूचना के प्रकाश प्रसार की दिशा को ध्यान में नहीं रखता है (याद रखें, यह गोलाकार हार्मोनिक्स में है), प्रकाश गलत ढंग से पिक्सेल को देखा जा सकता है। उदाहरण के लिए, यदि कोशिका में दी गई रेडियेशन केवल (1,0,0) की ओर फैलती है ("
यह गलत तरीके से गर्त की दीवारों को हल्का रक्तस्राव का कारण बनता है जब दृश्य में सतहों की तुलना में ग्रिड में सेल का आकार बड़ा होता है (यह आवश्यक है क्योंकि आपको बड़ी कोशिकाओं को दृश्य में प्रकाश को दूर तक फैलाने की आवश्यकता है जितना संभव हो उतना कम प्रसार के साथ)। यह है जो ऐसा लग रहा है:
जैसा कि आप देख सकते हैं (ऊपर दाईं ओर छाया रूपरेखा से), दृश्य को एक दिशात्मक प्रकाश स्रोत द्वारा दृश्य के शीर्ष पर कहीं बाईं ओर जलाया जाता है। और चूंकि आलिंद और अंदर के बाहर को अलग करने वाली केवल एक कोशिका होती है, प्रकाश के माध्यम से खून बहता है और बाईं ओर की दीवार को गलत तरीके से रोशन किया जाता है।
वास्तविक प्रश्न
लेखक इसे ठीक करने के लिए मैनुअल अनिसोट्रोपिक फ़िल्टरिंग का एक रूप सुझाता है। वह एक मूलाधार ढाल देता है (मैं वर्तमान सेल से लिए गए एसएच गुणांक को मान रहा हूं) सतह की दिशा के अनुसार सामान्य है:
और बताता है
इस प्रकार, रेडिएशन दिशात्मक व्युत्पत्ति की वास्तविक रेडिएशन दिशा के साथ तुलना करके, यह गणना की जा सकती है कि क्या इस बिंदु के लिए रेडलाइन वितरण अपने ट्रिलिनियर प्रक्षेप से आगे शुरू होता है।
मेरे सवाल):
समीकरण में, फ़ंक्शन c (x) बिंदु (x) पर SH गुणांक प्रतीत होता है। तो मूलांक ढाल सामान्य संख्या संख्यात्मक व्युत्पन्न की तरह गणना करने के लिए लगता है के रूप में अंक x - (n / 2) और x + (n / 2) पर SH गुणांक के भारित अंतर। हालाँकि, मेरे संदर्भ में c (x) क्या है? वर्तमान में मैं यह मान रहा हूँ कि c (x) सतह स्थान (x) पर त्रैमासिक रूप से प्रक्षेपित गुणांक को संदर्भित करता है, लेकिन मुझे बिल्कुल भी यकीन नहीं है, क्योंकि मुझे नहीं पता कि यह कैसे दिशात्मक के बारे में अधिक जानकारी देने वाला है। एसएच गुणांक का वितरण।
और फिर उस ग्रेडिएंट को कैसे बदला जाता है, सेल से सैंपल्ड लाइटिंग को सतहों पर कैसे लगाया जाता है, बिल्कुल? लेखक सिर्फ "वास्तविक चमक दिशा के साथ मूल दिशात्मक व्युत्पत्ति की तुलना" लिखता है, लेकिन यह बहुत अस्पष्ट है।
वह एक "सेंट्रल डिफरेंसिंग स्कीम" का उपयोग करने का उल्लेख करता है और एसएच गुणांक के केंद्रीय विभेदन के लिए इन स्लाइड्स को संदर्भित करता है , और इस पेपर को भी संदर्भित करता है जो ग्रेडिएंट की व्युत्पत्तियों को दर्शाता है, लेकिन अभी मैं उनसे कोई उपयोगी निष्कर्ष नहीं निकाल सकता।