इष्टतम बनावट आकार क्या है?


13

मैंने हाल ही में अपनी परियोजना में एक बनावट पैकर जोड़ा है जो एक निश्चित मात्रा में बनावट को एक ही बार में पैक करेगा, जैसे:

पैक्ड बनावट

तो उदाहरण के लिए यह एक आकार में 582x1023 पिक्सेल है। इन पैक्ड टेक्सचर को जोड़ने का लक्ष्य स्पष्ट रूप से प्रदर्शन में सुधार करना था, इसलिए मैं ओपनजीएल (LWJGL का उपयोग करके) बनावट के लिए इष्टतम बनावट आकार देखना चाहता था। बातें मैंने पाया थे एक व्यापक रूप से समर्थित अधिकतम बनावट आकार के अनुसार, 1024x1024 प्रतीत हो रहा है कि इस उदाहरण के लिए। यह मुझे अजीब लगता है क्योंकि जाहिर है कि बहुत सारे बनावट अकेले इससे बड़े होंगे, इसलिए उन लोगों के साथ क्या होता है? मुझे पूरा यकीन है कि अधिकांश ग्राफिक्स कार्ड बनावट से बड़ा है। क्या मैं अधिकतर ग्राफिक्स कार्डों की अपेक्षा कर सकता हूँ जैसे 4096x4096 बनावट (या शायद उससे भी बड़ा) को संभालने के लिए?

मेरे दूसरे बिंदु पर आने के लिए (मुझे उम्मीद है कि यह अभी भी एक प्रश्न के रूप में गिना जाता है, लेकिन यह अनिवार्य रूप से एक ही मुद्दे पर उबलता है): क्या बनावट 2 की शक्ति (256x256, 512x512, 1024x1024, 204822048, ..) के आकार की होनी चाहिए और होनी चाहिए। मैं 2 की अगली शक्ति की तुलना में छोटे बनावट वाले पैड पैक करता हूं? 2011 से इस प्रश्न के अनुसार यह एक आवश्यकता नहीं है, लेकिन प्रदर्शन में सुधार कर सकता है और मामूली कीड़े से बच सकता है और 2012 से यह कहता है कि आपको निश्चित रूप से पैड बनावट चाहिए। इसलिए मुझे पता है कि ये सवाल पहले भी पूछे जा चुके हैं, लेकिन वे यथोचित तारीखों के लिए बदल दिए गए हैं और आगे वे प्रत्येक प्रश्न का आंशिक रूप से उत्तर देते हैं। अन्य परियोजनाएं / इसे कैसे संभालती हैं?

टीएल; डीआर: मैं कौन से बनावट आकार की अपेक्षा कर सकता हूं कि अधिकांश ग्राफिक्स कार्ड को संभाल सकें? इष्टतम बनावट आकार (या वहाँ हैं) क्या हैं? क्या मुझे 2 की अगली शक्ति पर बनावट को पैड करना चाहिए?


4
GPU केवल 2 की शक्तियों में संबंधित है। यदि आप अपने बनावट को मैन्युअल रूप से पैड नहीं करते हैं, तो GPU (या आपकी पसंद का गेम इंजन) आपके लिए ऐसा करता है, जिसके परिणामस्वरूप प्रति बनावट रनटाइम में थोड़ी देरी होती है, जो जोड़ सकती है। मैं अधिकतम / इष्टतम बनावट आकारों पर कोई मदद नहीं दे सकता, हालांकि।
केतुरा

@ketura आह मैं देख रहा हूँ, धन्यवाद। तो कहते हैं कि मुझे एक छवि मिली जो 513x10 है। क्या इसे 1024x1024 पर पैड करना और फिर इन सभी खाली पिक्सेल को स्थानांतरित करना या GPU को ऐसा करने देना होगा?
फ्लोटोटेमून 8

4
आप उस उच्च जाने की जरूरत नहीं होगी। 1024 x 16 काम करेगा; यह आवश्यक नहीं है कि प्रत्येक दिशा में केवल 2 की शक्ति हो। हालांकि उस मामले में मैं गंभीरता से विचार करूंगा कि क्या मैं पिक्सेल को नहीं छोड़ सकता और इसे 512x16 तक ले जा सकता हूं।
केतुरा

