एक बार, रंग और गहराई बफ़र्स को साफ़ करने में वास्तव में समय लगा। एक स्पष्ट करने का मतलब है कि ग्राफिक्स कार्ड को फ्रेमबफ़र के प्रत्येक पिक्सेल को चलना होगा और इसके लिए एक मूल्य लिखना होगा।
इस वजह से, गेम डेवलपर्स ने पाया कि यह केवल यह मानने के लिए अधिक कुशल होगा कि हर पिक्सेल को फिर से प्रस्तुत किया जाएगा। उन्होंने ऐसा करने के लिए कई तकनीकों का विकास किया।
रंग बफर को अनदेखा करना सबसे आसान है। कम आसान गहराई बफर है, क्योंकि यह पुराने डेटा के साथ प्रदूषित होगा। इसलिए उन्होंने जो किया वह सरल था।
फ्रेम 0 पर, वे glDepthRange
(0, 0.5) के (या डी 3 डी समतुल्य) के साथ प्रस्तुत करेंगे , और वे एक (या ) glDepthFunc
का उपयोग करेंगे । इसका मतलब है कि अब तक की गहराई बफ़र में आपको सबसे दूर की गहराई का मान 0.5 है। तो फ्रेम 0 के अंत में गहराई बफर में सबसे बड़ा मूल्य 0.5 है (यह मानते हुए कि आपने प्रत्येक पिक्सेल को लिखा है)।GL_LESS
GL_LEQUAL
फ्रेम 1 पर, वे गहराई रेंज को (1, 0.5) में बदल देंगे। ध्यान दें कि इस मामले में, निकट गहराई मूल्य दूर की गहराई से बड़ा है। लेकिन वे गहराई के फंक को भी GL_GREATER
(या GL_GEQUAL
) में बदल देंगे , जो गहराई परीक्षण के अर्थ को उलट देता है। क्योंकि गहराई बफ़र में सबसे बड़ा मान 0.5 है, आप जो कुछ भी लिखते हैं उसका मूल्य इस से बड़ा होगा। चूंकि गहराई परीक्षण को उलट दिया गया था, इसका प्रभावी रूप से मतलब है कि फ्रेम 0 पर जो कुछ भी लिखा गया था वह अब उस चीज़ से बहुत दूर है जो संभवतः फ्रेम 1 पर लिखा जा सकता है। फ्रेम 1 के अंत में, गहराई बफर में सबसे छोटा मान अब 0.5 है।
और फिर वे दोहराते हैं।
2003 के बाद से बने किसी भी हार्डवेयर पर, यह अब अनुकूलन नहीं है। वास्तव में, यह एक नकारात्मक अनुकूलन है । गहराई बफ़र को साफ़ करना वास्तव में हार्डवेयर को तेज़ बनाता है । सच में नहीं।
असल में, क्या होता है कि समाशोधन बफ़र्स वास्तव में कुछ भी नहीं लिखते हैं। वे GPU के कैश में कुछ बिट्स संग्रहीत करते हैं जो सिस्टम को यह बताते हैं कि उन्हें किस रंग / गहराई से साफ़ किया गया है। जब सिस्टम फ़्रेमबफ़र की कैश लाइन पर लिखने की कोशिश करता है, तो यह पढ़ने में परेशान नहीं होता है कि वहाँ क्या है, क्योंकि यह पहले से ही जानता है कि यह स्पष्ट रंग / गहराई मान का एक खाली क्षेत्र है। यदि आप वहाँ क्या है या गहराई से परीक्षण करते हैं, के साथ फिर से मिश्रण करने की कोशिश करते हैं, तो पढ़ने की कोई आवश्यकता नहीं है: यह जानता है कि मिश्रण / परीक्षण को किस मूल्य के साथ / खिलाफ करना है।
तो हर पहली बार पढ़ने / संशोधित / लिखना जो आप स्पष्ट रूप से लिखने के बाद प्रत्येक कैश लाइन पर करते हैं। यह मुफ़्त है ।
इसके अलावा, एक दांतेदार गहराई वाले बफ़र हार्डवेयर में हाइपर-ज़ेड / हियरार्कियल-ज़ेड / ज़ेड-कुलिंग ऑप्टिमाइज़ेशन के खिलाफ काम कर सकते हैं। हां, आपका दृश्य उन लोगों के खिलाफ काम करेगा जो अंततः आप विवरण जोड़ते हैं। लेकिन अगर आपकी गहराई बफर पिछले रेंडरिंग से दांतेदार है, भले ही उन पृष्ठभूमि की वस्तुएं पृष्ठभूमि में हों, यह जेड-कुलिंग तकनीकों की दक्षता को प्रभावित कर सकता है। और यह प्रदर्शन में मदद करने वाला नहीं है।
इसलिए आपको आधुनिक खेलों में इस गहराई से उलट तकनीक कभी नहीं करनी चाहिए ।
नोट: जरी टाइल-आधारित प्रतिपादन आर्किटेक्चर (जैसा कि अधिकांश मोबाइल प्लेटफार्मों में पाया जाता है) पर एक अच्छा बिंदु बनाता है। गहराई साफ न करने से वहां चीजें भी अप्रिय हो सकती हैं।