क्या मुझे बनावट का उपयोग 2 की शक्ति के आकार का नहीं करना चाहिए?


40

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

चूंकि ओपनजीएल 2.0 (और इससे पहले, एक विस्तार के माध्यम से) गैर-शक्ति-दो बनावट आयामों का समर्थन किया गया है।

क्या पावर-ऑफ-टू टेक्सचर के आधुनिक एकीकृत और असतत GPU पर प्रदर्शन लाभ हैं? गैर-शक्ति-के-दो बनावट के क्या फायदे हैं?

क्या एक महत्वपूर्ण डेस्कटॉप आबादी के पास गैर-शक्ति-दो बनावटों का समर्थन करने वाले कार्ड हैं?


इसी तरह के प्रश्न के लिए इस उत्कृष्ट उत्तर को देखें: iPhone पर बनावट के लिए छवियों को पावर-ऑफ-टू आयाम होने की आवश्यकता क्यों है?
19

जवाबों:


15

क्या आधुनिक एकीकृत और असतत GPU पर दो-दो बनावटों से चिपके रहने के लिए प्रदर्शन लाभ हैं?

अधिकांश आधुनिक जीपीयू दो (एनपीओटी) बनावट की गैर-शक्ति का समर्थन करते हैं और उन्हें अच्छी तरह से संभालते हैं। प्रदर्शन ड्रॉप काफी कम है। लेकिन विचार करने के लिए कुछ समस्याएं हैं:

  • एनपीओटी बनावट का उपयोग करते समय यह रैम में अधिक स्थान लेता है, ठीक अगले आकार के पॉट बनावट की तरह। तकनीकी रूप से आप केवल उस जगह को बर्बाद करते हैं जिसका उपयोग वहां कुछ करने के लिए किया जा सकता है;

  • एनपीओटी बनावट को अगले आकार के पॉट की तुलना में काफी धीमी गति से खोला जा सकता है (ओपनजीएल 2.1 में मेरे पास 30% प्रदर्शन ड्रॉप था);

  • पुराने जीपीयू और ऑन-बोर्ड / ऑन-चिप जीपीयू इतने उन्नत नहीं हैं, वे अक्सर एनपीओटी बनावट का समर्थन करते हैं, लेकिन समर्थन काफी धीमा और अनाड़ी है;

  • पुराने जीपीयू भी एनपीओटी बनावट को स्वीकार / प्रदर्शित करने से मना कर सकते हैं;

  • एमआइपी-मैप प्रक्षेप के कारण कलाकृतियां हो सकती हैं, आपकी 25x25 बनावट में एक काले फ्रिंज हो सकते हैं जहां इसे 32x32 आकार में सामान करने के लिए पिक्सेल जोड़े गए थे।

PS मुझे मोबाइल उपकरणों के बारे में निश्चित रूप से पता नहीं है, पॉट बनावट के संबंध में और भी अधिक प्रतिबंध हो सकते हैं।

गैर-शक्ति-के-दो बनावट के क्या फायदे हैं, यदि कोई हो?

जहां तक ​​मुझे पता है कि केवल 2 फायदे हैं:

  • अगर वे पैक नहीं किए जाते हैं तो वे एचडीडी पर कम जगह लेते हैं (जब पैक किए गए खाली क्षेत्र बहुत कम जोड़ देते हैं)
  • आप एनपीओटी -> पॉट कनवर्टर लिखने पर समय बचा सकते हैं। आपको रिलीज़ संस्करण के लिए एक की आवश्यकता होगी, लेकिन डिज़ाइनिंग और प्रोटोटाइप / मॉडल के लिए NPOT बनावट का उपयोग करना ठीक है

क्या डेस्कटॉप उपयोगकर्ताओं की बड़ी आबादी है जिनके पास ऐसे कार्ड नहीं हैं जो गैर-शक्ति-दो बनावट का समर्थन करते हैं?

जहाँ तक मुझे पता है और पीसी पर परीक्षण किया गया है - हाँ। इसमें स्पीड-ड्रॉप / माइनर बग्स GPU के प्रमुख प्रतिशत और कार्ड के मामूली प्रतिशत शामिल हैं जो NPOT को बिल्कुल भी नहीं संभालेंगे।


6

नॉन-पॉवर ऑफ़-टू टेक्सचर का एक सामान्य उपयोग 'स्क्रीन-साइज़' या 'हाफ़-स्क्रीन-साइज़' (और इसी तरह) टारगेट टेक्सचर को पोस्टप्रोसेसिंग इफेक्ट्स के लिए इस्तेमाल किया जाता है।

इन मामलों में, mipmaps की आवश्यकता नहीं होती है, बफर हमेशा असम्पीडित होता है, इसलिए विषम बनावट आकार यहां कम समस्याएं पैदा करते हैं


4

