स्प्राइट और बनावट के बीच क्या अंतर है?


27

मेरे पास विश्वविद्यालय के कारण असाइनमेंट है, और मेरा काम वीडियो गेम के भीतर इस्तेमाल होने वाले बनावट पर चर्चा करना है, और वे कैसे विकसित हुए हैं।

मेरा मुख्य प्रश्न यह है कि स्प्राइट का उपयोग करने, या अन्य बनावट विधियों का उपयोग करने के बीच मूलभूत अंतर क्या है?

अपने आप पर थोड़ा शोध करने के बाद, मुझे लगता है कि स्प्राइट्स एक ही फाइल में छवियों को संग्रहीत करते हैं, और एनिमेशन आदि के लिए इस्तेमाल किया जा सकता है .. और आमतौर पर पुराने वीडियो गेम के साथ उपयोग किया जाता था, आमतौर पर स्प्राइट का उपयोग उनके सभी खेल दृश्यों के रूप में किया जाता था। अब, आधुनिक खेलों के साथ, स्प्राइट्स का मानना ​​है कि तकनीक का उपयोग कम किया जा सकता है और अन्य बनावट उपलब्ध हैं जैसे कि बंप मैपिंग। हालांकि स्प्राइट्स का उपयोग आज भी स्वास्थ्य पट्टी या लंबी दूरी की बनावट जैसी सुविधाओं को समायोजित करने के लिए किया जाता है।

लेकिन स्प्राइट्स से अधिक बनावट का उपयोग करने के मुख्य लाभ क्या हैं?



5
एक ड्रिंक है और दूसरा नहीं है (मैं इस मजाक के लिए माफी चाहता हूं)
CAD97

जवाबों:


37

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

हम आम तौर पर एक छवि कहते हैं (या एक छवि का एक हिस्सा जिसमें कई अलग-अलग टुकड़े होते हैं) एक "स्प्राइट" अगर इसका इरादा प्रतिपादन उद्देश्य सीधे स्क्रीन के 2 डी ग्रिड के लिए तैयार किया जाना है, बिना परिप्रेक्ष्य विरूपण के। तो आप रनिंग गेम में जो देखते हैं, वह मूल रूप से आप इमेज फाइल में ही देखते हैं (रंग टिनिंग / पैलेट स्वैपिंग / ट्रांसपेरेंसी इफेक्ट्स के अलावा)। यह 2 डी गेम में बैकग्राउंड टाइल्स और कैरेक्टर / इंटरेक्टिव ऑब्जेक्ट पर लागू होता है, "बिलबोर्ड" कार्ड जैसे कण और पुराने स्टाइल के ट्री और झाड़ी रेंडरिंग, और 3 डी गेम में यूजर इंटरफेस एलिमेंट्स और आइकन भी।

इसके विपरीत, यदि हम एक 3D ऑब्जेक्ट के पॉलीगॉन के लिए सतह विवरण प्रदान करने के लिए एक छवि का उपयोग कर रहे हैं जिसे परिप्रेक्ष्य में खींचा जा सकता है, तो हम आमतौर पर उस छवि को "बनावट" कहते हैं। उस नाम ने छवि डेटा के अन्य उपयोगों को किसी और चीज़ के प्रतिपादन के लिए किया है, भले ही वे उस बनावट के बारे में न हों, जिसे आप अपनी उंगलियों से महसूस कर सकते हैं - परावर्तन, विरूपण मानचित्र, ओवरले, मास्क, या कोई भी चीज़ छवियों का सामान्य-उद्देश्य उपयोग हम ऐसा महसूस नहीं करते कि नामकरण हमारे विशेष रूप से ढीले नामकरण में "बनावट" के तहत हो जाता है।

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

(इस अंतिम उदाहरण में यहां ध्यान दें कि "स्प्राइट" हमारी गेम परिसंपत्तियों में स्रोत छवि खंड, और इस छवि खंड का उपयोग करने वाले प्रदान की गई खेल इकाई का उदाहरण है - एक और तरीका है कि हम इस शब्दावली का उपयोग असंगत रूप से करते हैं)

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


