मुझे लगता है कि यह आमतौर पर स्वीकार किया जाता है कि वास्तविक समय वह सब कुछ है जो इंटरैक्टिव से ऊपर है। और इंटरएक्टिव को "इनपुट के प्रति प्रतिक्रिया करता है" के रूप में परिभाषित किया गया है, लेकिन इस तथ्य में चिकना नहीं है कि एनीमेशन गड़बड़ है।
तो वास्तविक समय आंदोलनों की गति पर निर्भर करेगा जिसे किसी को प्रतिनिधित्व करने की आवश्यकता है। 24 एफपीएस पर सिनेमा परियोजनाएं और कई मामलों के लिए पर्याप्त वास्तविक समय है।
फिर एक मशीन से कितने पॉलीगोन का सौदा किया जा सकता है, यह आसानी से अपने लिए जाँच करके देखा जा सकता है। बस एक साधारण परीक्षण और एक एफपीएस काउंटर के रूप में थोड़ा वीबीओ पैच बनाएं, कई DirectX या OpenGL नमूने आपको इस बेंचमार्क के लिए एकदम सही परीक्षण बिस्तर देंगे।
यदि आपके पास एक उच्च अंत ग्राफिक्स कार्ड है जिसे आप वास्तविक समय में लगभग 1 मिलियन बहुभुज प्रदर्शित कर सकते हैं। हालाँकि, जैसा कि आपने कहा था, इंजन इतनी आसानी से समर्थन का दावा नहीं करेंगे क्योंकि वास्तविक विश्व दृश्य डेटा कई प्रदर्शन हॉग का कारण होगा जो बहुभुज की गिनती से संबंधित नहीं हैं।
आपके पास:
- दर भरने
- बनावट का नमूना
- ROP आउटपुट
- कॉल ड्रा करें
- लक्ष्य स्विच प्रस्तुत करना
- बफर अपडेट (एक समान या अन्य)
- ओवरड्रॉ
- shader जटिलता
- पाइपलाइन जटिलता (किसी भी प्रतिक्रिया का इस्तेमाल किया? पुनरावृत्त ज्यामिति छायांकन? रोड़ा?)
- सीपीयू (पिक्सेल रीडबैक?) के साथ सिंक पॉइंट
- बहुभुज समृद्धि
एक विशेष ग्राफिक कार्ड के कमजोर और मजबूत बिंदुओं के आधार पर, इनमें से एक या एक अन्य बिंदु अड़चन होने वाला है। ऐसा नहीं है कि आप निश्चित रूप से कह सकते हैं "वहाँ, वह एक है"।
संपादित करें:
मैं इसे जोड़ना चाहता था, कोई एक विशिष्ट कार्ड के GFlops कल्पना आंकड़े का उपयोग नहीं कर सकता है और इसे रैखिक रूप से बहुभुज धक्का क्षमता के लिए रेखांकन कर सकता है। इस तथ्य के कारण कि बहुभुज उपचार को ग्राफिक्स पाइपलाइन में अनुक्रमिक अड़चन से गुजरना पड़ता है, जैसा कि यहां पर विस्तार से बताया गया है: https://fgiesen.wordpress.com/2011/07/03/a-trip-through-the-graphics -pipeline-2011-भाग -3 /
टीएलडीआर: वर्टीकल को प्राइमरी असेंबली से पहले एक छोटे कैश में फिट होना होता है जो मूल रूप से एक अनुक्रमिक चीज है (वर्टेक्स बफर ऑर्डर मायने रखता है)।
यदि आप GeForce 7800 (9yr पुराने?) की तुलना इस वर्ष 980 तक करते हैं, तो ऐसा लगता है कि प्रति सेकंड संचालन की संख्या एक हजार गुना बढ़ गई है। लेकिन आप शर्त लगा सकते हैं कि यह एक हजार गुना तेजी से पॉलीगोन को आगे बढ़ाने वाला नहीं है (जो कि इस साधारण मीट्रिक द्वारा लगभग 200 बिलियन सेकंड होगा)।
EDIT2:
प्रश्न का उत्तर देने के लिए "एक इंजन को अनुकूलित करने के लिए कोई क्या कर सकता है", जैसा कि "राज्य स्विच और अन्य ओवरहेड्स में बहुत अधिक दक्षता खोने के लिए नहीं"।
यह उतना ही पुराना सवाल है जितना इंजन। और इतिहास प्रगति के रूप में और अधिक जटिल होता जा रहा है।
वास्तव में वास्तविक दुनिया की स्थिति में, विशिष्ट दृश्य डेटा में कई सामग्री, कई बनावट, कई अलग-अलग शेड्स, कई रेंडर लक्ष्य और पास, और कई शीर्ष बफ़र्स और इतने पर होंगे। एक इंजन जिसे मैंने पैकेट की धारणा के साथ काम किया था:
एक पैकेट एक ड्रॉ कॉल के साथ प्रदान किया जा सकता है।
इसमें पहचानकर्ता शामिल हैं:
- वर्टेक्स बफर
- सूचकांक बफर
- कैमरा (पास और रेंडर टारगेट देता है)
- सामग्री आईडी (shader, बनावट और UBO देता है)
- आँख से दूरी
- दिख रहा है
इसलिए प्रत्येक फ़्रेम का पहला चरण एक ऑपरेटर के साथ सॉर्ट फ़ंक्शन का उपयोग करके पैकेट सूची पर एक त्वरित सॉर्ट चलाना है जो दृश्यता को प्राथमिकता देता है, फिर पास, फिर सामग्री, फिर ज्यामिति और अंत में दूरी।
नज़दीकी वस्तुओं को आकर्षित करने से प्रारंभिक जेड कुलिंग को अधिकतम करने की प्राथमिकता मिलती है।
पास निश्चित कदम हैं, इसलिए हमारे पास उनका सम्मान करने के अलावा कोई विकल्प नहीं है।
टार्गेट रेंडर करने के बाद स्टेट-स्विच में सामग्री सबसे महंगी चीज है।
यहां तक कि विभिन्न सामग्रियों के बीच आईडी में, एक उप-आदेश को शादि परिवर्तन (सामग्री राज्य-स्विच संचालन के भीतर सबसे महंगा), और दूसरी बनावट बाध्यकारी परिवर्तनों की संख्या को कम करने के लिए एक न्यायिक मानदंड का उपयोग करके बनाया जा सकता है।
इस सभी आदेश के बाद, यदि आवश्यक समझा जाए , तो कोई मेगा टेक्सचरिंग, वर्चुअल टेक्सचरिंग और विशेषता-कम रेंडरिंग ( लिंक ) लागू कर सकता है।
इंजन एपीआई के बारे में भी एक सामान्य बात क्लाइंट द्वारा आवश्यक राज्य-सेटिंग आदेश जारी करने को स्थगित करना है। यदि कोई क्लाइंट "सेट कैमरा 0" का अनुरोध करता है, तो इस अनुरोध को स्टोर करना सबसे अच्छा है और यदि बाद में क्लाइंट "सेट कैमरा 1" कहता है, लेकिन बीच में कोई अन्य कमांड नहीं है, तो इंजन पहले कमांड की बेकारता का पता लगा सकता है और इसे ड्रॉप कर सकता है । यह अतिरेक उन्मूलन है, जो एक "पूरी तरह से बरकरार" प्रतिमान का उपयोग करके संभव है। "तत्काल" प्रतिमान के विरोध में, जो मूल एपीआई से ऊपर सिर्फ एक आवरण होगा और ग्राहक कोड के अनुसार आदेशों को सही जारी करेगा। ( उदाहरण: सदाचार )
और अंत में, आधुनिक हार्डवेयर के साथ, एक बहुत महंगा (विकसित करने के लिए), लेकिन संभावित रूप से अत्यधिक पुरस्कृत करने वाला कदम एपीआई को धातु / मेंटल / वल्कन / डीएक्स 12-शैली में बदलना और हाथ से रेंडरिंग कमांड तैयार करना है।
एक इंजन जो रेंडरिंग कमांड तैयार करता है वह एक बफर बनाता है जो "कमांड लिस्ट" रखता है जो प्रत्येक फ्रेम पर ओवरराइट किया जाता है।
आमतौर पर फ्रेम "बजट" की धारणा होती है, एक गेम खर्च कर सकता है। आपको 16 मिलीसेकंड में सब कुछ करने की ज़रूरत है, इसलिए आप स्पष्ट रूप से GPU समय "2 एमएस के लिए लाइटपर पास", "सामग्री के लिए 4 एमएस पास", "अप्रत्यक्ष प्रकाश के लिए 6 एमएस", "पोस्टप्रोसेस के लिए 4 एमएस" का विभाजन करें ...