मैं ऑर्थोग्राफिक प्रोजेक्शन का उपयोग करके 2 डी इंजन के लिए फ्रंट-टू-बैक रेंडरर पर काम कर रहा हूं। मैं ओवरड्रॉ से बचने के लिए गहराई बफर का उपयोग करना चाहता हूं। मेरे पास 16-बिट डेप्थ बफर है, Z = 100 पर एक कैमरा Z = 0, zNear 1 है, और zFar 1000 देख रहा है। प्रत्येक स्प्राइट रेंडर अपने Z को-ऑर्डिनेट्स को तेजी से दूर होने वाले मानों पर सेट करता है, जिससे गहराई परीक्षण को रेंडर करने की अनुमति मिलती है जो कुछ भी नीचे है।
हालाँकि मुझे पता है कि Z बफ़र मान के साथ Z स्थिति समाप्त होने का तरीका गैर-रैखिक है। मैं 16 बिट गहराई बफ़र के पूर्ण रिज़ॉल्यूशन का उपयोग करना चाहता हूं, अर्थात 65536 अद्वितीय मूल्यों की अनुमति देता हूं। इसलिए प्रत्येक स्प्राइट के लिए, मैं Z की स्थिति को अगले अद्वितीय गहराई बफ़र मूल्य से संबंधित करने के लिए Z स्थिति को बढ़ाना चाहता हूं।
दूसरे शब्दों में, मैं एक वृद्धिशील अनुक्रमणिका (0, 1, 2, 3 ...) को मोड़ना चाहता हूं, ताकि प्रत्येक स्प्राइट के लिए उपयुक्त जेड स्थिति में एक अद्वितीय गहराई बफर मान हो। मुझे इसके पीछे के गणित पर यकीन नहीं है। यह करने के लिए गणना क्या है?
नोट मैं WebGL (मूल रूप से OpenGL ES 2) में काम कर रहा हूं, और मुझे हार्डवेयर की एक विस्तृत श्रृंखला का समर्थन करने की आवश्यकता है, इसलिए जबकि gl_FragDepth जैसे एक्सटेंशन इसे आसान बना सकते हैं, मैं इसे संगतता कारणों से उपयोग नहीं कर सकता।