कृपया, मुझे माफ़ कर दें, लेकिन मुझे मदद की ज़रूरत है और मैं अब कुछ हफ्तों के लिए इस पर अटक गया हूं, मैं कोई प्रगति नहीं कर रहा हूं और हर जगह मैं जाता हूं और मुझे एक अलग उत्तर दिखाई देता है, जो कुछ भी मैं कोशिश करता हूं वह काम नहीं करता है। मेरे पास पर्याप्त सुझाव और सलाह हैं, अब मुझे वास्तव में सिर्फ किसी की ज़रूरत है जो मुझे मेरे लिए जवाब देने के लिए पीछे से काम करे क्योंकि मैं इसे समझ नहीं पा रहा हूं।
इस विषय ने जो सबसे अधिक भ्रमित किया है वह यह है कि हर कोई सम्मेलनों या नियमों के एक अलग सेट का उपयोग करता है, और उनके जवाब उनके स्वयं के सम्मेलनों पर आधारित होते हैं बिना यह परिभाषित किए कि वे क्या हैं।
तो यहां उन सम्मेलनों का सेट है जो मैंने इस आधार पर बनाए हैं कि यह सबसे आम और तार्किक है:
- अक्ष के लिए दाहिना हाथ नियम।
- पॉजिटिव Y ऊपर है, पॉजिटिव Z दर्शक की तरफ है, पॉजिटिव X दाईं ओर है।
- रो मेजर मैट्रिक्स, जब shaders को भेजा जाता है।
- पिच: एक्स अक्ष के बारे में रोटेशन
- Yaw: y अक्ष के बारे में रोटेशन
- रोल: z अक्ष के बारे में रोटेशन
- रोटेशन का क्रम: रोल, पिच, यव (क्या यह सही है? क्या कोई इस पर मेरी जांच कर सकता है?)
- सकारात्मक रोटेशन मान, एक धुरी के सकारात्मक अंत से नीचे देख रहे हैं, दक्षिणावर्त रोटेशन का परिणाम है।
- सभी अक्ष पर 0 रोटेशन के लिए डिफ़ॉल्ट दिशा नकारात्मक वाई की ओर इशारा करते हुए एक वेक्टर है।
.. उन सम्मेलनों को दिया (हर तरह से मुझे सही करें अगर वे गलत हैं!), एक कैसे होता है:
- एक LookAt फ़ंक्शन लिखें? (लुक (वेक्टर पोजिशन, वेक्टर आईफोकस, वेक्टर अप))
- एक घूर्णन मैट्रिक्स की गणना करें। (रोटेशन (x, y, z))
मैंने कम से कम पिछले 3 सप्ताह में इन दोनों प्रश्नों के उत्तर देने की कोशिश की है, मैंने अपने LookAt & Rotation Matrix फ़ंक्शन को कम से कम 30 बार लिखा है, मैंने दर्जनों विधियों का परीक्षण किया है और उस सामग्री के माध्यम से पढ़ा है जिसे मैंने देखा है सैकड़ों वेबसाइटों और पढ़े गए कई सवालों के जवाब, अन्य लोगों के कोड की नकल की, और मैंने अब तक जो कुछ भी नहीं किया है, उसने काम किया है, सब कुछ गलत परिणाम उत्पन्न किया है। जिनमें से कुछ ने कुछ प्रफुल्लित करने वाले विचित्र उत्पादन किए हैं जो सही रोटेशन के करीब भी नहीं हैं।
मैं पिछली रात के अपवाद के साथ हर रात इस पर काम कर रहा था क्योंकि मैं बार-बार असफलता से इतना निराश हो रहा था कि मुझे रुकना पड़ा और ब्रेक लेना पड़ा।
कृपया, बस मुझे बताएं कि सही तरीका क्या है इसलिए मैं उससे पीछे की ओर काम कर सकता हूं और यह पता लगा सकता हूं कि यह कैसे काम करता है, मुझे सिर्फ सही उत्तर नहीं मिल रहा है और यह मुझे थोड़ा पागल बना रहा है!
मैं जावा में लिख रहा हूं, लेकिन मैं किसी भी भाषा में लिखा कोड ले लूंगा, मेरे 3 डी रेंडरिंग कोड में से अधिकांश वास्तव में काफी शानदार ढंग से काम कर रहा है, यह सिर्फ वह गणित है जिसे मैं समझ नहीं सकता।
अद्यतन: हल
आपके सहयोग के लिए धन्यवाद! अब मेरे पास एक कामकाजी लुकएट फ़ंक्शन है जिसे मैं वास्तव में समझता हूं और मैं अधिक खुश नहीं हो सकता (यदि कोई भी इसे हर तरह से पूछना चाहता है)।
मैंने फिर से पिच / yaw / roll variables के आधार पर एक घूमने वाला मैट्रिक्स बनाने की कोशिश की और यह फिर से विफल लगने लगा, लेकिन मैंने फ्रीलान्स कैमरे के लिए euler कोणों का उपयोग करने का प्रयास करने का निर्णय लिया है क्योंकि यह बीमार के लिए अनुकूल प्रतीत होता है भूमिका, इसके बजाय मैं एक चतुष्कोणीय वर्ग बनाने जा रहा हूं, हो सकता है कि उस रास्ते से नीचे जाने में बेहतर भाग्य हो, अन्यथा मैं गोलाकार निर्देशांक के रूप में पिच / यॉ का उपयोग करने का सहारा लूंगा और रोटेशन के लिए नए कामकाजी लुकएट फ़ंक्शन पर भरोसा करूंगा।
अगर किसी और को भी इसी तरह की समस्या का सामना करना पड़ रहा है और मुझसे कोई सवाल पूछना चाहता है, तो बेझिझक।
कम से कम मैं अब और नहीं फँसा हूँ, मदद के लिए धन्यवाद!