c - सतह और बनावट के बीच अंतर(एसडीएल/सामान्य)




graphics sdl (3)

क्या कोई मुझे सरल शब्दों में समझा सकता है बनावट और सतह के बीच क्या अंतर है? मैंने देखा कि यह SDL2 में SDL2 और SDL_Texture रूप में उपयोग किया जाता है। SDL_Texture से बनाया गया है जो बदले में छवि / बिटमैप से बनाया गया है। दोनों पिक्सल का संग्रह हैं। लेकिन मुझे उनके बीच मुख्य अंतर नहीं दिख रहा है (जीपीयू के साथ कुछ करना है?)

मैंने इसे Google पर करने का प्रयास किया लेकिन मुझे मिली सभी स्पष्टीकरण कंप्यूटर ग्राफिक्स सामानों में गहराई से खोदने के बिना उन्हें समझने के लिए बहुत जटिल थे।


असल में आपकी धारणा "जीपीयू के साथ कुछ करना है?" सही है।

SDL_Surface सॉफ्टवेयर प्रतिपादन में प्रयोग किया जाता है। सॉफ्टवेयर प्रतिपादन के साथ, saloomi2012 सही ढंग से ध्यान दिया गया है, आप छवि डेटा स्टोर करने के लिए नियमित RAM का उपयोग कर रहे हैं। इस प्रकार, ज्यादातर मामलों में आप सीधे सतह से जुड़े डेटा बफर तक पहुंच सकते हैं, इसकी सामग्री को संशोधित कर सकते हैं, यानी यह सीपीयू का उपयोग कर रहा है, इसलिए सॉफ्टवेयर का नाम।

दूसरी तरफ SDL_Texture , हार्डवेयर प्रतिपादन में प्रयोग किया जाता है, बनावट SDL_Texture में संग्रहीत होती है और आपके पास SDL_Texture साथ सीधे इसका उपयोग नहीं होता है। प्रतिपादन संचालन GPU द्वारा, आंतरिक रूप से, ओपनजीएल या डायरेक्टएक्स (केवल विंडोज़ पर उपलब्ध) एपीआई का उपयोग करके तेज़ किया जाता है, जो बदले में आपके वीडियो हार्डवेयर का उपयोग कर रहे हैं, इसलिए हार्डवेयर प्रतिपादन का नाम।

कहने की जरूरत नहीं है कि हार्डवेयर प्रतिपादन सॉफ़्टवेयर प्रतिपादन की तुलना में तीव्रता के क्रम से है और हमेशा प्राथमिक विकल्प के रूप में माना जाना चाहिए।


इसमें इसके बारे में अधिक जानकारी है:

https://thenumbat.github.io/cpp-course/sdl2/05/05.html

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

मुझे उम्मीद है इससे आपको मदद मिली होगी!


सतहें आपकी रैम का उपयोग करती हैं और बनावट आपके वीडियो कार्ड का उपयोग करती हैं जो सतहों की तुलना में अधिक तेज़ है।







sdl-2