2012-03-12 12 views
7

जैसा कि मैं इसे समझता हूं, छाया-मानचित्रण एक गहराई नक्शा बनाने के लिए प्रकाश के परिप्रेक्ष्य से दृश्य को प्रस्तुत करके किया जाता है। फिर आप कैमरे के पीओवी से दृश्य को फिर से प्रस्तुत करते हैं, और दृश्य में प्रत्येक बिंदु (जीएलएसएल में खंड) के लिए आप प्रकाश स्रोत से दूरी की गणना करते हैं; यदि यह आपके छाया मानचित्र में आपके पास है, तो यह प्रकाश में है, अन्यथा यह छाया में है।एकाधिक बिंदु प्रकाश स्रोतों के लिए एक छाया छाया का उपयोग कैसे करें?

मैं एक बिंदु/omnidirectional प्रकाश के साथ छाया मैपिंग कैसे करें के बारे में एक विचार प्राप्त करने के लिए बस this tutorial के माध्यम से पढ़ रहा था।

खंड 12.2.2 के तहत यह कहते हैं:

हम सब प्रकाश स्रोतों

और के लिए एक एकल छाया मानचित्र का उपयोग तो 12.3.6 के तहत यह कहते हैं:

1) वर्तमान पिक्सेल से वर्ग स्रोत तक वर्ग की दूरी की गणना करें।
...
4) निर्धारित छाया मूल्य के साथ गणना की गई दूरी मान की तुलना करें कि यह निर्धारित करने के लिए कि हम छाया में हैं या नहीं।

जो मैंने ऊपर बताया है वही है।

मुझे क्या नहीं मिलता है अगर हमने अपनी सभी रोशनी को एक छाया मानचित्र में पकाया है, तो हमें किस दूरी की तुलना करने की आवश्यकता है? मानचित्र में बेक्ड दूरी किसी भी चीज़ के अनुरूप नहीं होनी चाहिए, क्योंकि यह सभी रोशनी का मिश्रण है, है ना?

मुझे यकीन है कि मुझे कुछ याद आ रहा है, लेकिन उम्मीद है कि कोई मुझे यह समझा सकता है।


इसके अलावा, अगर हम एक छाया मानचित्र का उपयोग कर रहे हैं, तो हम इसे सभी प्रकाश स्रोतों के लिए कैसे मिश्रण करते हैं?

एक प्रकाश स्रोत के लिए छाया नक्शा सिर्फ निकटतम वस्तु की दूरी को प्रकाश (यानी, गहराई का नक्शा) की दूरी पर संग्रहीत करता है, लेकिन कई प्रकाश स्रोतों के लिए, इसमें क्या होगा?

उत्तर

5

आप की सजा कम समय से पहले ही काट लिया:

हम सब प्रकाश स्रोतों के लिए एक एकल छाया मानचित्र का उपयोग, बहु प्रतिपादन के साथ एक छवि बनाकर प्रत्येक प्रकाश स्रोत के लिए एक पास प्रदर्शन करते हुए।

तो छाया मानचित्र में एक समय में एक प्रकाश स्रोत के लिए डेटा होता है लेकिन वे केवल एक मानचित्र का उपयोग करते हैं क्योंकि वे एक समय में केवल एक प्रकाश प्रदान करते हैं।

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

फ्लोटिंग पॉइंट राउंडिंग त्रुटि संचय के कारण, आप आम तौर पर "पिक्सेल जलाया जाता है यदि यह छाया बफर में थोड़ी दूरी के बराबर या बराबर है" के परीक्षण को लागू करता है।

+0

मैंने सोचा कि बाकी वाक्य का अर्थ यह है कि उन्होंने प्रत्येक प्रकाश स्रोत के लिए उसी मानचित्र (शायद additively) को प्रस्तुत करके छाया मानचित्र बनाया; यह नहीं कि वे इसे साफ़ और पुन: उपयोग करते हैं। यह अब और अधिक समझ में आता है ... हालांकि यह एक शर्म की बात है - मैं वास्तव में उम्मीद कर रहा था कि मैं एक छाया मानचित्र से दूर हो सकता हूं: पी – mpen

+0

यदि आप चीजों को चारों ओर फ़्लिप करते हैं और जिसे अक्सर स्थगित प्रतिपादन कहा जाता है, तो आप किस तरह से कर सकते हैं। आप कैमरे से दृश्य गहराई + मानक + कुछ सतह की जानकारी प्रति पिक्सेल में प्रस्तुत करते हैं, फिर प्रत्येक प्रकाश के लिए आप एक पूर्ण स्क्रीन क्वाड खींचते हैं जो प्रभावी रूप से कैमरे के प्रतिपादन में सक्रिय होता है। यहां तक ​​कि यदि आपका जीपीयू केवल 8 बिट आरजीबीए (मोबाइल दुनिया में अभी भी आम है) आउटपुट कर सकता है, तो आप एकाधिक पास में एकाधिक बनावट में पहला बिट कर सकते हैं। – Tommy

+0

ग्रेट। आपने अभी मेरे लिए कीड़े का एक नया नया खुल खोला है। मैं एक खेल बना रहा हूं, और अधिकांश वस्तुएं स्थिर हैं (या शायद ही कभी बदलती हैं), इसलिए मैं सभी स्थैतिक वस्तुओं के लिए छाया मानचित्रों को प्रीकंप्यूटिंग करने, प्रतिलिपि रखने और इसे चलती वस्तुओं के लिए अद्यतन करने के बारे में सोच रहा था। मैं जितनी संभव हो उतनी रोशनी का समर्थन करना चाहता हूं, इसलिए मुझे नहीं लगता कि अलग-अलग कोणों से 60 बार प्रति सेकंड 60 बार दृश्य को फिर से प्रस्तुत करना मेरे लिए एक संभावना है। लेकिन एक छाया नक्शा एक सक्रिय बनावट का उपयोग करता है, है ना? मुझे अंतिम प्रतिपादन पास के लिए एक बार में उन सभी को बांधना होगा, है ना? – mpen

संबंधित मुद्दे