कंप्यूटर ग्राफिक्स में सजातीय निर्देशांक क्यों उपयोग किए जाते हैं?
यदि मैट्रिक्स परिवर्तनों में समरूप निर्देशांक का उपयोग नहीं किया गया तो क्या समस्या होगी?
कंप्यूटर ग्राफिक्स में सजातीय निर्देशांक क्यों उपयोग किए जाते हैं?
यदि मैट्रिक्स परिवर्तनों में समरूप निर्देशांक का उपयोग नहीं किया गया तो क्या समस्या होगी?
जवाबों:
वे ग्राफिक्स में प्रयुक्त गणित को सरल और एकीकृत करते हैं:
वे आपको मैट्रिस के साथ अनुवाद का प्रतिनिधित्व करने की अनुमति देते हैं।
वे आपको परिप्रेक्ष्य अनुमानों में गहराई से विभाजन का प्रतिनिधित्व करने की अनुमति देते हैं।
पहला वाला एफाइन ज्यामिति से संबंधित है। दूसरा एक प्रक्षेपी ज्यामिति से संबंधित है।
यह नाम में है: सजातीय निर्देशांक अच्छी तरह से हैं ... सजातीय। सजातीय होने का अर्थ है रोटेशन, अनुवाद, स्केलिंग और अन्य परिवर्तनों का एक समान प्रतिनिधित्व।
एक समान प्रतिनिधित्व अनुकूलन के लिए अनुमति देता है। 3 डी ग्राफिक्स हार्डवेयर को 4x4 मैट्रिक्स पर मैट्रिक्स गुणा करने के लिए विशेष किया जा सकता है। इसे 0 या 1 से गुणा करने पर बचाने और बचाने के लिए भी विशेष किया जा सकता है, क्योंकि इनका उपयोग अक्सर किया जाता है।
सजातीय निर्देशांक का उपयोग नहीं करने से पूरी तरह से अनुकूलित हार्डवेयर का उपयोग करना कठिन हो सकता है। जो भी कार्यक्रम पहचानता है कि हार्डवेयर के अनुकूलित निर्देशों का उपयोग किया जा सकता है (आमतौर पर एक संकलक लेकिन चीजें कभी-कभी अधिक जटिल होती हैं) सजातीय निर्देशांक के लिए अन्य अभ्यावेदन के लिए अनुकूलन के साथ एक कठिन समय होगा। यह कम अनुकूलित निर्देशों का चयन करेगा और इस प्रकार हार्डवेयर की क्षमता का उपयोग नहीं करेगा।
उदाहरण के लिए कॉल थे: सोनी के PS4 बड़े पैमाने पर मैट्रिक्स गुणन कर सकते हैं। यह उस पर इतना अच्छा है कि इसे कुछ समय के लिए बेच दिया गया था, क्योंकि उनमें से क्लस्टर अधिक महंगे सुपर-कंप्यूटर के बजाय उपयोग किए गए थे। सोनी ने बाद में मांग की कि उनके हार्डवेयर का इस्तेमाल सैन्य उद्देश्यों के लिए नहीं किया जा सकता है। हां, सुपर-कंप्यूटर सैन्य उपकरण हैं।
शोधकर्ताओं के लिए यह बहुत सामान्य हो गया है कि वे ग्राफिक कार्ड का उपयोग करें, भले ही कोई ग्राफिक शामिल न हो, अपने मैट्रिक्स गुणन की गणना करें। केवल इसलिए कि वे सामान्य उद्देश्य सीपीयू की तुलना में इसमें बेहतर परिमाण हैं। तुलना के लिए आधुनिक मल्टी-कोर सीपीयू में 16 पाइपलाइनों के क्रम पर है (x0.5 या x2 कोई फर्क नहीं पड़ता) जबकि GPU में 1024 पाइपलाइनों के आदेश हैं।
यह पाइपलाइनों की तुलना में बहुत अधिक कोर नहीं है जो वास्तविक समानांतर प्रसंस्करण के लिए अनुमति देता है। धागे पर करोड़ों काम करते हैं। थ्रेड्स को स्पष्ट रूप से प्रोग्राम किया जाना है। निर्देश स्तर पर पाइपलाइन काम करती है। चिप अपने आप कम या ज्यादा निर्देशों को समानांतर कर सकती है।
पूरक हैं:
परिप्रेक्ष्य परिवर्तन के बारे में, यह बिना किसी परिप्रेक्ष्य विरूपण (पीसी पर शुरुआती ग्राफिक्स हार्डवेयर के विपरीत) के साथ सही ढंग से प्रक्षेपित करने की अनुमति देता है।
एक व्यक्तिगत स्वाद के रूप में मैंने हमेशा सजातीय निर्देशांक का उपयोग करने से (जब संभव हो) बंद कर दिया है और सादे कार्टेशियन सूत्रीकरण को प्राथमिकता दी है।
मुख्य कारण यह है कि सजातीय निर्देशांक परिवर्तन मैट्रिसेस (0, 0, 0, 1) में 4 तुच्छ प्रविष्टियों का उपयोग करते हैं, जिसमें बेकार भंडारण और संगणना भी शामिल है (सामान्य प्रयोजन मैट्रिक्स गणना रूटिंग के ओवरहेड जो "डिफ़ॉल्ट रूप से" उपयोग किए जाते हैं) ये मामला)।
नकारात्मक पक्ष यह है कि समीकरण लिखते समय आपको अधिक देखभाल की आवश्यकता होती है और मैट्रिक्स सिद्धांत का समर्थन खो देता है, लेकिन अभी तक मैं बच गया हूं।
plain Cartesian formulation
ऐसे संसाधन का उदाहरण या लिंक प्रदान कर सकते हैं जो 3D ग्राफिक्स में इसके उपयोग का वर्णन करता है?
w
?
कॉइन निर्देशांक में गणना के लिए अक्सर विभाजनों की आवश्यकता होती है, जो कि परिवर्धन या गुणा की तुलना में महंगे होते हैं। एक आम तौर पर प्रक्षेप्य निर्देशांक का उपयोग करते समय विभाजित करने की आवश्यकता नहीं होती है।
प्रोजेक्टिव निर्देशांक (और आमतौर पर, प्रोजेक्टिव ज्यामिति) का उपयोग विशेष मामलों को भी खत्म करने के लिए जाता है, जिससे सब कुछ सरल और अधिक समान हो जाता है।