सभी आर्टिकल
ट्यूटोरियल · 7 min read

एनवायरनमेंट आर्ट के लिए परफ़ॉर्मेंस बजट: सुंदरता से पहले संख्याएँ

एनवायरनमेंट दृश्यों के लिए परफ़ॉर्मेंस बजट कैसे तय करें: प्रति-सिस्टम फ़्रेम-समय स्लाइस, draw call और मेमोरी की छतें, तीन-कैमरा मापन विधि, समीक्षा-लय, और जब कोई दृश्य बजट पार करे तो खींचने वाली लीवर का क्रम।

Illustration of a performance gauge above stacked millisecond budget bars

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

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

फ़्रेम-समय बजट करें, पॉलिगन नहीं

पॉलिगन बजट एक अवशेष है: आधुनिक GPU कच्चे त्रिभुजों से बहुत पहले draw call, overdraw, छाया और मेमोरी बैंडविड्थ पर दम तोड़ देते हैं। जो आप वास्तव में मापते हैं उसे बजट करें: प्रति सिस्टम, प्रति दृश्य मिलीसेकंड।

एक 60 fps गेम के पास प्रति फ़्रेम 16.6 ms होते हैं; 30 fps पर 33.3 ms। वही पूरा बजट है, सबमें बँटा: गेमप्ले, भौतिकी, AI, VFX, UI और एनवायरनमेंट। एनवायरनमेंट की स्लाइस रेंडरिंग और गेमप्ले के साथ एक बातचीत है, पर यह एक संख्या होनी चाहिए, तय और लिखी हुई, वरना यह हर चर्चा कि कोई दृश्य "बहुत महँगा" है या नहीं, रुचि और वरिष्ठता में ढह जाती है। फ़्रेम-समय के साथ, उन मात्राओं को छतें दें जो उसे बाँधती हैं:

  • प्रति दृश्य draw call (GPU के भरने से बहुत पहले CPU को बाँधते हैं),
  • प्रति स्ट्रीमिंग-ज़ोन टेक्सचर और मेश मेमोरी (वह संख्या जो तय करती है कि आप स्ट्रीम करते हैं या हकलाते हैं),
  • दृश्य में छाया डालती लाइटें,
  • overdraw हॉटस्पॉट: वनस्पति और VFX हमेशा के संदिग्ध।

सटीक छतें प्लेटफ़ॉर्म और इंजन पर निर्भर हैं; छतें होने का अनुशासन ही वह है जो हर प्रोजेक्ट में स्थानांतरित होता है जिसे आप कभी शिप करेंगे। एक संख्या जिसमें आप ग़लत हो सकते हैं, उस एहसास को हराती है जिस पर आप केवल बहस कर सकते हैं।

फ़्रेम को पाई की तरह, मिलीसेकंड में बाँटें

हर विभाग को एक स्लाइस दें (गेमप्ले, VFX, UI, एनवायरनमेंट) फिर एनवायरनमेंट स्लाइस को फिर बाँटें: भूभाग, वनस्पति, प्रॉप, पानी। "क्या यह जंगल बहुत महँगा है?" एक वस्तुनिष्ठ प्रश्न बन जाता है।

एक 60 fps शीर्षक के लिए एक व्यावहारिक प्रारंभिक बँटवारा, प्रति प्रोजेक्ट पुनः बातचीत योग्य: एनवायरनमेंट कुल 6–8 ms, जिसमें भूभाग ~1.5, वनस्पति ~2–2.5, प्रॉप और संरचनाएँ ~1.5, पानी और वातावरण ~1। बात इन सटीक संख्याओं की नहीं है: बात यह है कि जब जंगल 2.5 ms स्लाइस के मुक़ाबले 4 ms मापता है, तो बातचीत "किसकी ग़लती है" के बजाय "हम कौन-सी लीवर खींचें" बन जाती है।

स्लाइस अति-ऑप्टिमाइज़ेशन से भी बचाते हैं, जो एक असली और महँगी विफलता है। अपनी स्लाइस से काफ़ी नीचे बैठा सिस्टम गुंजाइश को गुणवत्ता पर ख़र्च करने का निमंत्रण है, बचाने की ट्रॉफ़ी नहीं। बिना स्लाइस वाली टीमें जो भी सबसे तेज़ आवाज़ वाले इंजीनियर ने देखा उसे ऑप्टिमाइज़ करती हैं, जो शायद ही असली अड़चन होता है: पाई चार्ट बताता है कि मिलीसेकंड सचमुच कहाँ गए।

