एक प्रोग्राम को इनपुट लेना चाहिए, इसे प्रोसेस करना चाहिए और आउटपुट देना चाहिए। तो क्या वास्तव में एक भौतिकी इंजन इनपुट के रूप में लेता है और आउटपुट के रूप में प्रदान करता है?
एक प्रोग्राम को इनपुट लेना चाहिए, इसे प्रोसेस करना चाहिए और आउटपुट देना चाहिए। तो क्या वास्तव में एक भौतिकी इंजन इनपुट के रूप में लेता है और आउटपुट के रूप में प्रदान करता है?
जवाबों:
एक भौतिकी इंजन वस्तुओं की गति और प्रतिक्रिया का अनुकरण करने के लिए जिम्मेदार है जैसे कि वे वास्तविक दुनिया की बाधाओं (या वास्तविक दुनिया के समान) के लिए बाध्य थे। यह है, मुझे ध्यान देना चाहिए, आमतौर पर एक स्टैंडअलोन कार्यक्रम नहीं, बल्कि एक बड़ा, अधिक दिलचस्प कार्यक्रम (जैसे कि एक खेल) का एक घटक।
भौतिकी सिमुलेशन का इनपुट आम तौर पर गुणों के साथ वस्तुओं ("निकायों") का एक संग्रह होता है (जैसे कि वे कठोर या नरम, उनके द्रव्यमान, आकार और इतने पर) और साथ ही उन निकायों पर कार्य करने वाले बलों का संग्रह।
उस इनपुट के आधार पर, इंजन शरीर के अद्यतन पदों और झुकावों का अनुकरण करता है और उन्हें ("आउटपुट") लागू करता है। आम तौर पर, जब ऑब्जेक्ट टकराते हैं या ओवरलैप होते हैं, तो कॉलबैक के रूप में एक सिमुलेशन कदम के आउटपुट में शामिल होता है जो क्लाइंट कोड टकराव से संबंधित विशिष्ट गेमप्ले लॉजिक को संभालने के लिए हुक कर सकता है।
इनपुट यह गति, द्रव्यमान और समय, आउटपुट नई गति है। कभी-कभी रोटेशन / कोणीय गति एक इनपुट और आउटपुट भी है।
अनिवार्य रूप से भौतिकी इंजन गुरुत्वाकर्षण और टकराव दोनों के प्रभावों का अनुकरण करने की कोशिश करते हैं। बेहतर भौतिकी इंजनों के लिए जिसका अर्थ है कि वे वस्तुओं के स्थायी और अस्थायी विरूपण दोनों को शामिल करते हैं, जिसमें वस्तुओं को कई वस्तुओं में विभाजित करना और वस्तुओं की कोणीय गति शामिल है। आदर्श रूप से वे भी तनाव का अनुकरण करेंगे, उदाहरण के लिए, कितने ट्रक उस पुल को पार कर सकते हैं जब तक कि वह ढह न जाए, लेकिन यह काफी दुर्लभ है। वायु प्रतिरोध जैसे आगे सिमुलेशन चर भी भौतिकी इंजन के रूप में गिने जाएंगे, लेकिन जहां तक मुझे पता है कि ये अभी तक किसी भी खेल में नहीं बने हैं।
अधिकांश भौतिकी इंजन कुछ हद तक विशिष्ट हैं और भौतिकी को उस बिंदु पर अनुकरण करेंगे जो खेल के लिए आवश्यक है। कार खेलों के लिए भौतिकी इंजन अक्सर 3 डी निशानेबाजों के लिए भौतिकी इंजन से काफी अलग होते हैं। और एक गोल्फ गेम के भौतिकी इंजन में गोल्फ की गेंद और व्यक्तिगत घास के पत्तों की बातचीत की अत्यधिक गणना हो सकती है, जबकि एक कार की उच्च गति टकराव और विरूपण से निपटने में पूरी तरह से गायब है (मामले में यह गोल्फ की गेंद से हिट हो जाता है) ।
आमतौर पर एक भौतिकी इंजन का उपयोग हर संभव परिदृश्य के लिए विशिष्ट एनिमेशन डिजाइन किए बिना उनके वातावरण के सापेक्ष एक यथार्थवादी तरीके से व्यवहार करने के लिए किया जाता है।
विशेष रूप से एक भौतिकी इंजन गुणों के एक समूह (द्रव्यमान, जोड़ों आदि) के साथ एक मॉडल लेगा और इसे मापदंडों के एक सेट के अनुसार खेल में प्रस्तुत करेगा।
इसका एक प्रारंभिक उदाहरण रैगडोल इंजन (उदा। अवास्तविक) में था, जिसने इस तरह से मॉडलिंग की कि लंगड़ा शरीर चरणों से नीचे गिर जाए।
वर्तमान प्रौद्योगिकी में भौतिकी इंजन प्रायः एआई, इन-गेम यूआई, कटस्कैन जेनरेशन आदि के साथ-साथ एक समग्र गेम डिग्न पैकेज में बारीकी से एकीकृत होंगे।
आप निश्चित रूप से तर्क दे सकते हैं कि भौतिकी इंजन खेल डिजाइन की भोर में वापस जाते हैं उदाहरण के लिए पोंग को एक कच्चे भौतिकी इंजन माना जा सकता है। हालांकि मुख्य बिंदु यह है कि एक भौतिकी इंजन गति पकड़ने या मैनुअल एनीमेशन से पूर्वनिर्धारित एनीमेशन अनुक्रमों का उपयोग करने के बजाय मापदंडों के एक सेट के आधार पर मक्खी पर एनीमेशन अंक उत्पन्न करने में सक्षम है।
जैसा कि अन्य उत्तरों में उल्लेख किया गया है, ड्राइविंग या फ्लाइट सिमुलेशन जैसे कुछ वर्गों या गेम में भौतिकी इंजन गेम खेलने के लिए मौलिक हो सकता है और जैसे कि ऑन-स्क्रीन एनीमेशन ड्राइविंग मुख्य इनपुट होगा। हालाँकि आम तौर पर इस शब्द का इस्तेमाल एक सामान्य उद्देश्य उपकरण के लिए किया जाता है, जो कि ज़मीन से निर्मित एक बहुत ही विशिष्ट सिम्युलेटर के बजाय, डेवलपर की ओर से प्रश्न में संदर्भ के संदर्भ के बहुत विशिष्ट ज्ञान या विश्लेषण की आवश्यकता के बिना विभिन्न स्थितियों पर लागू किया जा सकता है। एक विशिष्ट आवेदन के लिए।
एक भौतिकी इंजन "दुनिया" (जो भी इंजन के संदर्भ में इसका मतलब है) में वस्तुओं की गति का अनुकरण करने के लिए जिम्मेदार है । आजकल ज्यादातर फिजिक्स इंजन ऐसा करने के लिए न्यूटनियन यांत्रिकी का उपयोग करते हैं, क्योंकि वे अनुकरण करने के लिए अपेक्षाकृत सरल होते हैं और अधिकांश प्रयोजनों के लिए "सटीक पर्याप्त" होते हैं जब तक कि आप एक स्पेस सिम नहीं कर रहे हैं।
सिद्धांत रूप में, एक "शुद्ध" भौतिकी इंजन तीन इनपुट लेगा:
जड़ता और शक्तियों को ध्यान में रखते हुए, इंजन वस्तुओं को चारों ओर ले जाता है। भौतिकी इंजन का उत्पादन "दुनिया" की नई अवस्था है , जिसे खेल तब पढ़ सकते हैं और आवश्यकतानुसार संशोधित कर सकते हैं।
व्यवहार में, भौतिकी इंजन जरूरी नहीं कि "शुद्ध" हो । वस्तुओं को बनाने और नष्ट करने की आवश्यकता होती है, और कभी-कभी उन्हें उन तरीकों से इधर-उधर ले जाने की आवश्यकता होती है जो भौतिकी इंजन के नियमों की अनुमति नहीं देंगे। यह कभी-कभी इंजन के बाहर भी किया जा सकता है, लेकिन कभी-कभी यह अंदर किया जाता है, और ऐसा करने के लिए, इंजन को अधिक इनपुट की आवश्यकता होती है। लेकिन ऊपर बताए गए तीन इनपुट मूल बातें कवर करते हैं।
उदाहरण के लिए, मान लीजिए कि आपको जॉयस्टिक का उपयोग करके किसी खेल में एक चरित्र को स्थानांतरित करने की आवश्यकता है। यदि आप एक भौतिकी इंजन का उपयोग नहीं कर रहे हैं, तो यह बहुत सीधा है: जब आप देखते हैं कि उपयोगकर्ता जॉयस्टिक को आगे बढ़ा रहा है, तो आप उसके अनुसार वस्तु को स्थानांतरित करते हैं। भौतिकी इंजन के साथ, आप ऑब्जेक्ट को सीधे स्थानांतरित नहीं करते हैं: आप इसके लिए एक बल लागू करते हैं, जिस दिशा में आप ऑब्जेक्ट को जाना चाहते हैं उसी के अनुसार, और इंजन को वास्तव में इसे स्थानांतरित करने दें ।
क्या फर्क पड़ता है? यहां तक कि अगर दुनिया में और कुछ नहीं है, तो ऑब्जेक्ट को उसी तरह स्थानांतरित करने की संभावना नहीं है, क्योंकि भौतिकी इंजन सहज ज्ञान युक्त चीजों को संभाल लेगा। लेकिन यह भी संभव है कि अन्य बल उसी समय वस्तु पर कार्य कर रहे हों, जैसा कि जड़ता हो सकती है, और इंजन उन सभी को ध्यान में रखेगा । उदाहरण के लिए, यदि आप ऑब्जेक्ट पर उत्तर की ओर बल लगाते हैं, लेकिन कुछ और पश्चिम की ओर बल लगा रहा है (या ऑब्जेक्ट पहले से पश्चिम की ओर बढ़ रहा है और कुछ भी धीमा नहीं है), तो इंजन ऑब्जेक्ट को नॉर्थवेस्ट ले जाएगा।
यही एक भौतिकी इंजन आपको मिलता है: यह वस्तुओं, उनकी स्थिति और वेग, और उन पर कार्य करने वाली शक्तियों का ट्रैक रखता है। यांत्रिकी के नियमों के लिए धन्यवाद, यह अपने आप पर कुछ बलों का निर्माण कर सकता है, स्वचालित रूप से टकराव, घर्षण, और गुरुत्वाकर्षण जैसी चीजों को संभालने के लिए, आपके बिना, गेम डेवलपर, कुछ भी अतिरिक्त करने के लिए।
एक भौतिकी इंजन मूल रूप से भौतिकी निकायों का एक सिम्युलेटर है।
यह आपको एक शरीर (या कई लोगों) बनाने की अनुमति देता है जो इसके भौतिक गुणों जैसे कि द्रव्यमान, आकार, घनत्व, आदि को निर्दिष्ट करता है ...
यह आपको भौतिकी दुनिया के गुणों को भी परिभाषित करने की अनुमति देता है जहां अनुकरण होता है (जैसे गुरुत्वाकर्षण)।
अंत में यह आपको बलों को लागू करने या निकायों के बीच जोड़ों को बनाने की अनुमति देता है।
एक बार जब आप इन सभी चीजों को परिभाषित करते हैं तो आप सिमुलेशन शुरू कर सकते हैं और भौतिकी इंजन आपको बताएगा कि हर शरीर को अगले टाइमस्टेप पर रखा जाएगा (जो आमतौर पर आपके खेल में अगले फ्रेम के अनुरूप होता है)। और अगले एक, और इतने पर ...
आप स्प्राइट्स को स्क्रीन पर चलते देखते हैं क्योंकि हर फ्रेम गेम इंजन फिजिक्स इंजन से पूछता है
अब यह शरीर कहाँ है?
और गेम इंजन ग्राफिक्स प्रतिनिधित्व को तदनुसार अद्यतन करता है।
मैं आमतौर पर भौतिकी इंजन को एक घोषणात्मक तरीके से भौतिकी कानूनों को लागू करने के लिए एक उपकरण की तरह देखना पसंद करता हूं ।
यह लिखने के लिए कोड लिखने के बजाय सही है कि कौन सी गणना यह निर्धारित करने के लिए की जानी चाहिए कि एक निकाय अगले टाइमस्टेप पर कहां होगा, मैं केवल भौतिक विज्ञान दुनिया का वर्णन करता हूं, जिसमें निकायों की विशेषताओं को स्थापित किया जाता है (और भौतिकी दुनिया की) और मैं भौतिकी इंजन का जवाब देता हूं मेरे लिए यह सवाल है।