मैं पिक्सेल कला को कैसे कम करूँ?


14

हैं एल्गोरिदम के बहुत सारे पैमाने पर करने के ऊपर पिक्सेल कला। (मुझे व्यक्तिगत रूप से hxx पसंद है ।) लेकिन क्या इसे नीचे स्केल करने के लिए कोई उल्लेखनीय एल्गोरिदम हैं ? मेरा गेम एक रिज़ॉल्यूशन पर चलने के लिए डिज़ाइन किया गया है 1280x720, लेकिन अगर यह कम रिज़ॉल्यूशन पर खेला जाता है, तो मैं अभी भी इसे अच्छा देखना चाहता हूं।

अधिकांश पिक्सेल कला चर्चा केंद्र 320x200या 640x480सांत्वना एमुलेटर में उपयोग के लिए या आसपास अपसंस्कृति, लेकिन मुझे आश्चर्य है कि बंदर द्वीप रीमेक जैसे आधुनिक 2 डी गेम कम प्रस्तावों पर कैसे अच्छे लग सकते हैं?

निश्चित रूप से संपत्ति के कई संस्करणों (यानी मैपिंग ) के विकल्प की अनदेखी करना ।


Mipmapping संपत्ति के कई संस्करणों की आवश्यकता नहीं है; यह OpenGL या DirectX द्वारा स्वचालित रूप से सामग्री लोड समय पर किया जा सकता है। क्या यह आपके लक्ष्यों को पूरा करेगा?
सेठ बैटन

@SethBattin मुझे यकीन नहीं है। मैं 1280x720 के लिए बना एक खेल चलाने के बारे में सोच रहा हूँ जैसे कि 1024x576। यदि मैं इसे एक छवि देता हूँ जो 128x96 है और इसे 102x76 में प्रदर्शित किया जाना है तो OpenGL और DirectX का उपयोग क्या करना है? (जो भी एक गोलाई मुद्दे के बाद से यह 102.4x76.8 पिक्सल होना चाहिए)
माइकल Stum

Mipmapping छवि को बहुत धूमिल करता है। आप यह नहीं चाहेंगे कि पिक्सलेट के लिए।
क्रॉमस्टर

5
बस FYI करें: मंकी आइलैंड रीमेक को डाउनस्कूलिंग की आवश्यकता नहीं थी। यह गेम ईजीए पर चला और इसका प्रभावी आकार 320x200 पिक्सल था। मोबाइल-डिवाइसेस के लिए इसके डाउनस्कॉल किए गए संस्करण बनाने की कोई आवश्यकता नहीं है, क्योंकि यह पहले से ही इन उपकरणों के संकल्प से छोटा है।
बंमज़ैक

2
आपकी पिक्सेल कला कैसी दिखती है? आप हमसे अंधेपन में जवाब देने को कह रहे हैं।
आआआआआआआआआआ आआआआआ

जवाबों:


14

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

मेरी राय में, ऐसी कई चीजें हैं जो आप कर सकते हैं (कुछ विशेष हैं, लेकिन अन्य नहीं हैं)

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

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

  3. यदि खेल का विस्तार करना संभव नहीं है, तो स्क्रीन के गैर-गेम अनुभागों को काले रंग से भरें; या तो ऊपर और नीचे, बाएँ और दाएँ, या एक काले फ्रेम में धारियाँ। यह वही है जो आईफोन एप्स को आवर्धित मोड में चलाने पर आईपैड करता है। यह भी एमुलेटर में व्यापक रूप से उपयोग किया जाता है।

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

अपने खेल के लिए, मैंने विकल्प नंबर 4 कर दिया, और मैं इस बात से काफी हैरान हूं कि यह ऊर्ध्वाधर पर 320 पिक्सल से लेकर डिवाइस (पुराने एंड्रॉइड 2.3) तक के वर्टिकल (2012 आईपैड) पर 1536 पिक्सल तक कितना अच्छा दिखता है रेटिना डिस्प्ले)। मूल संपत्ति 600 पिक्सेल ऊर्ध्वाधर (मूल रूप से विंडोज पीसी पर 800x600 प्रदर्शन के लिए) के लिए है। हालांकि बाद के खेलों के लिए, मुझे लगता है कि एक बेहतर तार्किक ऊर्ध्वाधर रिज़ॉल्यूशन 720 पिक्सेल है।

खेल बिलीयर फ़िल्टरिंग के साथ डिवाइस के मूल रिज़ॉल्यूशन में स्केल किए गए एक आभासी 600-पिक्सेल उच्च आभासी रिज़ॉल्यूशन का उपयोग करता है। इसका अर्थ है कि सभी इन-कोड Y- निर्देशांक 0 (स्क्रीन के ऊपर) से 600 (स्क्रीन के नीचे) तक जाते हैं।

