मैं 3D गेम की दुनिया के स्केलिंग कारक का चयन कैसे करूं?


9

मैं कुछ भौतिकी सिमुलेशन के साथ 3 डी टैंक गेम प्रोटोटाइप बना रहा हूं, सी ++ का उपयोग कर रहा हूं। मुझे जो निर्णय लेने की आवश्यकता है, उनमें से एक वास्तविकता के संबंध में खेल की दुनिया का पैमाना है। उदाहरण के लिए, मैं वास्तविकता में 1 मीटर के अनुरूप माप की 1-इन-गेम इकाई पर विचार कर सकता हूं। यह सहज ज्ञान युक्त लगता है, लेकिन मुझे लगता है कि मुझे कुछ याद आ रहा है।

मैं निम्नलिखित समस्याओं के बारे में सोच सकता हूं:

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

मुझे आश्चर्य हो रहा है कि क्या मुझे इसे कई प्रश्नों में विभाजित करना चाहिए ...

जवाबों:


3

आम तौर पर आपको जो भी काम करना चाहिए।

  1. चूंकि आपके पास वास्तविक जीवन की वस्तुएं हैं जो उनके पैमाने से मेल खाने के लिए समझ में आता है (3 डी मॉडलिंग ऐप्स में आमतौर पर माप इकाइयां सेटअप, मीटर, पैर, आदि हैं), लेकिन एक बार जब आप टैंकों से दूर पेड़ों और अन्य दृश्यों की वस्तुओं में चले जाते हैं - तो उन्हें शायद आवश्यकता होगी अपने खेल शैली को फिट करने के लिए कस्टम स्केल किया जा सकता है (इसलिए आप एक पेड़ को मॉडल करते हैं और इसे गेम एडिटर में स्केल करने का मतलब है कि यह अच्छा दिखे, कई बार आप एक ही पेड़ का पुन: उपयोग करेंगे लेकिन विविधता जोड़ने के लिए एक अलग पैमाने के साथ)।

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

  3. आपको अपने खेल को अच्छा महसूस करने के लिए वैश्विक स्थिरांक को ट्विक करना होगा। यह उसी तरह है कि आप उबाऊ भागों को छोड़ने के लिए दुनिया के सापेक्ष पैमाने को बदलते हैं और 4x4 किमी क्षेत्र (शहर, नदी, पहाड़, आदि) में अधिक दिलचस्प चीजें पैक करते हैं जो वास्तविक दुनिया में एक दूसरे से बहुत दूर हैं।

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

  5. मुझे संदेह है कि जब तक वे स्क्रीन पर प्रदर्शित करने के लिए पिक्सेल की समान मात्रा लेते हैं, तब तक कोई अंतर नहीं होता है।


8

