आगे और आस्थगित प्रतिपादन के बीच प्रदर्शन व्यापार क्या है?


9

फॉरवर्ड रेंडरिंग इनपुट ज्यामिति और प्रकाश जानकारी से सीधे सतह के टुकड़े के लिए एक चमक मूल्य की गणना करने की प्रक्रिया है। डिफर्ड रेंडर विभाजन उस प्रक्रिया को दो चरणों में विभाजित करता है: पहले एक स्क्रीन-स्पेस बफर जिसमें भौतिक गुणों (एक ज्यामिति बफर, या जी-बफर) का निर्माण होता है, इनपुट ज्यामिति को rasterizing द्वारा निर्मित किया जाता है, और दूसरा G- के संयोजन से प्रत्येक पिक्सेल के लिए एक चमक मान उत्पन्न करता है। प्रकाश की जानकारी के साथ बफर।

आस्थगित प्रतिपादन को अक्सर आगे प्रतिपादन के अनुकूलन के रूप में प्रस्तुत किया जाता है। एक व्याख्या यह है कि प्रकाश व्यवस्था काफी महंगी है और यदि आपके पास कोई अतिवृष्टि है तो आप ऐसे पिक्सेल प्रकाश कर रहे हैं जो कभी स्क्रीन पर दिखाई नहीं देंगे, जबकि यदि आप भौतिक गुणों को जी-बफर और बाद में प्रकाश में संग्रहित करते हैं, तो आप केवल एक पिक्सेल प्रकाश कर रहे हैं जो होगा वास्तव में स्क्रीन पर दिखाई देते हैं। यह वास्तव में आस्थगित का एक लाभ यह है कि आप भी एक गहराई पूर्व पास करना और फिर गहराई परीक्षण सेट के साथ एक आगे प्रतिपादन पास कर सकते हैं दिया जाता है, D3D11_COMPARISON_EQUALया GL_EQUALया समकक्ष?

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

क्या आगे और स्थगित प्रतिपादन के बीच निर्णय लेने पर अन्य व्यावहारिक प्रदर्शन विचार हैं? (यह मान लें कि यदि आवश्यक हो तो हम प्रत्येक तकनीक के बदलावों का उपयोग कर सकते हैं: अर्थात हम टाइलों के आगे टाइलों की तुलना में अलग-अलग तुलना कर सकते हैं।)

जवाबों:


11

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

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.