libgdx: How do I convert touch coordinates to 3D point on camera NEAR plane? -


मैं एक libgdx NOOB हूं - अगर यह एक स्पष्ट सवाल है तो क्षमाप्रार्थी ..

libgdx का उपयोग कर मैंने एक परिप्रेक्ष्य कैमरा स्थापित किया है, मूल (मूल के पास कैमरा = 1f, दूर = 300 एफ)। व्यूपोर्ट पूरे स्क्रीन पर फैली हुई है।

असल में, मैं यह जानना चाहूंगा कि कैसे 2 डी स्क्रीन निर्देशांक (एक्स, वाई) को 3 डी दुनिया के समन्वय (एक्स, वाई, जेड) में परिवर्तित करें, जहां Z मान है कैमरे के पास विमान के लिए दबाना।

मुझे लगता है कि मुझे स्क्रीन समन्वय के लिए एक पिकिंग रे प्राप्त करने के लिए विधि का उपयोग करना चाहिए। मुझे तब इस रे और चौराहे के निकट बिंदु के बिंदु को समतल विमान के बिंदु के विश्व समन्वय के लिए मिलना चाहिए।

मैंने सोचा कि परिणामस्वरूप रे ऑब्जेक्ट < मूल संपत्ति निकट-विमान प्रतिच्छेदन बिंदु थी, जो मैं उसके बाद थी, लेकिन ऐसा लगता नहीं है।

क्या मैं सही रास्ते पर हूं?

देता है, , देखें। मूल सदस्य को unprojected मान में z = 0 पर सेट करता है, इस प्रकार निकटतम विमान पर, देखें। यदि आपको रे ( direction सहित) की ज़रूरत नहीं है, तो आपको लेने वाली रे की गणना करने की ज़रूरत नहीं है, बजाय आप unproject विधि सीधे कॉल कर सकते हैं।

<पूर्व> वेक्टर 3 प्वाइंटऑनपेयर = कैमरे.इनप्रोजेक्ट (नया वेक्टर 3 (टच एक्स, स्पर्श वाई, 0 एफ));

इसी तरह, दूर के विमान के बिंदु के लिए:

  vector3 pointOnFarPlane = camera.unproject (नया वेक्टर 3 (स्पर्श, स्पर्श, 1f));  

Comments