पुराने हार्डवेयर पर NPOT बनावट के लिए सीमाएँ थीं। जैसा कि इस ओपनजीएल विकी पर उल्लेख किया गया है , कुछ पुराने हार्डवेयर में एनपीओटी की आवश्यकता होती है, जिसमें मिमैप्स नहीं होते हैं, संकुचित बनावट के लिए 4x4 पिक्सल के संरेखण की आवश्यकता होती है, लेकिन नए हार्डवेयर को इसे पूरी तरह से संभालना चाहिए।

मेरे अनुभव में, कुछ अपेक्षाकृत नए हार्डवेयर भी प्रमुख प्रदर्शन का अनुभव करते हैं यदि आप POT के बजाय NPOT बनावट का उपयोग करते हैं। मुझे नहीं पता कि मुद्दा क्या है; यह संभव है कि रेंडर राज्यों के कुछ संयोजन में, रेंडरिंग वास्तव में सॉफ्टवेयर में किया जाता है। इसलिए, जब तक आपके पास अच्छे कारण नहीं हैं, मैं अनुशंसा करूंगा कि अभी भी जितना संभव हो सके पोट्स का उपयोग करने की कोशिश की जाए।

पोट्स के बजाय एनपीओटी का उपयोग क्यों करें - यदि आपके पास ऐसी छवियां हैं जो एनपीओटी आयामों की हैं, तो उदाहरण के लिए 1600x1200 कहें, 2048x2048 पिक्सेल सतह का उपयोग करने से बहुत सारी वीडियो मेमोरी बर्बाद हो जाएगी।


3
यदि आप बनावट स्वरूपों का उपयोग कर रहे हैं जो मेमोरी (PVR या DXT, उदाहरण के लिए) में संपीड़ित हैं, तो दो की अगली शक्ति तक स्केलिंग एक असम्पीडित, लेकिन छोटे, NPOT बनावट की तुलना में काफी कम बनावट स्मृति का उपयोग करने वाली है।
टेट्राद

3
आपका शब्द थोड़ा अस्पष्ट है, इसलिए खेद है कि अगर आप जो कहना चाह रहे हैं, उसके साथ यह बेमानी है - संपीड़ित बनावट को अभी भी 4 के गुणकों में पिक्सेल आकार की आवश्यकता है, यहां तक ​​कि एनपीओटी बनावट का समर्थन करने वाले आधुनिक हार्डवेयर पर भी।

1
मैं उम्मीद करूंगा कि जब आप अपलोड करेंगे तो हार्डवेयर में टेस्टिंग / स्विज़िंग टेक्सचर को चालू करेगा। यह हार्डवेयर के लिए अधिक इष्टतम तक पहुँचने के लिए बनावट के लेआउट को बदलता है। कंसोल (मैं इसमें एक्सएनए शामिल नहीं हूं) आपको मैन्युअल रूप से इस लेआउट ऑप्टिमाइज़ेशन को अपने टूल चेन में करने की आवश्यकता है, मुझे पूरा यकीन है कि ये POW2 पर काम करते हैं।
रोजर पर्किन्स

-1

2 बनावट की शक्ति किसी भी प्रकार के GPU के लिए 30% के बारे में प्रदर्शन को बढ़ाती है न केवल पुराने GPU (30% तेजी से एक उच्च अंत GPU और एक औसत के बीच का अंतर है) वे 30% अधिक राम लेते हैं, लेकिन कम विक्रम की आवश्यकता होती है जो वे गुणवत्ता में वृद्धि करते हैं विशिष्ट दूरी के लिए उचित बनावट आकार प्रदान करना यह बनावट के लिए एंटी-अलियासिंग की तरह काम करता है डार्क लाइन विरूपण साक्ष्य को गेम इंजन द्वारा नियंत्रित किया जाना चाहिए और एएए इंजन उन्हें ठीक से संभालते हैं


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

क्षमा करें, मैंने इस प्रश्न को गलत समझा, 2 की शक्ति से आप 2048, 1024, 512 तक सीमित हैं, शायद यही मुख्य कारण है
yusef ghatavi

2 की गैर शक्ति भी बनावट के लिए उपयोगी होती है, जिसमें पहले व्यक्ति के चरित्र के लिए gui textures और बनावट जैसे mipmaps की आवश्यकता नहीं होती है जो हमेशा कैमरे के करीब होता है
yusef ghatavi

-3

मेरी प्रोग्रामर आर्ट केवल सही आकार की है।

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


6
आमतौर पर एक पॉलीगॉन, न कि बनावट, ऑन-स्क्रीन। बहुविवाह जो भी यूवी आवश्यक हैं उन्हें दिया जा सकता है - उन्हें 0 से 1 तक जाने की आवश्यकता नहीं है; यदि आपकी बनावट केवल 30 चौड़ी है, तो 0.9375 पर जाना ठीक है (जो एक और कारण है कि पॉट टेक्सचर अच्छे हैं - यूवी बिल्कुल प्रतिनिधित्व करने योग्य हैं)।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.