2014-09-04 14 views
6

मुझे अपने ए-लेवल के लिए 3 डी प्रोग्रामिंग के बारे में एक पेपर लिखना है। लेकिन मुझे परिप्रेक्ष्य प्रक्षेपण मैट्रिक्स समझने में गंभीर समस्या मिली और मुझे विस्तार से मैट्रिक्स को पूरी तरह समझा जाना चाहिए। मैंने इस विषय पर कई वेबसाइटों और यूट्यूब वीडियो की खोज की है लेकिन बहुत कम प्रश्न का जवाब देने का प्रयास करें क्यों मैट्रिक्स के पास उस स्थान पर ये मान हैं। इस http://www.songho.ca/opengl/gl_projectionmatrix.html के आधार पर मैं यह पता लगाने में सक्षम था कि डब्ल्यू-पंक्ति कैसे काम करती है, लेकिन मैं अन्य तीनों को समझ नहीं पा रहा हूं।प्रक्षेपण मैट्रिक्स कैसे काम करता है?

मैं सममित व्यूपोर्ट के लिए "सरल" संस्करण केवल उपयोग करने का फैसला (दाएं हाथ Coord।):

![<code>r+l=0,</code>r-l=2r<code>(width);</code>t+b=0<code>,</code>t-b=2t<code>(height);</code>[n/r 0 0 0; 0 n/t 0 0; 0 0 -(f+n)/(f-n) -(2fn)/(f-n); 0 0 -1 0]`[1]

मैं मेरे लिए पहली तीन पंक्तियों की व्याख्या करने के हर प्रयास के लिए बहुत आभारी हूँ!

+3

किसी ने इसे कम करने से पहले, यह वास्तव में एक अच्छा सवाल है। मेरे पास अभी एक बड़ा जवाब लिखने का समय नहीं है, लेकिन यहां इसका सारांश है: 2 डी में एक्स अक्ष के समानांतर रेखा को कुछ दूरी पर y = n x = l से जा रहा है ... r; यह निकट प्रक्षेपण "रेखा" है। अब एक मैपिंग ढूंढें जो इस पंक्ति पर बिंदु -1 ... 1 और एक कारक y_w और ऑफसेट w_w को गुणा करने के लिए y y समन्वय में जोड़ती है ताकि y = n => w = 1 और किसी भी चीज़ के लिए आनुपातिक हो वाई के लिए – datenwolf

उत्तर

8

मैट्रिक्स का मुख्य कारण 3 डी समन्वय को 2 डी विमान में मैप करना है और अधिक दूर की वस्तुएं छोटी हो सकती हैं।

सिर्फ इस एक बहुत सरल मैट्रिक्स suffices के लिए (अपने कैमरे संभालने मूल में है और Z अक्ष को देखकर):

1 0 0 0 
0 1 0 0 
0 0 0 0 
0 0 1 0 

इस मैट्रिक्स के साथ गुणा और फिर renormalizing w समन्वय के बाद आपको ठीक उसी की है। प्रत्येक x,y,z,1 बिंदु x/z,y/z,0,1 बन जाता है।

हालांकि कोई गहराई की जानकारी नहीं है (सभी बिंदुओं के लिए जेड 0 है) तो गहराई बफर/फ़िल्टर काम नहीं करेगा। उस के लिए हम कर सकते हैं मैट्रिक्स के लिए एक एक पैरामीटर तो गहराई से जानकारी उपलब्ध रहता है:

1 0 0 0 
0 1 0 0 
0 0 0 1 
0 0 1 0 

अब जिसके परिणामस्वरूप बिंदु जेड में उलटा गहराई समन्वय होता है। प्रत्येक x,y,z,1 बिंदु x/z,y/z,1/z,1 बन जाता है। (जहां अगर आप इसे से बाहर के हैं बिंदु तैयार नहीं हो सीमांकन बॉक्स) के पैमाने का उपयोग करते हुए और एक का अनुवाद (1,1,1) उपकरण बॉक्स -

अतिरिक्त पैरामीटर (-1,-1,-1) में निर्देशांक मानचित्रण का परिणाम है।

+1

बहुत बहुत धन्यवाद! वास्तव में यह वास्तव में सरल है अगर कोई अंततः आपको एक वाक्य में समझाता है! –

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