अधिकांश प्रमुख खेल इंजन एनिमेटेड बनावट के लिए gif का उपयोग क्यों नहीं करते हैं?


28

एनिमेशन शीट्स या Gif का उपयोग करने के लिए बेहतर क्या है? एनीमेशन शीट्स पर एक लाभ Gifs का यह है कि आपको अपने कोड के कारण बहुत तेज या बहुत धीमी गति से चलने के बारे में सोचने की जरूरत नहीं है और उचित टिक में अपडेट करना है।

Gifs और फायदे का उपयोग करने के क्या नुकसान हैं?


7
तब शायद आपको अपना प्रश्न कुछ इस तरह से लिखना चाहिए "अधिकांश प्रमुख खेल इंजन एनिमेटेड बनावट के लिए gif का उपयोग क्यों नहीं करते हैं?" जैसा कि वे आम तौर पर नहीं हैं, कम से कम मुझे पता है कि अच्छे कारणों के लिए। मुझे लगता है कि वे आपको तकनीकी बिंदु देंगे कि उनका उपयोग क्यों नहीं किया जाता है, जो कि बेहतर सवाल है, जो एसई साइटों के लिए उपयुक्त नहीं हैं।
कोबर्न

39
One advantage Gifs have over Animation Sheets is that you don't have to think about frames going too fast or too slowयह क्यों? उस धारणा को बनाने के लिए आप किस पर निर्भर हैं? एक पुस्तकालय? फ़ाइल प्रारूप विनिर्देश? एक gif फ़ाइल अभी भी डेटा है, आपको अभी भी इसे व्याख्या करने के लिए कोड की आवश्यकता है (इसे सही गति से प्रस्तुत करें)
hoffmale

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

12
आपकी स्प्राइटशीट और जीआईएफ कोड के बीच एकमात्र अंतर यह है कि आपका जीआईएफ कोड जीआईएफ को
स्प्राइटशीट

6
gif का कोई लाभ नहीं है। अगर आप इंटर-फ्रेम कम्प्रेशन चाहते हैं, तो एक उचित वीडियो कोडेक की तुलना में gif लगभग 30 गुना कम कुशल है, जबकि खराब गुणवत्ता (फोटोलेस्टिक सामान के लिए) भी दे रहा है।
सर्ज बोर्स्च

जवाबों:


91

GIF कमियां:

  • बहुत सीमित रंग पैलेट, आमतौर पर बदसूरत dithering के साथ 256 रंग ( हाँ, आप एनिमेटेड GIF में 256 से अधिक रंग हो सकते हैं , लेकिन यह असामान्य है)
  • GPU हार्डवेयर में GIF संपीड़न का समर्थन नहीं करते हैं (इसका मतलब है कि आपको उन्हें सीपीयू पर वैसे भी अनपैक करना होगा)
  • आप केवल पारदर्शिता के लिए एक रंग लेने के लिए (जब तक कस्टम प्रसंस्करण को लागू नहीं करते)
  • कोई यादृच्छिक पहुँच नहीं। सभी पूर्ववर्ती GIF फ़्रेमों को फ़्रेम तक पहुंचने के लिए पढ़ने और विघटित होने की आवश्यकता होती है।
  • संकुचित हो रहा है। आपको कोड में समर्पित डीकंप्रेसन फ़ंक्शन की आवश्यकता है। आप अलग-अलग (बेहतर) संपीड़न एल्गोरिदम नहीं चुन सकते। (हाँ, असम्पीडित GIF भी मौजूद है , लेकिन यह असामान्य है)

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

एनीमेशन शीट्स पर एक लाभ Gifs का यह है कि आपको अपने कोड के कारण बहुत तेज या बहुत धीमी गति से चलने के बारे में सोचने की जरूरत नहीं है और उचित टिक में अपडेट करना है।

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

बेशक कुछ गेम इंजन पर्दे के पीछे जीआईएफ के कुछ मुद्दों को छिपा सकते हैं, लेकिन फिर, स्प्रिटशीट के साथ भी इसे बेहतर तरीके से किया जा सकता है।

कहा कि, ऐसे कुछ मामले हैं जहां जीआईएफ काम कर सकता है । उदाहरण के लिए HTML / CSS GUI, लेकिन ये अपने आप में काफी दुर्लभ और संसाधन-भूख ​​हैं।


