एक 3 डी शीर्षक में स्तर सामग्री के लिए सामग्री बजट (जैसे बहुभुज गणना) स्थापित करने का एक प्राप्त करने का तरीका क्या है?


13

जवाब देने में swquinn के लिए इस सवाल का जवाब है एक और अधिक प्रासंगिक सवाल यह है कि मैं के लिए जवाब सुनना चाहते हैं उठाया। मैं अपनी खुद की रणनीति (वादा करता हूं कि मैं इसे उत्तर के रूप में स्वीकार नहीं करूंगा) पोस्ट करूंगा, लेकिन मैं दूसरों को सुनना चाहूंगा।

विशेष रूप से: आप अपनी सामग्री टीम के लिए एक समझदार बजट निर्धारित करने के बारे में कैसे जानते हैं। आमतौर पर एक विकास में पूछे गए सबसे पहले प्रश्नों में से एक है: हमारा बहुभुज बजट क्या है? बेशक, इन दिनों यह दुर्लभ है कि अकेले शीर्ष / पॉली काउंट सीमित कारक है, बजाय छाया जटिलता, भराव दर, प्रकाश जटिलता, सभी खेलने में आते हैं।

कंटेंट टीम क्या चाहती है, इस तरह से काम करने के लिए कुछ कठिन नंबर / सीमाएँ हैं, जिससे उन्हें एक उचित उम्मीद होती है कि उनका कंटेंट, एक बार जब वह वास्तव में इंजन में आ जाएगा, तो वह बहुत भारी नहीं होगा। यह देखते हुए कि 'यह निर्भर करता है' एक विशेष रूप से उपयोगी उत्तर नहीं है, मैं एक ऐसी रणनीति सुनना चाहता हूं जो मुझे एक) भ्रामक, या ख) गलत होने के बिना उन्हें व्यावहारिक सीमा देने की अनुमति देती है।


1
यह एक "उत्पादन" चीज़ से अधिक "पूर्व-उत्पादन" है।
पैट्रिक ह्यूजेस

जवाबों:


5

मेरी समझ से एक मॉडल की जटिलता को कम करने के लिए इसकी तुलना में बहुत आसान है कि यह एक मॉडल के लिए विस्तार को जोड़ना है जिसे चमड़ी और कठोर किया गया है। मुझे पता है कि कुछ कंपनियां बहुत विस्तृत संपत्ति जमा करके और स्थिति के आधार पर उन्हें कम करके इसका फायदा उठाती हैं।

वाल्व अपने एनपीसी के साथ ऐसा करता है। NPC को किसी भी प्रकार के मानचित्रण के बिना अत्यधिक विस्तार से मॉडलिंग की जाती है और फिर वर्तमान तकनीक द्वारा स्वीकार्य स्तर तक विस्तार को स्केल किया जाता है और विस्तृत मॉडल (या यहां तक ​​कि स्वचालित रूप से निर्मित) के आधार पर लागू विभिन्न मैपिंग तकनीकों जैसे ट्रिक्स।

यह भविष्य के प्रूफिंग के साथ भी मदद करता है क्योंकि आपको परिसंपत्तियों को फिर से बनाने की आवश्यकता नहीं होगी, केवल प्रत्येक नए प्रोजेक्ट के लिए उन्हें ट्विक करें। इसका यह भी फायदा है कि बेंचमार्किंग करने के लिए किसी टीम का इंतजार करने की जरूरत नहीं है, जो कि एसेट्स के विकसित होने से पहले संदर्भ के लिए विशिष्ट है। कलाकार 1 दिन से पूरी तरह से शामिल हो सकते हैं।


2
हालांकि यह वास्तव में एक बजट प्रदान नहीं कर रहा है: "इसे जितना आवश्यक हो उतना जटिल बनाएं और फिर हम इसे बाद में स्केल करेंगे" एक उत्पादन रणनीति है। : - /
MrCranky

16

ठीक है, इसलिए हमारी रणनीति है:

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

अंत में: अपने नंबरों के साथ रूढ़िवादी बनें। रेंडरिंग केवल एक चीज नहीं है जिसे आपके खेल को करना होगा, इसलिए एक तय करें कि आपके फ्रेम का कौन सा अनुपात आप रेंडरिंग खर्च करना चाहते हैं, और इसे अपना लक्ष्य बनाएं। उदाहरण के लिए, यदि आप अपने फ्रेम के दो तिहाई 30fps रेंडरिंग में खर्च करना चाहते हैं, तो अपने परीक्षणों में 1s / 22ms (45 एफपीएस) को लक्षित करें।

