Unprojecting على الشاشة نقطة العودة إلى isometrically المتوقع العالم

StackOverflow https://stackoverflow.com/questions/912418

سؤال

وأنا أفعل خلف الستائر 3d محاكاة حين جعل العالم في 2d متساوي القياس المحرك.أنا لم أفعل متساوي القياس المحرك قبل ، مصفوفة الرياضيات هو صدئ في ذلك العام أن أواجه مشاكل.

لدي مصفوفة الإسقاط ، وهو في أبسط أشكالها هي هذه:

 0.7       0.35     0
 0        -0.87     0
-0.71      0.35     1

اثنين من علامات انقلبت لأن محركات تنسيق نظام 0,0 في أعلى اليسار ، مع +X إلى اليمين/الشرق +Z إلى الجنوب.

الآن عكس ذلك هو:

1.4080  0.5670   0.0000
0.0000 -1.1490   0.0000
1.0000  0.8050   1.0000

الآن, هذه المصفوفات في الغالب العمل.

على سبيل المثال

WC: 500,0,500 = الشاشة: -1.44, 350, 500 (X و Y هي الصحيحة)

WC: 0,0,500 = الشاشة: -355, 175, 500 (X و Y هي الصحيحة مرة أخرى)

ولكن الآن إذا كنت بحاجة إلى أن تذهب في الاتجاه الآخر ، لم يعد لديك هذا مفيد Z قيمة ، لذلك

الشاشة: -1.44, 350, 0 = WC: -2, -402.97, 0 (حتى القمامة.)

وغيرها الكثير - في أقرب وقت وأنا لم يعد لدينا أن قيمة Z, لا أستطيع استرداد العالم coords من الشاشة coords.

ما هو الحل هنا ؟

تحرير

وأود أن أشير إلى أن الهدف من unproject هو الحصول على راي للماوس واختيار..

يبدو أن الأمر مجرد سوء فهم ما كنت أقوم به أن كان يشد لي هنا.

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

المحلول

كما يمكنك اكتشاف التحويل الخاص بك مرة أخرى إلى الفضاء 3D يتطلب نوعا من Z تنسيق إلى أي معنى على الإطلاق.

وأود أن أقترح عليك أن تفعل العكس التحول مرتين.مرة واحدة مع Z تنسيق بالقرب من الشاشة (الأقرب إلى مراقب) ، و مرة واحدة مع Z تنسيق في الجزء الخلفي من المشهد 3D.هذين 3D نقاط من شأنها أن تعطيك 3D خط ، والتي من شأنها أن تشغل جميع المناصب "خلف" أن 2D نقطة.

نصائح أخرى

لا يمكنك ذلك. أنت توقع على الشاشة التي تفقد المعلومات.

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

تحرير] النظر إلى إحداثيات الشاشة الخاصة بك، يمكنك تقديمها جميع قيمة Z 0. مما يعني أن الأعمدة الأخيرة من مصفوفة الإسقاط يجب أن يكون لديك جميع الأصفار، مما يجعل مصفوفة غير قابل للتحول.

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

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