3 डी मॉडल का बजट। क्या अधिक संख्या में त्रिकोण या कोने मायने रखता है


12

जब मैं 3 डी गेम के लिए एक मॉडल बना रहा हूं तो मुझे अपने बजट पॉलीगन्स (त्रिकोण) या कोने में माप के रूप में क्या लेना चाहिए? मैंने 8 समुच्चय और 12 त्रिकोण के साथ दो सेट 40000 क्यूब्स के साथ एक प्रयोग किया है, दूसरा 24 कोने और 12 त्रिकोण के साथ। सभी एकता में किया गया था और उन दोनों को प्रक्रियात्मक रूप से उत्पन्न किया गया था। मेरे आश्चर्य के लिए, दोनों सेटों ने लगभग एक ही प्रदर्शन किया, उनके बीच बहुत कम अंतर था।

क्या इसका मतलब है कि मुझे कोने की गिनती के बारे में चिंता नहीं करनी चाहिए और केवल त्रिकोण गणना पर ध्यान देना चाहिए?

संपादित करें: मैंने एक और प्रयोग किया है मैंने 19602 त्रिभुज और 10000 कोने के साथ एक विमान बनाया है और दूसरा एक ही प्रकार का अमंगल है लेकिन 39204 कोने हैं। मैंने दोनों के 4000 उत्पन्न किए हैं। अब कम चक्करों ने 14 एफपीएस से 19 एफपीएस जीत लिया। इसलिए मुझे लगता है कि आम तौर पर कम बेहतर है, लेकिन केवल बड़े अंतर में।


9
अपने खेल को लिखें और मुद्दों को ठीक करें क्योंकि वे उत्पन्न होते हैं। मुद्दा इस तरह कभी नहीं आ सकता है और आप अपना समय बर्बाद कर रहे हैं: पी
Vaillancourt

जवाबों:


16

चलो एक बड़े ग्रिड जाल की कल्पना करते हैं, जैसे कि हम इलाके के लिए उपयोग कर सकते हैं। हम इसके nलायक त्रिकोणों को प्रस्तुत करेंगे , एक ही ड्रॉ कॉल में आधी हमारी 1080p स्क्रीन को कवर करते हुए।

यदि हम अपने सभी कोने का स्वागत करते हैं और इसमें कोई चिकनाई / बनावट नहीं होती है, तो प्रत्येक त्रिकोण में 3 कोने होते हैं और प्रत्येक शीर्ष पर 6 त्रिकोण होते हैं, इसलिए हमारे पास n/2कोने होते हैं।

इसे प्रस्तुत करने के लिए हमें निम्नलिखित की आवश्यकता है:

  • कम से कम n/2समय में वर्टेक्स शेडर चलाएं

    ("कम से कम" क्योंकि शीर्ष परिणामों के लिए हमारा कैश केवल इतना बड़ा है। कभी-कभी हम पहले से बदल चुके एक शीर्ष को समाप्त कर देंगे, फिर बाद के त्रिकोण के लिए इसे फिर से साझा करने की आवश्यकता है और इसे फिर से शीर्ष पर रखें। तो हम कागज पर जैसा दिखता है उतना बचत नहीं करते हैं)

  • क्लिप और पतले nत्रिकोण।

  • कम से कम 1920x1080 / 2 या फ्रेम बफर के बारे में 1 मिलियन पिक्सल से अधिक को व्यवस्थित करें और प्रक्षेपित करें (क्योंकि हमने कहा था कि हमारा इलाका लगभग आधी स्क्रीन को कवर करता है)।

    "कम से कम" जिस तरह से जीपीयू पिक्सल के क्वाड्स पर काम करते हैं, वैसे ही बहुभुज के किनारों के बाहर कुछ टुकड़े अभी भी सड़ गए हैं, लेकिन फिर नकाबपोश हैं, जिसका अर्थ है कि हम दो बार टुकड़ों को संसाधित करते हैं। एक ऊबड़ जाल के लिए हम जाल के साथ कहीं भी अतिव्यापी हो जाएंगे। खुद को हल करता है, अगर हम पहले से ही बहुभुज को गहराई से बफर में खींचने के लिए भाग्यशाली नहीं हैं)

  • उन सभी> = 1 मिलियन अंशों के लिए टुकड़े टुकड़े करें।

  • फ्रेम और गहराई बफ़र्स में ~ 1 मिलियन परिणाम ब्लेंड।

ठीक है, अब अपने सभी वर्टिकल को अनडाल कर दें ताकि अब हमारे पास पहले की तुलना में छह गुना अधिक3n रेंडर करने के लिए वर्टिकल हों ! हमारे कदम हैं ...

  • शीर्ष shader 3nबार चलाएँ ।

    (कैशिंग के कारण कोई भी तारांकन नहीं होता है क्योंकि हर वर्टेक्स का उपयोग केवल एक बार किया जाता है, हालांकि इसका अर्थ है कि कैश हमें किसी भी समय नहीं बचा सकता है)

  • क्लिप और पतले nत्रिकोण।

  • कम से कम 1920x1080 / 2 या फ़्रेम बफर के लगभग 1 मिलियन पिक्सेल पर रस्टराइज़ और इंटरपोल करें।

  • उन सभी> = 1 मिलियन अंशों के लिए टुकड़े टुकड़े करें।

  • फ्रेम और गहराई बफ़र्स में ~ 1 मिलियन परिणाम ब्लेंड।

