आस्थगित प्रतिपादन क्या है?


54

मैंने आस्थगित प्रतिपादन के बारे में सुना है और इसका उपयोग करते हुए एक विशाल प्रदर्शन के बिना एक दृश्य में "बहुत सारे" रोशनी की अनुमति दे सकता है, लेकिन यह क्या है और (उच्च स्तर से) इसे कैसे लागू किया जाता है?

जवाबों:


55

आस्थगित प्रतिपादन की परिभाषित विशेषता यह है कि यह अनिवार्य रूप से ओ (ज्यामिति * रोशनी) से ओ (ज्यामिति + रोशनी) से दृश्य प्रतिपादन की जटिलता को बदल देता है।

यह पहले बुनियादी विशेषताओं जैसे कि (न्यूनतम) स्थिति में उत्पादन करने के लिए डिज़ाइन किए गए शेड का उपयोग करके पहले दृश्य प्रदान करके प्राप्त किया जाता है *, सामान्य, और फैलाना रंग। अन्य विशेषताओं में प्रति पिक्सेल स्पेक्युलर मान और अन्य भौतिक गुण शामिल हो सकते हैं। इन्हें पूर्ण स्क्रीन रेंडर टारगेट में संग्रहित किया जाता है, जिसे सामूहिक रूप से जी-बफर के रूप में जाना जाता है।

(*: यह ध्यान देने योग्य है कि डेवलपर्स आमतौर पर गहराई को स्टोर करने का विकल्प चुनते हैं, और स्थिति को फिर से संगठित करने के लिए उपयोग करते हैं, क्योंकि गहराई उपलब्ध होने के बाद से कई अन्य प्रभावों के लिए उपयोगी है। )

एक बार जी-बफर उत्पन्न हो जाने के बाद, स्क्रीन पर किसी भी पिक्सेल के लिए पूर्ण प्रकाश प्रति पिक्सेल एक बार BRDF को हल करके पूरी तरह से प्रकाशित परिणाम की गणना करना संभव है। दूसरे शब्दों में, यदि आपके पास 20 मेष हैं जो प्रत्येक 20 रोशनी से प्रभावित होते हैं, तो पारंपरिक ("आगे") प्रतिपादन मांग करेगा कि आप प्रत्येक प्रकाश को प्रभावित करने वाले परिणाम को संचित करने के लिए प्रत्येक जाल को कई बार फिर से प्रस्तुत करें। सबसे खराब स्थिति में, यह प्रति लाइट प्रति जाली कॉल या 400 कुल ड्रा कॉल होगा! इनमें से प्रत्येक ड्रॉ कॉल के लिए, आप अनावश्यक रूप से जाली के कोने को पीछे कर रहे हैं। एक अच्छा मौका यह भी है कि आप उन पिक्सलों को छायांकित करेंगे जो वास्तव में प्रकाश से प्रभावित नहीं होते हैं, या अंतिम परिणाम में दिखाई नहीं देंगे (क्योंकि वे दृश्य में अन्य ज्यामिति द्वारा उत्पन्न होंगे)। इनमें से प्रत्येक बर्बाद जीपीयू संसाधनों में परिणाम है।

आस्थगित प्रतिपादन की तुलना करें: जी-बफर को आबाद करने के लिए आपको केवल एक बार मेश को प्रस्तुत करना होगा। उसके बाद, प्रत्येक प्रकाश के लिए, आप एक बाउंडिंग आकार प्रदान करते हैं जो प्रकाश के प्रभाव के विस्तार का प्रतिनिधित्व करता है। एक बिंदु प्रकाश के लिए, यह एक छोटा गोला हो सकता है, या एक दिशात्मक प्रकाश के लिए, यह एक पूर्ण स्क्रीन क्वाड होगा, क्योंकि पूरा दृश्य प्रभावित होता है।

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