ये रहा।

  1. 3D मॉडलिंग कार्यक्रम आपको इकाई पैमाने का चयन करने देते हैं। इंपीरियल या मीट्रिक तक सीमित हो सकता है, लेकिन यह सिर्फ एक संख्या है। संख्याओं को आसानी से परिवर्तित / बढ़ाया / समायोजित किया जा सकता है। इससे कोई फर्क नहीं पड़ता कि आप किस यूनिट सिस्टम का उपयोग करते हैं, जब तक आप उस एक का उपयोग करते हैं । सुसंगत रहें, इसलिए 1 मीटर 1 फुट नहीं बनता है।

    संपादित करें: पुस्तक: गेम कोडिंग कम्प्लीट, थर्ड एडिशन, अध्याय 15, स्नातकोत्तर। 525, "मीटर, फीट, क्यूबिट्स, या केलीकैम?"

  2. कोने के बड़े भाग वाले खेल कई काम कर सकते हैं। एक के लिए, वे इसे छोटे चंक में विभाजित कर सकते हैं, और फिर उस चंक का जिक्र करने वाले डेटा एक ऑफसेट निर्दिष्ट कर सकते हैं। कुछ हद तक ऑक्ट्रेसेस का उपयोग करने के समान है, जो अनदेखी कोने के बड़े भागों के प्रतिपादन से बचने के लिए एक प्रतिपादन अनुकूलन है। वैकल्पिक रूप से, एक डबल 1.79769e + 308 स्टोर कर सकता है , जो एक बहुत बड़ा, अभी तक विस्तृत, संख्या है। एक फ्लोट 3.40282e + 038 स्टोर कर सकता है, जो या तो जर्जर नहीं है।

    संपादित करें: गेम कोडिंग कम्प्लीट, थर्ड एडिशन, चैप्टर 13, पेज। 410, "निर्देशांक और समन्वय प्रणाली" (तालिका पोस्ट के निचले भाग में जोड़ी गई)

  3. आपका शायद तब एक मीट्रिक प्रणाली का उपयोग करना चाहता है, या इसे अपनी इकाई प्रणाली में परिवर्तित कर सकता है। ध्यान देने योग्य बात, यह है कि आपका शायद उस मूल्य को थोड़ा मोड़ने वाला है। यकीन है, आपके tweaked मूल्य शारीरिक रूप से सटीक नहीं होगा। लेकिन यह अधिक सटीक लग सकता है , कहते हैं -9.3 m/s^2,।

  4. आप इसे किसी भी तरह से कर सकते हैं। हालांकि मैं कहूंगा कि एसेट को स्केल करें। यदि आप दुनिया को मापते हैं, तो आपको गुरुत्वाकर्षण, वेग की गणना और सभी प्रकार की अन्य चीजों को बदलना होगा। यूनिटी 3 डी में संपत्ति का आयात करते समय मुझे सामान्य रूप से आयात सेटिंग में मॉडल के पैमाने को समायोजित करना पड़ता है, इसलिए मुझे लगता है कि यूनिटी तराजू है। यदि आप उन पंक्तियों के साथ कुछ और चाहते थे।

  5. बड़े या छोटे, बहुभुज / जाल का आकार इतना ही मायने नहीं रखता है, जितने बहुभुज हैं। मुझे लगता है कि मॉडल कितने पिक्सल लेता है, इसके आधार पर इसमें थोड़ा सा बदलाव हो सकता है। इसके अलावा, एक संख्या 10 या 100 होने से कंप्यूटर के अंत में कुछ भी नहीं बदलता है। यह अभी भी बिट्स की एक ही संख्या को संसाधित करने के लिए है, यह सिर्फ इतना है कि विभिन्न बिट 0 हैं।

संपादित करें: गिरने वाली तालिका एक 32-बिट IEEE फ़्लोटिंग-पॉइंट संख्या मानती है।

Game Coding Complete, Third Addition, Table 13.2, pg. 411
Smallest unit         Smallest Representable object  Upper Range    Description of
                      (As a textured polygon)                       largest area

100m                  A group of redwood trees       1.67x10^9      Earth/Moon System
1m                    A Human Being                  1.67x10^7      North and South America
1cm                   A coin                         1.67x10^6      California
1mm                   A flea                         1.67x10^5      San Francisco Bay Area
100 micrometer        A grain of pollen              1.67x10^4      Downtown San Francisco

यह सब जानकारी, और अधिक, गेम-कोडिंग कम्प्लीट में। माइक मैकशाफी द्वारा लिखित। ब्लैक जैक से लेकर चोर: घातक छाया तक के खेल पर काम करने वाला एक उद्योग पेशेवर।


इस उत्तर से संतुष्ट नहीं हूँ क्योंकि यह वास्तव में मूल प्रश्न के लिए बहुत कुछ नहीं जोड़ता है और वास्तव में कोई ठोस उदाहरण नहीं देता है। बिंदु 2 के बारे में मैं वास्तव में विजिबिलिटी निर्धारण या ज्योमेट्री पेजिंग के बारे में नहीं पूछ रहा था और न ही अधिकतम फ्लोटिंग पॉइंट नंबर के बारे में .. लेकिन मेरा वास्तव में मतलब है कि बड़ी संख्या के साथ फ्लोटिंग पॉइंट लॉस सटीकता के बाद से बड़ी ज्यामिति को कितनी बड़ी संख्या में संभाला जाता है, यह वास्तव में स्टोर कर सकता है बहुत बड़ी संख्या में लेकिन खराब परिशुद्धता के साथ।
कॉन्सेप्ट

उन लोगों के सूट आपकी पसंद को बेहतर करते हैं?
वोल्फगैंग स्काइलर

अच्छी तरह से, हाँ Eventhough मैं विशेष रूप से इस stackoverflow.com/questions/872544/prepy-of-floating-point के बारे में पूछ रहा था , खासकर भौतिकी सिमुलेशन में लेकिन मुझे लगता है कि एक अलग प्रश्न की आवश्यकता है।
अवधारणा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.