मैं एक 3 डी ग्राफिक्स इंजन बना रहा हूं और आवश्यकताओं में से एक रस्सी है जो वाल्व के स्रोत इंजन में व्यवहार करती है।स्रोत इंजन स्टाइल रस्सी रेंडरिंग
तो स्रोत इंजन में, रस्सी का एक वर्ग एक क्वाड होता है जो कैमरे का सामना करने के लिए इसकी दिशा धुरी के साथ घूमता है, इसलिए यदि रस्सी का वर्ग + जेड दिशा में है, तो यह ज़ेड अक्ष के साथ घुमाएगा, इसलिए यह है चेहरा कैमरे की केंद्र स्थिति का सामना कर रहा है।
फिलहाल, मेरे पास रस्सी के खंड परिभाषित हैं, इसलिए मेरे पास एक अच्छी घुमावदार रस्सी हो सकती है, लेकिन अब मैं मैट्रिक्स बनाने की कोशिश कर रहा हूं जो इसे इसके दिशा वेक्टर के साथ घुमाएगा।
मैं पहले से ही इस billboarding तकनीक पर आधारित बोर्ड स्प्राइट प्रतिपादन के लिए एक मैट्रिक्स है: Constructing a Billboard Matrix और इस समय मैं यह रीटूल करने ताकि ठीक है, ऊपर, फॉरवर्ड वेक्टर रस्सी खंड की दिशा वेक्टर से मेल की कोशिश कर रहा हूँ।
मेरी रस्सी कई वर्गों से बना है, प्रत्येक खंड दो त्रिकोणों से बना आयताकार है, जैसा कि मैंने ऊपर कहा है, मैं स्थिति और वर्गों को सही प्राप्त कर सकता हूं, यह कैमरे का सामना करने के लिए घूर्णन कर रहा है जिससे मुझे बहुत कुछ मिल रहा है समस्याओं का
यह ओपन ES2 में है और सी
मेंमैं Model_beam.cpp में डूम 3 की किरण प्रतिपादन कोड का अध्ययन किया है लिखा है, विधि का इस्तेमाल किया वहाँ normals के आधार पर ऑफसेट गणना करने के लिए नहीं बल्कि मैट्रिक्स का उपयोग करने से है, इसलिए मैं मेरे सी कोड में एक समान तकनीक बनाई है और यह काम करता है, कम से कम यह, उतना ही काम करता है जितना मुझे इसकी आवश्यकता है।
तो उन लोगों के लिए जो इसे समझने की कोशिश कर रहे हैं, कैमरे की स्थिति के खिलाफ रस्सी के मध्य बिंदु के क्रॉस-उत्पाद का उपयोग करें, इसे सामान्य करें और फिर इसे गुणा करें कि आप रस्सी को कितनी चौड़ी बनाना चाहते हैं , फिर जब शिखर का निर्माण करते हैं, तो प्रत्येक वर्टेक्स को या तो + या - परिणामस्वरूप वेक्टर की दिशा में ऑफसेट करें।
आगे की मदद बहुत अच्छी होगी हालांकि यह सही नहीं है!
धन्यवाद
एक विशेष अक्ष के बारे में एक खास कोण से कुछ घुमाने के लिए, का उपयोग एक [चौका] (https://en.wikipedia.org/wiki/Quaternion)। –
मैं वर्तमान में quaternions का उपयोग कर रहा हूँ, लेकिन मुझे यकीन नहीं है कि इसे कैमरे की स्थिति –
की ओर घुमाने के लिए कैसे करें वर्तमान आयताकार/सेक्शन का सामान्य 'एन' होना चाहिए, और आयताकार अक्ष के साथ वेक्टर' वी' होना चाहिए। फिर, 'वीएक्सएन' आपको' यू 'और 'एन' के साथ तीसरा वेक्टर' यू 'देगा, जो आपके रस्सी खंड के सापेक्ष एक" क्षैतिज विमान "बना रहा है। अब 'आईपोस - सी' की गणना करें (जहां 'सी' आपके आयताकार का केंद्र है) और इसे 'ई', कैमरा दिशा प्राप्त करने के लिए सामान्यीकृत करें। 'ई' प्राप्त करने के लिए 'यूएन' विमान पर परियोजना 'ई'। अंत में, जो रोटेशन आप चाहते हैं (अक्ष 'वी' के बारे में)' आर्ककोस (एन। ई ') 'है। –