2012-02-21 11 views
5

सबसे पहले मुझे आश्चर्य हुआ कि क्यों एनडीसी 0 से 1 के बजाय -1 से 1 तक है। मुझे लगा कि शायद केंद्र में मूल कुछ के लिए उपयोगी है।सामान्यीकृत डिवाइस समन्वय प्रणाली बाएं हाथ क्यों है?

लेकिन यह बाएं हाथ की समन्वय प्रणाली का उपयोग क्यों कर रहा है?

क्या यह इतना हो सकता है कि ज़ेड-वैल्यू ऑब्जेक्ट्स के लिए दूर से अधिक हो? यह मेरे लिए एक अच्छा कारण होगा।

+0

मुझे समझ में नहीं आता कि एक केंद्रित उत्पत्ति का अर्थ है कि यह "बाएं हाथ" है ... –

+0

मैंने कभी इसका निषेध नहीं किया। यहां देखें: http://www.songho.ca/opengl/gl_projectionmatrix.html मेरा प्रश्न दोहराया। –

+1

दाएं हाथ की प्रणाली बेहतर क्यों होगी? – cmannett85

उत्तर

11

लेकिन यह बाएं हाथ की समन्वय प्रणाली का उपयोग क्यों कर रहा है?

चलो उस प्रश्न पर "डिफ़ॉल्ट रूप से" जोड़ें। क्योंकि इसे बदलने के लिए आवश्यक सभी को glDepthRange(1.0f, 0.0f); है और अब आप दाएं हाथ से हैं। और हाँ, यह पूरी तरह से कानूनी जीएल वाक्यविन्यास है; वहां कोई प्रतिबंध नहीं रहा है कि ज़ेड के पास की सीमा ज़ेड से ज़्यादा दूरी से कम है।

डिफ़ॉल्ट रूप से बाएं हाथ क्यों है? शायद एआरबी पर किसी ने इसे इस तरह पसंद किया। हो सकता है कि एआरबी पर किसी को घटने की बजाय बढ़ती गहराई की रेंज पसंद आए, और निचले बाएं कोने अभिविन्यास ने आवश्यक बना दिया। हो सकता है क्योंकि ओपनजीएल, आईआरईएक्स जीएल के प्रजननकर्ता ने ऐसा किया और एआरबी को इसे बदलने की जरूरत नहीं थी।

इसका कारण असमान है; सौहार्द पूरी तरह से एक उल्लेखनीय सुविधा है। कुछ स्थानों पर, दाहिने हाथ समझ में आता है। दूसरों में, बाएं हाथ समझ में आता है। और चूंकि यह मामूली रूप से बदला जाता है, केवल आपके लिए जो काम करता है उसका उपयोग करें।

यह तब सब कुछ के साथ संगत होगा।

के साथ संगत और सब कुछ? हटाए गए सभी फ़ंक्शन-फ़ंक्शन सामान को हटा दिया गया है?

व्यूपोर्ट ट्रांसफॉर्म आंतरिक रूप से ओपनजीएल द्वारा किया जाता है, जहां कोई भी इसे प्राप्त नहीं कर सकता है। आप एक मैट्रिक्स भी प्रदान नहीं करते हैं; आप बस एक व्यूपोर्ट और गहराई सीमा प्रदान करते हैं। तो फिक्स्ड-फ़ंक्शन जीएल का उपयोग करके किसी के परिप्रेक्ष्य से, सबकुछ वास्तव में सही है।

कशेरुक शेडर्स से सीधे निपटने के दौरान हाथों में भी एकमात्र समय आता है, जहां आपको पता होना चाहिए कि क्लिप-स्पेस की शक्ति क्या है। और उस स्थिति में, सौहार्द में परिवर्तन जेड को अस्वीकार करने वाले परिप्रेक्ष्य प्रक्षेपण का एक सरल कार्य है। या, यदि आप बाएं हाथ के निर्देशांक पसंद करते हैं, तो परिप्रेक्ष्य प्रक्षेपण ज़ेड को अस्वीकार नहीं करता है या फिर, glDepthRange को वापस ले जाएं और अब तुम सही हो

7

लेकिन यह बाएं हाथ की समन्वय प्रणाली का उपयोग क्यों कर रहा है?

ताकि गहराई बफर के मूल्यों को बढ़ाने के लिए दिशा दिशा मानचित्र में प्रक्षेपण विमान से दूरी बढ़ाना।

क्या यह इतना हो सकता है कि ज़ेड-वैल्यू ऑब्जेक्ट्स के लिए दूर से अधिक हो? यह मेरे लिए एक अच्छा कारण होगा।

ठीक है, यही कारण है कि यह वही है।

0

लगता है कि हाथ में परिवर्तन का अनुमान है कि ग्राफिक्स कार्ड जेड मानों की व्याख्या कैसे करते हैं।ग्रेटर जेड मान -> अधिक गहराई। सौहार्द के अंतर्निहित परिवर्तन अतिरिक्त लागत के बिना प्रोजेक्शन मैट्रिक्स द्वारा किया जा सकता है। इसे बाद में बदलना एक अतिरिक्त गणना चरण जोड़ देगा।

संबंधित मुद्दे