سؤال

في تخمة التطبيق محاكاة طائرة مع الكاميرا.عندما الطائرات سرعة منخفضة أنوي الأنف تبدأ نقطة نحو الأرض كما تقع الكاميرا.حدسي الأول هو مجرد تغيير الملعب حتى أنه أشار إلى أسفل في 90degrees.ومع ذلك لا أستطيع تغيير الملعب لأنه إذا كانت الطائرة يميل على جانبه أو رأسا على عقب ثم سيكون ملاحظة أن تغيير الاتجاه نحو الأرض.

الآن أنا أحاول أن أفعل الخام محاكاة هذا عن طريق تحويل 'أنظر.y' أسفل.للقيام بذلك أنا أحاول الحصول على جميع الحالية الكاميرا الإحداثيات التي تستخدم لضبط الكاميرا (العين.x العين.y العين.z, انظر.x, انظر.ذ ، أن ننظر.زي ما يصل.x, فوق.y, حتى.ض).ثم يذكر مجموعة جديدة مع تعديل القيم.

لقد تم العمل مع Camera.cpp و الكاميرا.ساعة للسيطرة على وظائف الكاميرا.ويمكن العثور عليها هنا

بعد إضافة طرق للحصول على كل القيم فقط العين القيم فعلا تحديث عند مختلف حركات الكاميرا مصنوعة.سؤالي هو كيف يمكنني استرداد هذه القيم.

على glLoadMaxtrix الدعوة في هذه الوظيفة

void Camera :: setModelViewMatrix(void)

{ // load model view matrix with existing camera values

    float m[16];

    Vector3 eVec(eye.x, eye.y, eye.z);

    m[0] =  u.x; m[4] =  u.y; m[8]  =  u.z;  m[12] = -eVec.dot(u);

    m[1] =  v.x; m[5] =  v.y; m[9]  =  v.z;  m[13] = -eVec.dot(v);

    m[2] =  n.x; m[6] =  n.y; m[10] =  n.z;  m[14] = -eVec.dot(n);

    m[3] =  0;   m[7] =  0;   m[11] =  0;    m[15] = 1.0;

look.x = u.y; look.y = v.y; look.z = n.y; 

    glMatrixMode(GL_MODELVIEW);

    glLoadMatrixf(m);

}

هل هناك طريقة للحصول على 'العين', 'نظرة' ، و 'حتى' القيم من المصفوفة هنا ؟ أو علي أن أفعل شيئا آخر للحصول على هذه القيم ؟

-شكرا مقدما على مساعدتكم

هل كانت مفيدة؟

المحلول

الكاميرا فئة لك رابط لا فعلية OpenGL الدرجة ، ولكن يجب أن تكون بسيطة بما فيه الكفاية للعمل مع.

وظيفة نقلت فقط يأخذ القيم الحالية الكاميرا وجوه و يرسل لهم OpenGL.إذا كنت تبحث في الكاميرا تعيين وظيفة, يمكنك أن ترى كيف يحسب البرنامج القيم فعلا المتاجر.

العين يتم تخزين قيمة مباشرة.إن نظرة القيمة هو قيمة (العين - n) ، عن طريق ناقلات الرياضيات.تصل قيمة هو أصعب, ولكن إذا كنت أتذكر بلدي ناقلات الرياضيات بشكل صحيح ، وأعتقد أن تصل = (n عبر u).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top