हालांकि, यह कमियों के बिना नहीं है। यह एक प्रतिमान है जिसे पारदर्शी ज्यामिति को संभालने के लिए विस्तारित करना बहुत मुश्किल है (देखें: गहराई छीलने)। इतना मुश्किल, वास्तव में, कि वस्तुतः सभी स्थगित प्रतिपादन कार्यान्वयन दृश्य के पारदर्शी भागों के लिए आगे प्रतिपादन के लिए वापस आते हैं। डिफर्ड रेंडरिंग भी बड़ी मात्रा में वीआरएएम और फ्रेम बफर बैंडविड्थ का उपभोग करता है, जो डेवलपर्स को बड़ी लंबाई में जाने के लिए चतुराई से संभव सबसे छोटे / सबसे छोटे घटकों में जी-बफर विशेषताओं को पैक और संपीड़ित करता है।


8

इसे डिफर्ड शेडिंग के रूप में भी संदर्भित किया जाता है, डिफर्ड रेंडरिंग संभव प्रतिपादन पथों के एक विस्तृत सेट को संदर्भित करता है जो मध्यवर्ती परिणामों को बनावट में संग्रहीत करते हैं, फिर इंटरमीडिएट डेटा का नमूना करके रेंडरिंग समीकरण को बाद में पूरा करते हैं।

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

उदाहरण के लिए पहले प्रकाश की जानकारी प्रदान करने सहित कई विविधताएँ मौजूद हैं।

अधिक जानकारी के लिए देखें: http://en.wikipedia.org/wiki/Deferred_shading http://delicious.com/aancsiid/deferred-shading


-3

आस्थगित प्रतिपादन प्रसंस्करण है जहां सब कुछ छाया करने के लिए दूसरी पास करने से पहले जियोमेट्री है। यह उपयोगी है क्योंकि यह O (पिक्सेल * प्रकाश स्रोतों) के लिए सह-अस्तित्व को बदलता है, जिससे आप प्रदर्शन के लिए केवल एक छोटे से हिट के साथ जटिल दृश्यों का उपयोग कर सकते हैं।

इसे लागू करना बल्कि सरल है। पहले पास के लिए कम से कम, दूरी, सामान्य और रंग प्रदान करने की आवश्यकता होती है। आप स्मृति की कीमत पर, स्पेक्युलर और स्थिति की तरह रेंडर करने के लिए अधिक टेक्सचर जोड़ सकते हैं।

एक बार जब आप उन प्रदान करते हैं, तो आप कुछ क्षेत्रों को प्रस्तुत करते हैं, जहां एक अद्वितीय प्रकाश स्रोत हर एक के केंद्र में होता है, प्रकाश को एक साथ जोड़ते हैं, इसे अपने दृश्य में ज्यामिति के लिए फसल देते हैं, और अंत में, फॉलऑफ लागू करते हैं।


मुझे नहीं लगता कि इससे उत्तरों में कुछ नया जुड़ता है। यह सिर्फ नेवेंडर के जवाब के कुछ हिस्सों की तरह दिखता है।
होलीब्लैककैट

@HolyBlackCat कुछ महत्वपूर्ण अंतर हैं। सबसे पहले सही जटिलता समीकरण है, और दूसरा, यह बहुत अधिक संक्षिप्त है, जबकि अभी भी यह समझा रहा है कि वास्तव में इसे कैसे लागू किया जाए।
नरकोल 11

there's the correct complexity equationसच। लेकिन मैं कहूंगा कि यह एक मामूली विवरण है। आप सुझाव दे सकते हैं कि अन्य उत्तर के लिए एक संपादन के रूप में, या उस बारे में एक टिप्पणी छोड़ दें जब आपके पास पर्याप्त प्रतिष्ठा हो। इसकी वजह से नया जवाब देना थोड़ा कठिन है। it's much more conciseव्यक्तिगत रूप से मुझे नहीं लगता कि यह अच्छा है। एक उत्तर में जितना अधिक उपयोगी विवरण है, उतना ही बेहतर है, है ना?
होलीब्लैकैट

1
@HolyBlackCat एक बिंदु के लिए, हाँ। व्यक्तिगत रूप से, मुझे केवल एक साधारण प्रश्न का उत्तर देने के लिए पाठ की दीवार से गुजरना पसंद नहीं है।
नरकंकाल ११
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.