अच्छा, आपकी स्क्रीन 2 डी सतह पर एक 3 डी सतह पर प्रोजेक्ट करना आवश्यक है क्योंकि आपकी स्क्रीन 2 डी सतह है।
3 डी ग्राफिक्स विभिन्न "समन्वय रिक्त स्थान" में काम करता है, और इन्हें अंतिम दृश्य प्राप्त करने के लिए बीच में परिवर्तित किया जाता है।
उदाहरण के लिए एक शहर मॉडलिंग की कल्पना करें। आप मानचित्र के निचले बाएं कोने को (0, 0), और शीर्ष दाएं (1000000, 1000000) के रूप में परिभाषित कर सकते हैं। आप यह भी कह सकते हैं कि एक नियम के रूप में, एक बिंदु वास्तविक स्थान के एक पैर का प्रतिनिधित्व करेगा। यह प्रतिनिधित्व हम विश्व अंतरिक्ष को बुलाएंगे।
अपने शहर को आकर्षित करने के लिए, आप भवनों के कुछ मॉडल आयात करना चाहते हैं, और उन्हें दुनिया में रखना चाहते हैं। तो आपको एक इमारत का मॉडल मिल गया है, लेकिन जब आप यह मॉडल बना रहे हैं, तो आप दुनिया के आकार या जहां यह होंगे, के बारे में चिंता करने की ज़रूरत नहीं है - आप शायद कहेंगे कि इमारत का निचला बायां कोने है पर (0, 0) और इसका शीर्ष दाएं (1, 1) पर है। यह प्रतिनिधित्व हम मॉडल स्पेस को कॉल करेंगे। हालांकि दुनिया में, इमारत को 104 (136, 136) पर रखा जा सकता है और आप इसे 1000x1000 पिक्सेल होना चाहते हैं, इसलिए आपको इसे (104, 136) में अनुवाद करना होगा और इसे 1000x तक स्केल करना होगा। यह इसे मॉडल स्पेस से वर्ल्ड स्पेस में परिवर्तित कर रहा है।
अंत में, कैमरा स्पेस यह है कि आप दुनिया में कैसे घूमते हैं। यदि आप इसके बारे में सोचते हैं, तो दुनिया भर में घूमने पर दो तरीकों से विचार किया जा सकता है (कम से कम): आप दुनिया भर में जाते हैं, या दुनिया आपके चारों ओर घूमती है। तो आंदोलन को आसान बनाने के लिए, हम कहेंगे कि कैमरा हमेशा धुरी (0, 0) पर कुछ धुरी का सामना कर रहा है। अब अगर आप 10 पिक्सेल आगे बढ़ना चाहते हैं, तो आप बस सब कुछ 10 पिक्सेल वापस ले जाएं। यदि आप घूमना चाहते हैं, तो इसके बजाय दुनिया को घुमाएं। तो इमारत को प्रस्तुत करने के लिए, पहले हम इसे मॉडल स्पेस से वर्ल्ड स्पेस में बदलना चाहते हैं। अब, वास्तव में इसे आकर्षित करने के लिए, हम जानना चाहते हैं कि यह दर्शक के सापेक्ष कहां है, इसलिए हम इसे विश्व अंतरिक्ष से कैमरा स्पेस तक ले जाते हैं।
। । ।
एक तरफ, यदि आप इसे बहुत अच्छी तरह से समझना चाहते हैं, तो एक अच्छा अभ्यास एक 3 डी वायरफ्रेम रेंडरर लिखना है, ओपनजीएल से अलग। आपका एकमात्र ड्राइंग फ़ंक्शन उपलब्ध है ड्रॉलाइन (x1, y1, x2, y2) जो स्क्रीन पर एक रेखा खींचता है (x1, y1) से (x2, y2)।
क्षमा करें, मुझे यह स्पष्ट करना चाहिए था: मुझे पता है कि 3 डी दुनिया को 2 डी सतह पर प्रोजेक्ट करना क्यों आवश्यक है। मुझे नहीं पता था कि कैमरे की जगह इस अंत तक क्यों जरूरी या उपयोगी थी। – newprogrammer