कैसे एक 3 डी खेल का नक्शा संग्रहीत और संभाला जाता है


9

मैं एक प्रोग्रामर हूं, लेकिन अभी तक कोई गेम विकसित नहीं किया है।

मैंने विभिन्न 3 डी गेम खेले हैं और हमेशा सोचा है कि क्षेत्र का मानचित्र कैसे संग्रहीत और प्रस्तुत किया जाता है।

मुझे पता है कि कुछ त्वरण कार्ड एक आवश्यक हार्डवेयर है, लेकिन स्क्रीन पर एक भी झिलमिलाहट के बिना दृश्य बिल्कुल कैसे बदल जाता है।

क्या आपके पास इसे समझने में मेरी मदद करने के लिए कोई ऑनलाइन सामग्री है।

धन्यवाद

जवाबों:


9

आम तौर पर, दुनिया बहुत सारे त्रिकोणों का मानचित्र है, और नक्शा इन त्रिकोणों की सूची और प्रत्येक शीर्ष की दुनिया में स्थान है। उन्हें आकर्षित करने की प्रक्रिया है:

  • 'कैमरा' की स्थिति सेट करें - यदि आप दुनिया में खड़े थे, तो यह वह जगह है जहाँ आप विश्व स्थिति में होंगे
  • 'कैमरे की जगह' में त्रिभुज कोने को बदलना
  • त्रिभुज को 'कैमरा स्पेस' से 'स्क्रीन स्पेस' में बदलना - यह वह जगह है जहाँ पर सीधा असर होता है (दूर की चीजें छोटी होती हैं)। इस बिंदु पर त्रिभुज 2D हो जाते हैं।
  • एक छिपे हुए स्क्रीन पर 2D त्रिकोण बनाएं।
  • जब सभी त्रिभुज खींचे गए हों, तो खिलाड़ी को स्क्रीन दिखाएं।

अंतिम चरण आमतौर पर मॉनिटर के फ्रेम दर से बंधा होता है, ताकि छिपी हुई स्क्रीन दिखाने की प्रक्रिया v-blank अंतराल के दौरान की जाती है - कैथोड रे ट्यूब मॉनिटर से प्राप्त एक अवधारणा जो कैथोड बीम को नीचे से ऊपर की ओर ले जाने की अनुमति देती है छोड़ दिया, यह तेजी से आवश्यक है, लेकिन तुरंत नहीं, किरण ट्यूब के पीछे विक्षेपण कॉइल पर बदलते वोल्टेज।

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

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

समर्पित हार्डवेयर आवश्यक नहीं है - कई शुरुआती 3 डी गेम ने यह सब सॉफ्टवेयर में किया (यहां तक ​​कि 8-बिट सीपीयू पर बिना एफपीयू के)। यह सिर्फ जल्दी और करने में आसान बनाता है।

इतना आसान सवाल। कोई आसान जवाब नहीं।


0

डबल बफरिंग के कारण स्क्रीन पर किसी भी झिलमिलाहट के बिना दृश्य बदल जाता है, बैक बफर पर सभी डेटा को संसाधित करें, फिर जब इसे संसाधित किया जा रहा है, तो आप इसे फ्रंट बफर पर स्वैप करते हैं।

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