क्या "बनावट" में आमतौर पर पारदर्शी पिक्सेल शामिल होते हैं या अनुमति देते हैं? मैं एक ऐसी वस्तु के बारे में सोचूंगा जो एक पिक्सेल-मैप की गई सपाट सतह के रूप में व्यवहार करती है जिसमें पारदर्शी पिक्सेल होते हैं जो "स्प्राइट" के रूप में होते हैं, चाहे सतह कैमरा अक्ष के लंबवत हो या न हो।
सुपरकाट

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

जब अपारदर्शी बनावट-मैप की गई वस्तुओं को प्रस्तुत करते हैं, तो एक रेंडरिंग इंजन को इस बात की चिंता करने की आवश्यकता नहीं होती है कि उनमें से अंदर कैसे दिखाई देगा क्योंकि अपारदर्शी सतह अंदर छिप जाएगी। मुझे लगता है कि एक पेड़ या चेन-लिंक बाड़ की तरह कुछ को सबसे अच्छा रूप से अपारदर्शी हिस्से करके और फिर आंशिक रूप से पारदर्शी सतहों के रूप में आंशिक रूप से पारदर्शी भागों को प्रस्तुत करके प्रदान किया जाएगा। हालांकि वे मेल नहीं खाते कि कुछ लोग "स्प्राइट" कहते हैं यदि वे कैमरे का सामना नहीं करते हैं, तो वे "सामान्य" वस्तुओं के समान नहीं होंगे।
सुपरकैट

यह वास्तव में आमतौर पर यह कैसे किया जाता है। बाड़ पदों और चड्डी के लिए ज्यामिति को अपारदर्शी पास में गाया जाता है, और फिर बाड़ के फैलाव और पत्ते / टहनियों के लिए ज्यामिति एक अल्फा-टेस्ट या अल्फा-मिश्रित पास में प्रदान की जाती है।
DMGregory

1
मैं आमतौर पर "पारदर्शी बनावट" या "अल्फा बनावट" / "अल्फा के साथ बनावट" सुनता हूं - शायद कभी-कभी "कटआउट" / "कटआउट बनावट" अगर यह एक हार्ड-एडेड / अल्फा-परीक्षण पारदर्शिता है।
DMGregory

7

स्प्राइट कंप्यूटर गेम के इतिहास से एक राहत है। 8-बिट Ataris सीए के आसपास सोचो। 1980. एक छोटी सी छवि, आमतौर पर एक कवरेज बिटमास्क (या एक विशेष "पारदर्शी" रंग) के साथ जो स्क्रीन पर एक स्थिति होती है और स्क्रीन पर कुछ विशेष तरीके से संयुक्त होती है। छेदों के साथ जहां स्प्राइट में "छेद" होता है, कवरेज मानचित्र के अनुसार। आमतौर पर "बस काम करता है" तरीके से, और इस तरह से आसानी से चारों ओर घूमने वाले सामान के भ्रम की अनुमति देता है, आमतौर पर अधिलेखित मूल स्क्रीन पिक्सल को सहेजने और पुनर्स्थापित करने से।

ऐसा प्रतीत होता है कि स्प्राइट्स कंप्यूटर पर एक हार्डवेयर सुविधा थी, जिसका उपयोग आप स्क्रीन सामग्री को स्वचालित रूप से सहेजे जाने के साथ कर सकते हैं, इनका उपयोग कर सकते हैं / उपयोग कर सकते हैं, आप केवल उनमें से एक बहुत ही सीमित संख्या में हो सकते हैं (और गैर-अतिव्यापी, या!) , और कहा जाता है कि वे बहुत छोटे हैं (जैसे 16x16) और सीमित हैं।

माउस कर्सर वह है जो आजकल स्प्राइट के सबसे करीब आता है (और इसका उपयोग किया जाता था कुछ जब तक कुछ सिस्टम पर एक वास्तविक स्प्राइट ~ 10-15 साल पहले)।

