Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में Z-बफर या डेप्थ-बफर विधि

z-बफर को गहराई-बफर . के रूप में भी जाना जाता है छिपी हुई सतह का पता लगाने के लिए उपयोग की जाने वाली एक विधि है।

छिपी हुई सतह का पता लगाना

ऐसी किसी भी तस्वीर के लिए जिसमें ऐसी वस्तुएं और सतहें हों जो पारदर्शी हों। इस मामले में, अन्य वस्तुओं के पीछे की वस्तुएं छिपी हुई हैं। छवि के उचित दृश्य के लिए, हमें इन छिपी हुई सतहों को हटाने की आवश्यकता है। पहचान को छिपी हुई सतह की समस्या . कहा जाता है

z-buffer में, हम z-अक्ष में सतहों की तुलना गहराई के रूप में करेंगे।

एल्गोरिदम

Step 1: initialize the depth of all pixel max.
   d(i,j) = infinity
Step 2: Initialize color for all pixels.
   c(i,j) = background-color
Step 3: for each pixel in polygon projection do,
   Step 3.1: find z i.e. depth of projection’s (i,j) pixel.
   Step 3.2: if z < d(i,j) do
      Step 3.2.1 : d(i,j) = z and c(i,j) = color of polygon.

पिक्सेल द्वारा पिक्सेल इस विधि का उपयोग करके, हम विमान के प्रत्येक पिक्सेल की गहराई का पता लगाएंगे। सबसे छोटी सतह बफर का रंग निर्धारित करती है। आम तौर पर, सभी z मान रेंज [0,1] के करीब होते हैं।

z=0, बैक क्लिपिंग प्लेन और z=1, फ्रंट क्लिपिंग प्लेन।

z-बफर के कुछ महत्वपूर्ण बिंदु

  • z-बफर पद्धति को लागू करने के लिए बहुभुजों (विमानों) की प्रारंभिक छँटाई की आवश्यकता नहीं है।

  • विमानों की संख्या अधिक होने पर भी Z-बफर तेजी से परिणाम प्रदान करता है।

  • z-बफर विधि में ऑब्जेक्ट तुलना की आवश्यकता नहीं है।

  • इस पद्धति का उपयोग करके गैर-बहुभुज छिपी वस्तुओं का भी पता लगाया जा सकता है।

  • भंडारण और समाधान के लिए किसी अतिरिक्त डेटा-संरचना की आवश्यकता नहीं है।

  • हार्डवेयर कार्यान्वयन प्रक्रिया को गति देने के लिए संभव है और ग्राफिक वर्कस्टेशन को हल करने में सक्रिय रूप से उपयोग किया जाता है।

  • यह विधि तभी लागू होती है जब विचाराधीन वस्तुएं अपारदर्शी हों अर्थात पारदर्शी वस्तुएं त्रुटि दे सकती हैं।

  • छिपी हुई सतह का आरेखण एक समय लेने वाली प्रक्रिया हो सकती है।


  1. द्विभाजन विधि के लिए C++ कार्यक्रम

    0 और फलन f(x) a और b के बीच होना चाहिए अर्थात f(x) =[a, b ]. कार्य द्विभाजन विधि का उपयोग करके फ़ंक्शन f(x) में अंतराल a और b के बीच स्थित रूट का मान ज्ञात करना है। द्विभाजन विधि क्या है? द्विभाजन विधि का प्रयोग a और b द्वारा परिभाषित दी गई सीमाओं के भीतर फलन f(x) में एक मूल का मान ज्ञात करने के

  1. Linux पर C++ का सबसे अच्छा IDE क्या है?

    केवल टेक्स्ट एडिटर्स पर बड़े प्रोजेक्ट्स को मैनेज करना मुश्किल है। यदि आप ऐसे मामलों में आईडीई का उपयोग करते हैं तो आप अधिक उत्पादक और कम निराश होने की संभावना रखते हैं। विभिन्न प्रकार के आईडीई हैं और आपको अपनी आवश्यकताओं के अनुरूप सही का चयन करना चाहिए। Linux पर C++ के लिए एक भी सर्वश्रेष्ठ IDE नही

  1. मेटाप्रोग्रामिंग की छिपी लागत

    मेटाप्रोग्रामिंग एक बहुत ही फैंसी शब्द की तरह लगता है, लेकिन क्या यह अच्छा है? यह उपयोगी हो सकता है, लेकिन बहुत से लोग यह नहीं समझते हैं कि मेटाप्रोग्रामिंग का उपयोग करने की कुछ लागतें हैं। ठीक वैसे ही हम एक ही पृष्ठ पर हैं… मेटाप्रोग्रामिंग क्या है बिल्कुल? मैं मेटाप्रोग्रामिंग को किसी भी विधि