इसे करने के कम से कम दो तरीके हैं:
पहला वह है जिसका उल्लेख अन्य लोग यहां मेरे समक्ष कर चुके हैं। मुझे लगता है कि यह सबसे सरल और पसंदीदा तरीका है। आप बस नज़र रखने के लिए
- cn: आपने कितने फ़्रेमों का काउंटर किया है
- time_start: जब से आपने गिनना शुरू किया है
- time_now: वर्तमान समय
इस मामले में एफपीएस की गणना करना इस फॉर्मूले का मूल्यांकन करने जितना आसान है:
- FPS = cn / (time_now - time_start)।
फिर uber कूल तरीका है जिसे आप किसी दिन उपयोग करना पसंद कर सकते हैं:
मान लीजिए कि आपके पास विचार करने के लिए 'i' फ्रेम हैं। मैं इस नोटेशन का उपयोग करूँगा: f [0], f [1], ..., f [i-1] यह वर्णन करने में कि फ्रेम 0, फ्रेम 1, ..., फ्रेम (i-1) को रेंडर करने में कितना समय लगा। ) क्रमशः।
Example where i = 3
|f[0] |f[1] |f[2] |
+----------+-------------+-------+------> time
तब, मैं फ्रेम के बाद एफपीएस की गणितीय परिभाषा होगी
(1) fps[i] = i / (f[0] + ... + f[i-1])
और एक ही सूत्र लेकिन केवल i-1 फ्रेम पर विचार करना।
(2) fps[i-1] = (i-1) / (f[0] + ... + f[i-2])
अब यहाँ ट्रिक है फॉर्मूला (1) के राइट साइड को इस तरह से मोडिफाई करना कि इसमें फॉर्मूला का राइट साइड (2) होगा और इसे लेफ्ट साइड के लिए सब्स्टीट्यूट किया जाएगा।
जैसे (यदि आप इसे कागज पर लिखते हैं तो आपको इसे और स्पष्ट रूप से देखना चाहिए):
fps[i] = i / (f[0] + ... + f[i-1])
= i / ((f[0] + ... + f[i-2]) + f[i-1])
= (i/(i-1)) / ((f[0] + ... + f[i-2])/(i-1) + f[i-1]/(i-1))
= (i/(i-1)) / (1/fps[i-1] + f[i-1]/(i-1))
= ...
= (i*fps[i-1]) / (f[i-1] * fps[i-1] + i - 1)
तो इस सूत्र के अनुसार (मेरा गणित व्युत्पन्न कौशल हालांकि थोड़ा कठोर है), नए एफपीएस की गणना करने के लिए आपको पिछले फ्रेम से एफपीएस जानने की जरूरत है, अंतिम फ्रेम और आपके द्वारा फ़्रेम की संख्या को रेंडर करने के लिए ली गई अवधि प्रदान की गई।