स्टेंसिल बफर का उद्देश्य क्या है? अधिक सटीक रूप से, कंप्यूटर ग्राफिक्स में एक स्टैंसिल क्या है?


41

मैं स्टैंसिल शब्द बहुत पढ़ता हूं, और मुझे कोई सुराग नहीं है कि कंप्यूटर ग्राफिक्स में इसका वास्तविक उद्देश्य क्या है।

विकिपीडिया पर काले और सफेद रंग में चित्र देखकर, मुझे अभी भी इससे समस्या है।

हम एक स्टैंसिल या स्टैंसिल बफर का उपयोग क्यों करते हैं, और जेड-बफर के साथ क्या अंतर है? इस शब्द का उपयोग क्यों करते हैं जो ग्राफिक डिजाइन में कुछ अर्थ लगता है?


महान सवाल, मुझे पता है कि यह छायांकन प्रदान करने के लिए उपयोग किया जाता है ... लेकिन मुझे इसकी पूरी व्याख्या सुनने में दिलचस्पी होगी!
रिकेट्स

जवाबों:


40

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

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

  1. स्टैंसिल बफर को गोल आयताकार आकार प्रदान करें।
  2. Stencilling सक्षम करें।
  3. नियमित बफर पर पीछे की ओर इशारा करने वाले दृश्य को रेंडर करें।

स्टैंसिल फिर इसे बाहर निकाल देगा ताकि आप केवल दर्पण के आकार में आ सकें।

अब जबकि रेंडर पाइपलाइन बहुत अधिक लचीली और प्रोग्राम योग्य हैं, स्टैंसिल बफ़र्स का उपयोग सिर्फ एक सामान्य 1-बिट फ्रेमबफ़र के रूप में किया जाता है, जिसे आप जो चाहें कर सकते हैं। छाया एक सामान्य उपयोग का मामला है।


10
दूसरे शब्दों में, यह मूल रूप से वास्तविक जीवन स्टैंसिल के रूप में एक ही कार्य करता है, स्याही लगाते समय भागों को मास्किंग करता है।
काज

4
इन दिनों लगभग सभी डिवाइस 8-बिट स्टैंसिल बफर का समर्थन करते हैं।
क्रिस हॉवे

मुझे वास्तव में आपका उदाहरण नहीं मिला, यह ऐसा है जैसे कोई दूसरा फ्रस्ट्रम है? क्या यह दृश्य के दूसरे भाग को व्यवस्थित करता है? क्या आप छाया के साथ एक उदाहरण दे सकते हैं?
जोकून

यह सिर्फ एक दूसरा फ्रेम बफर है। इससे पहले कि आप इसे प्रस्तुत करें (जो कि मुझे लगता है कि छाया प्रणालियां ऐसा करती हैं) के लिए आप हमेशा निराशा को बदल सकते हैं, लेकिन यह मुख्य अवधारणा का हिस्सा नहीं है।
उदार

9

स्टैंसिल बफ़र्स के कार्यात्मक उपयोग के अलावा जो लोग पहले से ही चर्चा कर चुके हैं, स्टैंसिल बफ़र्स का उपयोग अनुकूलन के लिए भी किया जा सकता है।

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


4

यह सिर्फ एक बफर है जो पॉलीगॉन प्रदान किए जाने पर पिक्सल को नियंत्रित करता है। प्रत्येक पिक्सेल के लिए, एक समान स्टैंसिल मूल्य होता है, और इन मूल्यों के आधार पर पिक्सेल को सशर्त रूप से संशोधित / अनदेखा किया जा सकता है

यह सबसे सरल है, इसे एक भौतिक स्टैंसिल की तरह इस्तेमाल किया जा सकता है - एक मुखौटा जो कुछ पिक्सल को माध्यम से अनुमति देता है, और अन्य पिक्सल को संशोधित करने से रोकता है।

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

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