जवाबों:


6

मैं इसका जवाब देने के लिए एक छुरा लेने जा रहा हूं, हालांकि YMMV। अधिकांश कंप्यूटरों पर उपलब्ध वीडियो RAM (VRAM) क्या है, यह निर्धारित करने के लिए मैं स्टीम हार्डवेयर सर्वे ( http://store.steampowered.com/hwsurvey?platform=pc ) का उपयोग करता हूं । 2015-10-13 (आज) के परिणामों को देखते हुए, लगभग 85% लोगों के पास 1024 एमबी वीआरएएम है।

आपका प्रश्न बहुत व्यापक है, क्योंकि यह लक्ष्य हार्डवेयर (कंसोल, पीसी, हैंडहेल्ड, मोबाइल डिवाइसेस) को निर्दिष्ट नहीं करता है? मैं पीसी के बारे में बात करने जा रहा हूं और आप हार्डवेयर स्पेक्स के आधार पर अन्य प्लेटफार्मों के लिए एक्सट्रपलेशन कर सकते हैं।

32 बिट्स रंग + अल्फा प्रति पिक्सेल या 4 पिक्सेल प्रति पिक्सेल मानकर, 1 GB VRAM अधिकतम ~ 256 मिलियन पिक्सेल धारण कर सकता है। यह 1K बनावट द्वारा 256 1K के बराबर है। यह मानता है (गलत तरीके से) कि आप केवल अपने वीआरएएम में बनावट रखना चाहते हैं, जबकि अन्य चीजों की पूरी मेजबानी होगी (जैसे कि मेष डेटा, यदि आप 3 डी में काम कर रहे हैं) तो आपको इसके लिए जगह छोड़ने की आवश्यकता होगी। आप संभवतः बनावट के मानचित्रण के लिए कुछ और स्थान की अनुमति देना चाहते हैं, जो आमतौर पर सबसे अच्छा काम करता है यदि आपके बनावट दो की शक्तियां हैं।

आधुनिक कंसोल (एक्सबीओएक्स वन और पीएस 4) में 4-8 जीबी एकीकृत रैम है, अधिकांश हैंडहेल्ड और मोबाइल उपकरणों में 1 - 2 जीबी एकीकृत रैम है, इस पर प्रतिबंध के साथ कि आप वीआरएएम के रूप में कितना आवंटित कर सकते हैं।

मैं आमतौर पर 2K बनावट बनाता हूं ताकि यह अधिकांश पीसी पर काम करे, जिससे कम अंत वाले उपकरणों के लिए विकल्प कम हो सके। यदि आप एक 2D गेम लिख रहे हैं और उच्च रिज़ॉल्यूशन डिस्प्ले (4K, रेटिना iPad, आदि) को लक्षित करना चाहते हैं, तो आप बैकग्राउंड के लिए 4K टेक्सचर का उपयोग कर सकते हैं, लेकिन अधिकांश अन्य भागों के लिए, यह ओवरकिल हो सकता है।

उम्मीद है कि यह मदद की और पानी कीचड़ नहीं था।


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

1
लगता है जैसे मेरा जवाब हाजिर था। अन्य साइट फ़ोरम पोस्ट की जाँच करना 2k बनावट है जिसे आपको अपने गेम के लिए अधिकांश उपकरणों पर काम करना चाहिए। बनावट आकार की सीमा विशिष्ट हार्डवेयर और विशेष रूप से ओपन-ईएस संस्करण पर निर्भर करती है। मुझे यकीन नहीं है कि विशिष्ट त्रुटि संदेश क्या होगा, लेकिन यह OpenGL-ES से आएगा जब आप बनावट को लोड करने का प्रयास करेंगे। उपयोगी लिंक: answers.unity3d.com/questions/563094/... , forum.unity3d.com/threads/texture-sizes-and-videocards.281422 और feedback.wildfiregames.com/report/opengl/feature/...
विजय Varadan

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