क्षैतिज आकार के लिए, मुझे लगता है कि अधिकतम चौड़ाई 1080 पिक्सेल है, जो कि सबसे व्यापक 16: 9 पहलू अनुपात को कवर करने के लिए पर्याप्त से अधिक है। मेरे x- निर्देशांक केन्द्रित हैं, इसलिए x = 0 स्क्रीन का केंद्र है, और x-निर्देशांक -540 से दाईं ओर 540 पर जाते हैं। मुझे यकीन है कि सब कुछ -400 और 400 के बीच फिट बैठता है सबसे संकीर्ण डिस्प्ले (4: 3) का समर्थन करने के लिए

हालाँकि, अगर मुझे पिक्सेल आर्ट का अहसास रखना था, तो मैं निश्चित रूप से विकल्प 1 और 2 का उपयोग करूँगा। इसका मतलब है कि मैं केवल पूर्णांक शब्दों में पिक्सेल आर्ट की ब्लॉकी भावना को बनाए रखूँगा, और गेम को डिज़ाइन करूँगा ताकि दृश्यमान की मात्रा बढ़े। टाइलें निश्चित नहीं हैं और किसी भी स्क्रीन रिज़ॉल्यूशन / पहलू अनुपात के अनुकूल हो सकती हैं।

तो, आपके प्रश्न का उत्तर (नहीं) देने के लिए। मुझे लगता है कि डाउनसेलिंग पिक्सेल कला एक बहुत बुरा विचार है, इसलिए आपको ऐसा नहीं करना चाहिए। अलग-अलग स्क्रीन रिज़ॉल्यूशन का समर्थन करने के अन्य तरीके हैं जो आपकी ध्यान से बनाई गई कला को बुच करने की तुलना में बेहतर परिणाम प्रदान करेंगे।


मैं उसी स्थिति में हूं और यह मुझे पागल कर रहा है। हमारा गेम 600px ऊंचाई स्क्रीन के लिए बनाया गया है। लेकिन अगर मैं 720p स्क्रीन (पीसी) तक पहुंचता हूं, तो यह वास्तव में भयानक, थोड़ा धुंधला दिखता है। मैं वास्तव में नहीं जानता कि यहाँ क्या करना है। मैंने 720p स्क्रीन के लिए एक बड़ा मानचित्र बनाने और पिक्सेलर को रखने के बारे में भी सोचा था, लेकिन फिर मुझे 1080p स्क्रीन के लिए भी यही समस्या है। मुझे लगता है कि हमें 360p पिक्सेलआर्ट (या छोटा) करना चाहिए था, इसलिए हमारे पास 720 और 1080p स्क्रीन के लिए एकदम सही x2 और x3 स्केलिंग होगी। अब उसके लिए बहुत देर हो चुकी है। कोई और विचार या सलाह?
दामियन

8

वास्तव में विकास के समय में कम किए गए संस्करणों को उत्पन्न करने पर विचार करें, और उन्हें खेल में सीधे एक संसाधन के रूप में शामिल करें। फ़ोटोशॉप के साथ ऐसा करें या जो भी टूल आपको मिले वह आपको पसंद आए। फिर खेल को गतिशील रूप से वर्तमान रिज़ॉल्यूशन के लिए उपयुक्त सही कला सेट का चयन करें।

यहाँ कुछ कारणों से आप ऐसा कर सकते हैं ...

प्रसंस्करण कार्य बचाता है

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

ग्रेटर कलात्मक नियंत्रण

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

गतिशील स्केलिंग बिल्कुल सही नहीं है

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

अन्य विचार

आप एक हाइब्रिड एप्रोच भी कर सकते हैं, जिसमें रिज़ॉल्यूशन-विशिष्ट संसाधनों का एक सेट होता है, जहाँ उपयोग किया जाता है, और एक जेनेरिक सेट जो गतिशील रूप से छोटा होता है यदि कोई रिज़ॉल्यूशन-विशिष्ट संस्करण नहीं मिलता है। यह थोड़ा सा है कि एंड्रॉइड प्लेटफ़ॉर्म कैसे काम करता है। इस बारे में कुछ जानकारी http://developer.android.com/guide/practices/screens_support.html पर देखें


0

नीचे आकार बदलने से आकार बदलना आसान है क्योंकि आप अंतराल में भरने के लिए नई (और संभवतः गलत) जानकारी का आविष्कार करने के बजाय दूर फेंकने के लिए जानकारी चुन रहे हैं। इस बात को ध्यान में रखते हुए, आपको शायद यहाँ कुछ विशेष करने की आवश्यकता नहीं है और छवि प्रसंस्करण के क्षेत्र से अधिकांश मानक resampling एल्गोरिदम को एक छवि को स्केल करने के लिए काफी अच्छी तरह से काम करना चाहिए: बिलिनियर, गॉसियन, लैंक्ज़ोस, आदि।

लैंक्ज़ोस विशेष रूप से एक दिलचस्प विकल्प हो सकता है क्योंकि यह छवि को तेज करता है, संभवतः विस्तार को संरक्षित करता है जो अन्यथा कई पिक्सेल को एक में जोड़ते समय खो जाएगा। जाहिर है यह अवांछित कलाकृतियों को पेश करने की लागत पर आता है।

कुछ दृश्य तुलना यहाँ: /gis/10931/what-is-lanczos-resampling-useful-for-in-a-spatial-context


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