उस सभी में से, आपको उदाहरण दृश्य देने में सक्षम होना चाहिए। उदाहरण के लिए यहां 200K पॉलीगॉन, 5 स्टैटिक लाइट्स और प्रति मॉडल 3 से अधिक डायनामिक लाइट्स नहीं हैं, जिसमें 50K पॉलिस और 30 हड्डियों के 15 अक्षर हैं, और यह 60fps पर चलती है और 30MB मेमोरी में रहती है।


2
tl; dr: बेंचमार्क इसे खुद;)
निकोल बोलस

+1 यह वास्तव में एकमात्र तरीका है, निर्माण और माप।
पैट्रिक ह्यूजेस

वास्तव में? मैं उम्मीद कर रहा था कि वहाँ एक होशियार / सस्ता समाधान होगा जो हमने नहीं सोचा था।
MrCranky

@Mrranky दुर्भाग्य से, हाँ। यदि आप एक मौजूदा इंजन का उपयोग कर रहे हैं, तो आप मौजूदा नमूना डेटा को मापकर प्रक्रिया शुरू कर सकते हैं और अपने बेसलाइन के रूप में विशेष रूप से अपने खेल के लिए संख्याओं को अनुकूलित करने के लिए - प्रत्येक गेम अलग है।
पैट्रिक ह्यूजेस

4

वर्टेक्स काउंट

मैंने 15 वर्षों के लिए "बहुभुज गणना" पर शोध किया है। यह बताने का कोई सख्त तरीका नहीं है कि आपकी सीमा कितनी है, खासकर अधिक आधुनिक सॉफ्टवेयर और हार्डवेयर के साथ। इंजनों में सीमाएं बहुत अधिक उपयोगी थीं जो केवल पूरे स्तर के लिए 4,000 त्रिकोणों का समर्थन करती थीं। अब, आप पाएंगे कि खेल के वातावरण में अधिकांश वस्तुएं व्यक्तिगत रूप से बढ़ेंगी।

अंततः क्या मायने रखता है कि इंजन बहुभुज स्ट्रिप्स के साथ क्या कर रहा है।

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

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

एक गाइड के रूप में बहुभुज की गिनती लें, और ध्यान रखें कि आप कैसे मॉडल करते हैं, और यूवी जाल को मैप करें। मेष में कम विभाजन जब यूवी मैपिंग अक्सर अधिक फायदेमंद हो सकता है।

अगला, विचार करें कि सामान्य नक्शे के साथ क्या नकली हो सकता है। बहुत विस्तार के मामले के साथ एक फ्लैट चेहरा आमतौर पर सामान्य मैप किया जाता है। घटता केवल गोल होना चाहिए जहां आप एक सिल्हूट देख सकते हैं। जब सामने वाले घुमावदार चेहरे को देखते हैं, तो आपको अपने उच्च-रिज़ॉल्यूशन एसेट और गेम-रिज़ॉल्यूशन एसेट के बीच अंतर नहीं देखना चाहिए। सामान्य नक्शे में शामिल होने पर सिल्हूट आपके मॉडल में अंतर बनाता है। टिशूलेशन और विस्थापन मैपिंग का उपयोग करके सिल्हूट को अब डायरेक्टएक्स 11 के साथ संशोधित किया जा सकता है।

खेल का प्रारूप

अपना गेम डिजाइन करते समय निम्नलिखित पर विचार करें:

  1. खेल के प्रकार को परिभाषित करें (जैसे। एक्शन / एडवेंचर / रेसिंग / स्कोरर)
  2. देखने के प्रकार को परिभाषित करें (जैसे। पहला व्यक्ति / तीसरा व्यक्ति / ऑर्थोग्राफ़िक)
  3. अपने बाजार के लिए कम्प्यूटेशनल शक्ति को परिभाषित करें। (उदा। उत्साही / आकस्मिक गेमर)
  4. एक दृश्य शैली बनाएं जिसे आप प्राप्त करना चाहते हैं। क्या आप यह देखना चाहते हैं, उदाहरण के लिए, क्राइसिस 2, बॉर्डरलैंड्स, ब्लडफोर्ज या गियर्स ऑफ वॉर?
  5. खिलाड़ी के लिए महत्वपूर्ण वस्तुओं को परिभाषित करें। क्या आपका सहारा ध्यान केंद्रित करने या केवल पृष्ठभूमि बनने वाला है?
  6. क्या विज़ुअल मेश भी टकराव की जाली हैं?

