गहराई बफ़र को लिखे गए मानों की श्रेणी वे हैं जो आप चाहते हैं कि वे हों। आमतौर पर वे 0-टू -1 श्रेणी में आते हैं। गहराई बफ़र में लिखा गया वास्तविक मान व्यूपोर्ट ट्रांसफ़ॉर्मेशन के दौरान परिकलित होता है, जो NDC स्पेस में वर्टेक्स के Z मान पर आधारित होता है (क्लिप स्पेस में w द्वारा विभाजित दृष्टिकोण के बाद)।
NDC डेप्थ वैल्यू (Z, W के परिप्रेक्ष्य के विभाजन के बाद) व्यूपोर्ट ट्रांसफॉर्मेशन की गहराई वाले हिस्से से मापी गई है (जो आपके X और Y निर्देशांक को एक समन्वयित स्थान में लाती है जिसे आप विंडो में पिक्सल के साथ जोड़ते हैं), और फिर स्केल किया गया (2^n-1)
- इसका मतलब "टू द पावर टू" के रूप में पढ़ा जाना है n
- n
यह गहराई बफ़र की थोड़ी सी सटीकता है। परिणामी मान गहराई बफ़र को लिखा जाता है।
OpenGL ने व्यूपोर्ट ट्रांसफॉर्मेशन मैट्रिक्स की परिभाषा glViewport और glDepthRange कॉल्स में विभाजित की है। glDepthRange वह गहराई सीमा निर्धारित करने के लिए जिम्मेदार स्केल फैक्टर को नियंत्रित करता है जिसके बारे में आप पूछ रहे हैं। आप वर्तमान सीमा को पुनर्प्राप्त करने के लिए चयनकर्ता के साथ glGetFloatv पर कॉल कर सकते हैं GL_DEPTH_RANGE
। यह आपको 0 से 1 के मान के बिना सीमा का उपयोग करने की अनुमति देगा (हालांकि समय का 99.9%, व्यवहार में, कोई भी इसे कभी भी नहीं बदलता है)।
आगे पढ़ते हुए, यदि आप चाहते हैं कि आंख के स्थान से गहराई बफर तक जेड मान का पालन करने के लिए गणित का पुनर्निर्माण कैसे किया जाए।