तीन स्थिर कैमरों पर मापें

औसत नहीं, सबसे ख़राब यथार्थवादी दृश्य के लिए बजट करें: प्रति नक़्शा तीन स्थिर "बजट कैमरे" चुनें (सबसे ख़राब विस्टा, सबसे घना युद्ध-स्थान, सबसे व्यस्त भीतरी हिस्सा) और ठीक वहीं मापें, हर बार।

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

कैमरा स्थितियों को नक़्शे में सहेजें ताकि कोई भी उस सटीक शॉट को पुनरुत्पन्न कर सके। "किसी कोण पर मेरी मशीन पर ठीक चलता है" डेटा नहीं है; "बजट कैमरा 2 न्यूनतम स्पेक पर 9.2 ms मापता है, पिछले हफ़्ते के 7.8 से ऊपर" संदिग्ध सहित एक बग रिपोर्ट है।

बजट को वहाँ दिखाएँ जहाँ काम होता है

विकी में पड़ा बजट मुर्दा है: यह ड्रेसिंग के दौरान स्टैट ओवरले के रूप में, कंटेंट मर्ज से पहले छतों के मुक़ाबले एक जाँच के रूप में, और जब कोई बेक इंस्टेंस-गिनती पार करने वाला हो तो चेतावनियों के रूप में जीता है।

जब प्रतिक्रिया तत्काल हो तो कलाकार ख़ुशी से बजट पूरा करते हैं, और तब बिफरते हैं जब वे काम शिप होने के तीन महीने बाद एक बग टिकट के रूप में आते हैं। यहाँ औज़ार-पक्ष एक शांत पर निर्णायक तरीक़े से मायने रखता है: जब scatter और ब्लेंडिंग इंजन-नेटिव प्रिमिटिव में बेक करते हैं (Numivo की तरह सादे इंस्टेंस मेश और foliage) तो आपका मौजूदा प्रोफ़ाइलर उनके बारे में बिना मेकअप का सच बोलता है, बिना किसी प्लगइन रनटाइम के संख्याओं को धुँधलाए, और हर मानक लीवर (कल दूरियाँ, LOD, इंस्टेंस गिनती) अपरिवर्तित लागू होती है। एक बजट जिसे आप केवल एक ब्लैक बॉक्स के ज़रिए माप सकते हैं, वह बजट है जिस पर आप चुपचाप भरोसा करना बंद कर देंगे।

वह समीक्षा-लय जो टिकती है

तीन बजट कैमरों की साप्ताहिक कैप्चर (पाँच मिनट), कंटेंट मर्ज पर एक स्वचालित छत-जाँच, और ख़ुद छतों की मासिक समीक्षा: बजट अनुमान हैं, और ईमानदार संशोधन मौन उल्लंघन को हराता है।

  • साप्ताहिक: स्टैट चालू करके तीन कैमरों का स्क्रीनशॉट लें; फ़्रेम-समय और मेमोरी को एक साझा शीट में लॉग करें। रुझान एक महीने में उभरते हैं, और एक स्पाइक किसी विशेष सप्ताह के काम की ओर इशारा करता है।
  • मर्ज पर: एक स्वचालित जाँच दृश्य को छतों से तुलती है। लाल संख्याएँ एक बातचीत खोलती हैं, बिल्ड-ब्रेक नहीं: लक्ष्य जागरूकता है, नौकरशाही नहीं, और एक कठोर रोक लोगों को जाँच को धोखा देना सिखाती है।
  • मासिक: ख़ुद स्लाइस पर दुबारा जाएँ। प्रोजेक्ट के बीच की हक़ीक़त हमेशा प्री-प्रोडक्शन अनुमानों से भिन्न होती है; बजट को खुलकर समायोजित करना उसे विश्वसनीय रखता है। एक बजट जिसे सब चुपचाप अनदेखा करते हैं किसी न होने से बुरा है, क्योंकि यह टीम को सिखाता है कि छतें नाटक हैं।

जब संख्याएँ लाल हों

लागत-प्रभावशीलता के क्रम में लीवर खींचें: पहले कल दूरियाँ और छाया सेटिंग (मिनट, विशाल जीत), फिर LOD और impostor, फिर इंस्टेंस गिनती, और सबसे आख़िर में ही ख़ुद आर्ट।

