फ्लोटिंग पॉइंट प्रिसिजन (एफपी: सटीक बनाम एफपी: तेज)


10

C या C ++ में, फ्लोटिंग पॉइंट प्रिसिजन का कंपाइलर विकल्प वास्तव में वास्तविक दुनिया (छोटे / इंडी) गेम में अंतर करता है?

मेरी टिप्पणियों से, fp को सेट करना: fp: fp की तुलना में कई गुना तेज है: सटीक और जो मैं यहां समझता हूं ( /programming/6889522/fpfast-vs-fpprecise-what-kind-of-errors-can -i-मुठभेड़ ) दो संकलक विकल्पों के बीच सटीक अंतर केवल एक अस्थायी बिंदु संख्या के 16 वें अंक से बदलता है।

किसी को भी एक उदाहरण का सामना करना पड़ा जब fp का उपयोग कर: तेजी से 2 डी या 3 डी खेल के लिए बहुत गलत हो गया?

संपादित करें: स्पष्ट करने के लिए, मैं फ्लोटिंग पॉइंट वैल्यूज़ की शुद्धता के बारे में स्वयं नहीं पूछ रहा हूं (यानी। फ्लोट बनाम डबल बनाम दशमलव)। केवल कंपाइलर विकल्प से संबंधित सटीक के बारे में।

जवाबों:


11

Fp की आपकी व्याख्या: तेज बनाम fp: सटीक लगता है संदिग्ध; मुझे यकीन है कि 16 वें दशमलव स्थान के बाद गोल चक्कर की तुलना में एक प्रभाव अधिक है। मैं आपको ब्रूस डॉसन के लेख पर अधिक जानकारी के लिए फ्लोटिंग पॉइंट प्रिसिजन पर संदर्भित करता हूं ।

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


1
-1 फ्लोटिंग पॉइंट सटीक खेल के विकास में एक बड़ी समस्या नहीं है। गलत डेटा प्रकारों का चयन करना और संख्यात्मक ज्ञान और एल्गोरिदम की कमी इस पोस्ट में उल्लिखित सभी समस्याओं का कारण है। सभी परियोजनाओं में मैंने fp का इस्तेमाल किया: उपवास में कोई भी समस्या नहीं बताई गई।
माईक सेमर

हां, हमारे निष्कर्ष समान हैं। मेरा कहना था कि फ्लोटिंग पॉइंट सटीक खेल के विकास के कुछ क्षेत्रों में एक समस्या हो सकती है, और इसीलिए (उन क्षेत्रों में) आपको संख्यात्मक ज्ञान और आपके द्वारा उल्लिखित उचित डेटा प्रकारों की आवश्यकता है।
पोस्टगुडिज़्म

+1 दोनों महान लिंक के लिए, और उत्तर के लिए आपने माईक सेमर दिया। मैंने उन लोगों को भी इस तरह की त्रुटियों से जूझते देखा है, क्योंकि वे नहीं जानते हैं कि उन्हें अपने कोड में किस तरह के ऑपरेशन का उपयोग करना चाहिए।
अली 1 एस 232

@postgoodism उत्तर देने के लिए धन्यवाद। अपने इनपुट की अनदेखी नहीं। अगर मुझे और प्रतिक्रियाएँ मिलती हैं तो बस एक या दो दिन प्रतीक्षा कर सकते हैं।
इनिशीयर

@MaikSemder मूल रूप से बस fp:fastतब उपयोग करें , जब तक कि आप वास्तव में नहीं चाहते हैं fp:preciseयदि आप विभिन्न अजीब मुद्दों को नोटिस करते हैं (खेल में जटिल गणनाओं में देखा जा सकता है, जैसे कि भौतिकी में @postgoodism कहा गया है)। धन्यवाद, इस पर आश्चर्य हो रहा था।
निकोस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.