... रुको, पहले वाले को छोड़कर हर कदम एक समान है! इसलिए अधिकांश कार्य जो GPU एक विशिष्ट ड्रॉ कॉल में करता है, सीधे उपयोग किए जाने वाले शीर्षकों से संबंधित नहीं है। स्क्रीन कवरेज, ओवरड्रॉ, और कुल त्रिकोण गणना की मात्रा लागत का बहुत अधिक हिस्सा बनाती है।

इसका मतलब यह नहीं है कि कोने पूरी तरह से स्वतंत्र हैं। यदि आप कैशिंग से कुछ हद तक बचत प्राप्त कर सकते हैं, तो जब आप अपने वर्टीकल शेड्स जटिल होते हैं या आपके हार्डवेयर की वर्टीकल पाइप लाइन कमजोर होती है (जैसा कि कुछ पुराने कंसोल पर होता था)। लेकिन यह देखते हुए कि शीर्ष गणना त्रिकोण गणना प्लस या एक स्थिर कारक के समानुपाती है, यह आमतौर पर समग्र जाल लागत का एक मीट्रिक के रूप में दिलचस्प नहीं है।


स्मृति को उन कोने भेजने की लागत के बारे में क्या?
मीकल Leszczynski

7
जब तक आप हर फ्रेम में अपने वर्टेक्स बफर को नहीं बदल रहे हैं, आप उस अपलोड लागत का भुगतान एक बार करते हैं। आपके बनावट और फ़्रेम बफ़र किसी भी दिए गए फ्रेम के भीतर वीडियो मेमोरी और बैंडविड्थ के बड़े पैमाने पर होने की संभावना है। यह अभी भी मतलब है कि कोने निश्चित रूप से स्वतंत्र नहीं हैं, और जब व्यावहारिक हो तो उन्हें साझा करना बेहतर होता है, लेकिन यदि कभी कोई खेल खराब प्रदर्शन करता है, तो बिना बिके हुए कोने शायद ही कभी होंगे।
DMGregory

इससे जोड़ूंगा, जैसा कि मैं अपने खेल में जंगलों आदि में कर रहा हूं। जब मैंने शुरू किया था, तो मैं शुरू में ड्रॉ कॉल का उपयोग कर रहा था (मैं अपने स्वयं के इंजन का उपयोग करता हूं, यह पूरी तरह से आपके प्रश्न के साथ संरेखित नहीं कर सकता) केवल verts के साथ मॉडल खींचने के लिए, यह अपने आप में ठीक था, प्रदर्शन ठीक था। लेकिन, जब मैंने अनुक्रमण का उपयोग करना शुरू किया, तो मुझे एक प्रदर्शन सुधार मिला क्योंकि कुछ क्रियाओं को साझा किया गया था और इसलिए कैश किया गया था, इसलिए कुछ गणना दो बार नहीं की गई थी। लब्बोलुआब यह है, कि अकेले क्रियाओं का कच्चा परीक्षण सबसे अच्छा सूचक नहीं है बनाम बनाम तीन मायने रखता है। आपकी पाइपलाइन या तो बहुत से प्रभावित हो सकती है। अन्य उत्तर के रूप में करने के लिए allude
एर्नीडिंगो

2

न तो।

जब तक आप वास्तव में भारी संख्या में ट्रिस (लाखों) की बात नहीं कर रहे हैं, तब तक आपको क्या परवाह है:

  • प्रदान की गई पिक्सेल की संख्या
  • टुकड़ा shader की लागत
  • ड्रा कॉल की संख्या (डिवाइस के आधार पर सीमा के साथ दृढ़ता से)।

24 कोने 4000 गुना क्यूब 96'000 कोने देता है।

640x380 पिक्सल 243'200 टुकड़े देता है, और अधिकांश डिवाइस काफी बड़े प्रस्तावों का समर्थन करते हैं।

आप ड्रॉ कॉल अड़चन (1'000 क्यूब्स के लिए 1 एकल मॉडल) से बचने के लिए 1'000'000 क्यूब्स के साथ अपने प्रयोग को फिर से चला सकते हैं।


2
यह बहुत कुछ दृश्य पर निर्भर करता है और आप कैसे प्रतिपादन कर रहे हैं। यदि आपके पास एक दृश्य है जिसमें स्वाभाविक रूप से अपेक्षाकृत कम ओवरड्राइव है, तो निश्चित रूप से वर्टेक्स प्रसंस्करण आपके प्रदर्शन पर हावी हो सकता है। इसके अलावा, ड्रॉ कॉल की संख्या मुद्दा नहीं है (कुछ एपीआई के लिए) तो ड्रॉ कॉल के बीच राज्य में परिवर्तन होता है।
निकोल बोलस

1

ध्यान देने योग्य बात यह है कि यदि आप एक WebGL एप्लिकेशन कर रहे हैं, तो उपयोगकर्ताओं के लिए डाउनलोड करने के लिए फ़ाइल के आकार के मामले में वर्टेक्स काउंट तेजी से एक अड़चन बन जाता है। त्रिकोण की समान संख्या लेकिन अक्सर DCC सॉफ़्टवेयर में दिखाए गए की तुलना में 2-3 गुना अधिक लंबवत होती है। कम सीम होने से इस मामले में बेहतर अलौकिकता बहुत मदद कर सकती है।

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