एक इमारत के उघड़े कंक्रीट ढाँचे वाली तोड़फोड़ स्थल ऑप्टिमाइज़ेशन ट्रायाज है, तोड़फोड़ नहीं। आर्ट को आख़िर में गिराएँ: अधिकांश बजट-पार विस्टा अदृश्य सेटिंग-बदलावों से हरे लौट आते हैं, उससे बहुत पहले जब आपको ऐसा कुछ हटाना पड़े जिसे खिलाड़ी देख सके।

महँगी ग़लती सीधे "आधे पेड़ हटा दो" पर कूदना है। घनत्व सबसे दृश्य लीवर है और आमतौर पर सबसे सस्ता नहीं: 2 ms बजट-पार विस्टा आमतौर पर केवल छाया-दूरी और कल-दूरी की ट्यूनिंग से हरा लौट आता है, दोनों खिलाड़ियों को अदृश्य। कंटेंट हटाना अंतिम उपाय है ठीक इसलिए क्योंकि यह एकमात्र लीवर है जिसे खिलाड़ी देख सकते हैं; सीढ़ी पर उसके ऊपर की हर पायदान आर्ट के नज़रिए से मुफ़्त है। सीढ़ी नीचे उतरें और आप मिलीसेकंड वापस पाते हुए लुक बचाते हैं; नीचे से ऊपर चढ़ें और आप मुफ़्त जीतें आज़माने से पहले गेम को बदसूरत बना देते हैं।

चुराने लायक़ मैदानी आँकड़े

  • 60 fps पर फ़्रेम: 16.6 ms: एनवायरनमेंट आमतौर पर 6–8 ms बातचीत करते हैं
  • एक व्यावहारिक एनवायरनमेंट उप-बँटवारा: भूभाग 1.5 / वनस्पति 2–2.5 / प्रॉप 1.5 / पानी और वातावरण 1 (ms)
  • प्रति नक़्शा बजट कैमरे: 3 (विस्टा, युद्ध, भीतरी) नक़्शे में सहेजे
  • साप्ताहिक मापन लागत: ~5 मिनट; मूल्य: बहस के बजाय रुझान-रेखाएँ
  • लाल होने पर लीवर क्रम: कलिंग → छाया → LOD → इंस्टेंस → आर्ट

मिनी-FAQ

एनवायरनमेंट बजट का मालिक कौन है? एक नामित व्यक्ति (आमतौर पर एक टेक आर्टिस्ट) मापन का मालिक है; छतें रेंडरिंग के साथ संयुक्त रूप से स्वामित्व में हैं। बिना मालिक वाले बजट एक महीने में लोककथा में क्षय हो जाते हैं, क्योंकि "सब ज़िम्मेदार हैं" का अर्थ है कोई नहीं मापता।

गतिशील दिन-समय के साथ बजट कैसे काम करते हैं? हर कैमरे पर सबसे सुंदर नहीं, सबसे ख़राब प्रकाश-स्थिति मापें। लंबी तिरछी छायाओं वाला भोर अक्सर दोपहर की दुगनी लागत का होता है; जो बजट केवल दोपहर में थामता है वह आधा बजट है, और खिलाड़ी महँगा घंटा ढूँढ लेंगे।

क्या मुझे एक छोटे इंडी प्रोजेक्ट के लिए यह सब चाहिए? इसे छोटा करें, हटाएँ नहीं। एक बजट कैमरा, एक छत (आपकी न्यूनतम-स्पेक मशीन पर फ़्रेम-समय), साप्ताहिक जाँची गई। पाँच मिनट की आदत ही आख़िरी महीना बचाती है: टीम आकार चाहे जो हो, विफलता-मोड एक जैसा है: लागत को तब खोजना जब उसे ठीक करना महँगा हो।

मेमोरी बनाम फ़्रेम-समय का क्या? ये भिन्न विफलता-मोड वाले भिन्न बजट हैं: फ़्रेम-समय आपके FPS को गिराता है, मेमोरी आपकी स्ट्रीमिंग को हकलाहट या क्रैश में गिराती है। दोनों बजट करें; कंसोल पर मेमोरी अक्सर कठिन छत होती है, और वही सर्टिफ़िकेशन में फ़ेल करती है, न कि केवल बुरा महसूस कराती है।

बजट कलात्मकता पर एक सीमा नहीं है: यह वह कारण है कि सुंदर दृश्य उस हार्डवेयर पर 60 fps पर भी सुंदर दिखता है जो खिलाड़ी सचमुच रखते हैं। जो टीमें परफ़ॉर्मेंस को एक साझा डिज़ाइन-बाधा मानती हैं वे उन टीमों से अधिक सुंदर गेम शिप करती हैं जो उसे एक अंतिम बॉस मानती हैं।