खेल और दृश्य प्रकारों का उपयोग करके, यह तय करें कि दृश्य की गहराई क्या होगी। क्या आप दूर की वस्तुओं को देखने जा रहे हैं, और किस स्पष्टता के साथ? क्या आप सीमित दृश्य के साथ कुछ बना रहे हैं, जैसे कि गलियारा शूटर? (जैसे। युद्ध के गियर्स) क्या आप खुले परिदृश्य के साथ कुछ मुफ्त में घूम रहे हैं? (उदा। स्किरीम)

एक बार जब आप जानते हैं कि इसे कैसा दिखना चाहिए, तो आप उन खेलों पर शोध कर सकते हैं जो समान हैं।

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

मेरा उदाहरण

मैं UDK का उपयोग करता हूं, एक धीमी गति से पुस्तक बनाने वाला तीसरा व्यक्ति शूटर, सीमित संख्या में खिलाड़ियों और NPC के स्क्रीन पर किसी भी समय। इसके लिए, मैं प्रति खिलाड़ी लगभग 10,000 त्रिकोण, ठेठ, सामान्य दुश्मनों के लिए 5,000 त्रिकोण, और अगर मैं "बॉस" शैली का चरित्र बना रहा था, तो 15,000 के आसपास लक्ष्य कर रहा हूं। इसके अतिरिक्त, लगभग ४,००० त्रिकोण के तीसरे व्यक्ति के लिए हथियार अत्यधिक विस्तृत होंगे। लगभग 10,000 त्रिकोण वाहन। सब कुछ के लिए विस्तार के स्तर की आवश्यकता होगी, क्योंकि मुझे लंबी दूरी की दूरी की आवश्यकता है।

यदि पहले व्यक्ति बनाते हैं, तो मैं हथियारों को लगभग 2,000 त्रिकोणों पर, लगभग 5,000 त्रिकोणों पर हथियार, प्रत्येक के लिए सामान्य मानचित्रण के साथ आधार बनाऊंगा।

निष्कर्ष

यह वह है जो "यह निर्भर करता है" शायद इसका मतलब है, लेकिन मैंने सोचा कि यह कुछ ऐसी चीजों को स्पष्ट कर सकता है जिनके बारे में लोग अक्सर आश्चर्य करते हैं।

  1. गाइड के रूप में बहुभुज गिनती का उपयोग करें।
  2. उन क्षेत्रों को देखें जो मॉडलिंग के बजाय सामान्य मैप किए जा सकते हैं।
  3. त्रिकोण प्रशंसकों को रखते समय सावधान रहें, यदि संभव हो, तो एक पट्टी बनाएं।
  4. यूवी मैपिंग, स्ट्रिप्स को ध्यान में रखते हुए मेष पर कम विभाजन का उपयोग करें।

2

एक विधि जो मैं सोच सकता हूं वह सांख्यिकीय डेटा उत्पन्न करने के लिए स्वचालित रूप से निर्मित दृश्यों का उपयोग कर रहा है जिससे आप उस जानकारी को समझ सकते हैं जिसे आप खोज रहे हैं।

  1. बड़ी मात्रा में संपत्ति प्राप्त करें (संभवतः स्वचालित रूप से उत्पन्न की जा सकती है)।

  2. एसेट पूल का उपयोग करके आपके इंजन द्वारा लोड किए जा सकने वाले दृश्यों को उत्पन्न करने के लिए एक उपकरण बनाएं।

  3. एक बॉट चलाएं जो आपके कैमरे को दृश्य के चारों ओर ले जाएगा। आप रोशनी सहित दृश्य को और अधिक गतिशील बनाने के लिए कुछ अन्य बॉट्स चलाना चाह सकते हैं।

  4. अधिक से अधिक जानकारी एकत्र करें और इसे डेटाबेस में फेंक दें; एफपीएस, पॉली काउंट, शेडर परिवर्तन, रोशनी की संख्या, ड्रॉ कॉल आदि।

  5. अपने डेटाबेस में डेटा को अधिक से अधिक तरीकों से प्रदर्शित करने के लिए कुछ उपकरण बनाएं / प्राप्त करें।

यह लिंक कुछ और विचार प्रदान कर सकता है: डेड राइजिंग टूल


मुझे यह उत्तर पसंद है, क्योंकि यह हमारी अपनी रणनीति का सबसे महंगा हिस्सा है: किसी को प्रतिनिधि दृश्यों के निर्माण के लिए प्रयास करना होगा। एल्गोरिथ्म पीढ़ी, या स्क्रिप्ट को बड़ी संख्या में समझदार आकार की संपत्ति बनाने के लिए जल्दी से एक परीक्षण योग्य दृश्य के निर्माण में तेजी आएगी। मैं अधिक लोकप्रिय उत्तर को स्वीकार करने जा रहा हूं, लेकिन मुझे लगता है कि यह एक योग्य है।
MrCranky
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.