मैं अपने 3 डी गेम के लिए एक दृश्य ग्राफ बनाने की कोशिश कर रहा हूं जिसमें प्रत्येक ऑब्जेक्ट के परिवर्तन इसके माता-पिता के सापेक्ष हैं। ग्राफ के प्रत्येक नोड में एक रोटेशन, स्केलिंग और अनुवाद वेक्टर होता है।पूर्ण परिवर्तनों के लिए 3 डी सापेक्ष
किसी ऑब्जेक्ट का पूर्ण परिवर्तन प्राप्त करने के लिए सापेक्ष परिवर्तन matrices के संयोजन का सही तरीका क्या है? अगर आप अपने समाधान की व्याख्या भी कर सकते हैं तो मुझे खुशी होगी।
यहाँ क्या करने का एक उदाहरण है यह गलत:
यह वास्तव में निकला समाधान:
Matrix GetAbsoluteTransformation()
{
if (!this.IsRoot())
{
return this.Transformation * this.Parent.GetAbsoluteTransformation();
}
else
{
return this.Transformation;
}
}
इस मामले में, जब माता पिता नोड घुमाया जाता है, स्केल या चले गए, बच्चे को वही राशि बदल दी गई है, जो एक सही व्यवहार है!
लेकिन बच्चा केवल अपनी उत्पत्ति के चारों ओर घूमता है और माता-पिता की उत्पत्ति के चारों ओर नहीं चलता है।
आवेदन:
चार पहियों के साथ एक कार मॉडल नहीं है। पहियों कार के मूल के चारों ओर सापेक्ष स्थित हैं। पहिये असली पहियों की तरह घुमा सकते हैं। अगर अब मैं कार घुमाता हूं, तो पहियों को हमेशा इसके साथ जुड़े रहना चाहिए। इस मामले में कार जड़ है और पहियों बच्चे नोड्स हैं।
एक और उदाहरण सौर मंडल का एक मॉडल होगा। ग्रह अपने स्वयं के धुरी के चारों ओर घूमते हैं, सूरज के चारों ओर घूमते हैं, और चन्द्रमा ग्रहों के चारों ओर घूमते हैं।
यह पता चला कि मेरा पहला विचार यह कैसे करना है, जिसे मैंने तब उपयुक्त नहीं माना, वास्तव में समाधान था! मैंने पिछले कुछ घंटों को हल करने की कोशिश की। * फेसपाल्म * त्वरित और सटीक सहायता के लिए सभी को धन्यवाद! – Lucius