मुझे समझ नहीं आता "पारदर्शिता के लिए एक रंग।" पारदर्शिता के लिए कई रंगों के होने का क्या मतलब है? क्या आप अलग-अलग अल्फा मानों के बारे में बात कर रहे हैं जैसे कि एक बनावट में पारदर्शिता ढाल लागू करना?
एरिक

3
@ वास्तव में वही। आम GIF 256 रंगों का समर्थन करता है, जिनमें से सिर्फ 1 को पारदर्शी होने के लिए चिह्नित किया जा सकता है। अन्य प्रारूपों के विपरीत, जहां पारदर्शिता में आमतौर पर बहुत व्यापक सीमा होती है।
Kromster का कहना है कि

@Kromster वास्तव में, संसाधन प्रेमी साइटें एनिमेटेड छवियों के लिए कस्टम एनीमेशन तंत्र का उपयोग करती हैं, जैसे सीएसएस background-imageस्थिति एनीमेशन जहां एनीमेशन एक बड़ी छवि पर चिपकाया जाता है, जिसे फिर ऑफ़सेट द्वारा स्थानांतरित किया जाता है।
टोमैटो ज़ाटो -

@ TomášZato सच। क्षमा करें, क्या मैं अन्यथा राज्य करता था?
क्रॉस्टर का कहना है कि

2
@ luk32 यह एक खामी है क्योंकि पुराने जीआईएफ संपीड़न की तुलना में बेहतर संपीड़न तरीके हैं। तो आप या तो सबॉप्टिमल जीआईएफ संपीड़न का उपयोग करते हैं या (डी) दो बार संपीड़ित करते हैं (ध्यान दें कि पहले से संपीड़ित डेटा को संपीड़ित करना आमतौर पर बड़े आकार में भी पैदावार करता है)।
क्रॉम्स्टर का कहना है कि

32

खेल में किसी भी छवि फ़ाइल को बनावट के रूप में उपयोग करने के लिए, GPU पर बनाई गई बनावट होनी चाहिए और छवि फ़ाइल में पिक्सेल डेटा को उस बनावट में लोड किया जाना चाहिए।

GPUs ऐसी कई विशेषताओं का समर्थन नहीं करते हैं जो CPU पर छवि फ़ाइलों का समर्थन करती हैं। वे JPG संपीड़न का समर्थन नहीं करते हैं, वे PNG संपीड़न का समर्थन नहीं करते हैं, और GIF के लिए विशेष संदर्भ के साथ, वे ऑटो-एनीमेशन का समर्थन नहीं करते हैं

तो भले ही आपने GIF फाइल का उपयोग किया हो, फिर भी आपको अपना एनीमेशन और टाइमिंग कोड वैसे भी लिखना होगा। GIF आपको कुछ नहीं देता है।


30
ध्यान दें कि "सीपीयू" उन चीजों का समर्थन नहीं करता है, जो वेब ब्राउज़र और ऑपरेटिंग सिस्टम करते हैं।
user253751 21

7
क्या, किसी ने भी अभी तक एक GPGPU वेब ब्राउज़र नहीं लिखा है?
केमिली गौडेय्यून

7
@CamilleGoudeseune आप हंसते हैं। मैं रोता हूँ।
डीएवी

13

जीआईएफ में एक सीमित रंग पैलेट है। (२५५) आपको जीआईएफ को पार्सिंग और एनिमेट करना होगा। इसलिए समय में न तो उन्नति होती है और न ही प्रारूप के तकनीकी पहलुओं में।


4
256 यदि आपको पारदर्शिता की आवश्यकता नहीं है, तो 255 प्रभावी हैं।
बजे एक CVn

@ MichaelKjörling पारदर्शिता के साथ यह अभी भी 256 है - रंगों में से केवल एक को "पारदर्शी" नामित किया गया है। मेरा मानना ​​है कि हेडर में जानकारी संग्रहीत है।
डीएवी सेप

@DavidLively इसलिए "प्रभावी"। रंग अभी भी है, लेकिन इसका उपयोग अपारदर्शी रंग के रूप में नहीं किया जा सकता है।
एक सीवीएन

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