मैं XNA3.1 इंजन का उपयोग कर सी # में एक गेम प्रोग्रामिंग कर रहा हूं। हालांकि मुझे अपने कैमरे के साथ एक छोटी सी समस्या है, मूल रूप से मेरा कैमरा "फ्लिप" करता है जब यह अपने रोल पर 180 डिग्री से अधिक घूमता है (जब कैमरा 180 डिग्री तक पहुंच जाता है, तो यह 0 डिग्री तक वापस आ जाता है)।कैमरा फ्लिप समस्या
Globals.g_GameProcessingInfo.camera.viewMat = Matrix.CreateLookAt(Globals.g_GameProcessingInfo.camera.target.pos, Globals.g_GameProcessingInfo.camera.LookAt, up); //Calculate the view matrix
Globals.g_GameProcessingInfo.camera.LookAt
चर स्थिति 1 यूनिट कैमरा, कैमरा के रोटेशन के सापेक्ष के ठीक सामने है, और "ऊपर" चर के साथ प्राप्त की है: दृश्य मैट्रिक्स प्राप्त करने के लिए कोड इस प्रकार है निम्नलिखित कार्य:
static Vector3 GetUp() //Get the up Vector of the camera
{
Vector3 up = Vector3.Zero;
Quaternion quat = Quaternion.Identity;
Quaternion.CreateFromYawPitchRoll(Globals.g_GameProcessingInfo.camera.target.rot.Y, Globals.g_GameProcessingInfo.camera.target.rot.X, Globals.g_GameProcessingInfo.camera.target.rot.Z, out quat);
up.X = 2 * quat.X * quat.Y - 2 * quat.W * quat.Z; //Set the up x-value based on the orientation of the camera
up.Y = 1 - 2 * quat.X * quat.Z - 2 * quat.Z * quat.Z; //Set the up y-value based on the orientation of the camera
up.Z = 2 * quat.Z * quat.Y + 2 * quat.W * quat.X; //Set the up z-value based on the orientation of the camera
return up; //Return the up Vector3
}
बस अपडेट करने के लिए, मैंने "वेक्टर। ट्रांसफॉर्म()" के उपयोग के माध्यम से कैमरा रोटेशन के आधार पर अप वेक्टर को बदलने के लिए फ़ंक्शन को कार्यान्वित किया। हालांकि फिर समस्या तब हो सकती है जब "अप" वेक्टर "देखो" वेक्टर के बराबर होता है और यही वजह है कि यह फ़्लिप हो गया (जैसा कि पिछले खेलों में समस्या है)। स्थिति को देखने के लिए फ़ंक्शन को दोबारा कोड करने के बाद कैमरे को अभी भी उसी क्षेत्र में फ़्लिप करना पड़ता है, और रोटेशन के साथ नाटकीय हो रहा है या कैमरे के चर को देखने में कुछ भी नहीं है। –
अतिरिक्त जानकारी जोड़ते समय अपने प्रश्न पर टिप्पणी जोड़ने की बजाय प्रश्न को संपादित करने का प्रयास करें। टिप्पणियां यहां चर्चा करने या दूसरों के उत्तरों या दूसरों की टिप्पणियों पर टिप्पणी करने के लिए एक विधि हैं। – Manish