आजकल, वास्तव में ऐसी कोई चीज मौजूद नहीं है, लेकिन यह शब्द बना हुआ है। स्प्राइट मूल रूप से एक छोटी 2 डी छवि है जिसे आप कहीं भी (समग्र) आकर्षित करते हैं। आमतौर पर एक छोटे बनावट वाले क्वाड को खींचकर।

दूसरी ओर एक बनावट, एक पठनीय छवि की अवधारणा है जिसका उपयोग कुछ आधुनिक ग्राफिक्स एपीआई में किया जाता है। या, अधिक सटीक रूप से, आकार के रूप में कुछ अतिरिक्त डेटा के साथ मेमोरी (आधुनिक एपीआई के संदर्भ में "बफर"), जो कुछ साधनों के माध्यम से नमूना किया जा सकता है। आमतौर पर, लेकिन जरूरी नहीं कि ग्राफिक्स प्रोसेसिंग यूनिट पर चलने वाले किसी शेडर द्वारा। आमतौर पर, लेकिन जरूरी नहीं कि सामान्यीकृत निर्देशांक के साथ, और आमतौर पर जरूरी नहीं कि फ़िल्टरिंग (और mipmapping, और कुछ विशेष सीमा मोड, और, और, और ...) के साथ।

इस प्रकार, एक बनावट डेटा का स्रोत हो सकता है जो आप स्प्राइट को आकर्षित करने के लिए उपयोग करते हैं।


3
हार्डवेयर में उचित स्प्राइट ओवरलेड होते हैं, इसलिए मेमोरी में वीडियो डेटा नहीं बदलता है, और समान मोड का उपयोग करने की आवश्यकता नहीं है (जैसे C64 पर, आप टेक्स्ट बैकग्राउंड के ऊपर बिटमैप स्प्राइट कर सकते हैं)। बिटमैप को सहेजने और डेटा को बदलने के द्वारा प्रदान की जाने वाली वस्तुओं को BOBs (ब्लिटर OBjects) कहा जाता है।
साइमन रिक्टर

1
@SimonRichter: मैं C64 से अपरिचित हूं, खिलौने के रूप में अंजाम देता हूं, लेकिन अमिगा के पास भी उनमें से 8 थे, अगर मुझे सही से याद है। यह सुनिश्चित नहीं है कि यह हार्डवेयर स्तर पर कैसे काम करता है, लेकिन साथ ही प्रत्यक्ष ओवरले हो सकता है (संभावना लगता है)। ST पर, A00D/ AOOCopcode sprites निश्चित रूप से ड्रा / undraw फ्रेमबफ़र-संशोधित प्रकार के थे। BOB, हाँ, वह भी अस्तित्व में है, ठेठ Amiga बात। वर्तमान में बनावट के लिए यह सबसे करीबी चीज थी, मुझे लगता है (किसी भी आकार, एक बार ग्राफिक्स प्रोसेसर पर अपलोड करें, कई बार ड्रा करें)।
डेमोन

4

यह एक सेब और संतरे की तुलना छँटाई है। एक बनावट सिर्फ एक छवि है, जबकि एक प्रेत एक छवि है और इसका उपयोग कैसे किया जाता है।

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

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

2d खेलों के लिए विशेष रूप से, यह एक शैलीगत पसंद है। उदाहरण के लिए, स्प्राइट का उपयोग करके किसी गेम में हाथ से खींचे गए या चित्रित पात्रों की रचना कर सकते हैं। दक्षिण पार्क का खेल तकनीकी रूप से इसका एक उदाहरण होगा।

तो, आप वास्तव में स्प्राइट के स्थान पर सिर्फ एक बनावट का उपयोग नहीं कर सकते ।


3

यहाँ एक सरल और संक्षिप्त उत्तर है। मैं आमतौर पर स्प्राइट के बारे में सोचता हूं क्योंकि जो भी फंक्शंस और टेक्सचर उस पर लागू होते हैं उसके साथ ही पूरी वस्तु भी। बनावट के लिए, मैं बहुत ज्यादा इसे सिर्फ एक छवि मानता हूं जिसे कुछ पर लागू किया जा सकता है।

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