मुझे XNA में दृश्य मैट्रिक्स को समझने में कुछ गंभीर समस्याएं आ रही हैं। मैं अन्य सभी हिस्सों के साथ बहुत दूर आया हूं और चूंकि मैंने खुद को आवश्यक गणित सीखा है, इसलिए मैं पहले मैट्रिक्स-फ़ंक्शंस में अंतर्निहित किए बिना समझने के लिए उपयोग नहीं करना चाहता हूं।एक्सएनए व्यू मैट्रिक्स - स्पष्टीकरण की तलाश
अब मैं घूर्णन, प्रक्षेपण और अनुवाद की मूल बातें समझता हूं लेकिन मैं समझ नहीं पा रहा हूं कि व्यू मैट्रिक्स XNA में कैसे काम करता है।
जो मैंने एकत्र किया है, उससे दृश्य मैट्रिक्स को "दुनिया" को अपनी जगह पर बदलना चाहिए। उचित लगता है, लेकिन पुस्तकालय में Matrix.CreateLookAt विधि काफी परेशान है।
मैं स्थापित कर लिया है (क्या पुस्तकालय समारोह आउटपुट की जांच के माध्यम से) कि कोड उपज के इन दो टुकड़े एक ही परिणाम:
Matrix view = Matrix.CreateReflection(new Plane(Vector3.UnitX, 0)) * Matrix.CreateReflection(new Plane(Vector3.UnitZ, 0)) * Matrix.CreateTranslation(Position);
// ..equals this if (Position = (0 0 -5), since LookAt "looks at" but the above just looks straight down Z)..
Matrix blah = Matrix.CreateLookAt(Position, Vector3.Zero, Vector3.UnitY);
क्यों एक्स और जेड अक्ष फ्लिप? मैंने सोचा कि आपको कैमरे के घूर्णन के अनुसार दुनिया को घूमना चाहिए, लेकिन विपरीत दिशा में, और फिर विपरीत दिशा में उसी राशि से दुनिया का अनुवाद करें।
या दृश्य मैट्रिक्स को एक परिवर्तन के रूप में उपयोग नहीं किया गया है, लेकिन दुनिया में कैमरे की स्थिति और घूर्णन को एन्कोड करता है?
धन्यवाद, ऐसा लगता है कि मेरा मूल विचार सही था। लेकिन मेरे पास इन सभी अलग समन्वय प्रणालियों को थोड़ा उलझन में था। – Skurmedel