opengl ओपनजीएल: मॉडेलव्यू मैट्रिक्स द्वारा एकाधिक उपयोगकर्ता वेक्टर?




3d transformation (4)

क्या ओपनसीएल को एक सामान्य वेक्टर को बदलने का कोई तरीका है जो मैं इसे वर्तमान मॉडलव्यूले मैट्रिक्स के साथ देता हूं और परिणाम को वापस प्राप्त करता हूं?

स्पष्ट तरीके से मॉडलव्यू मैट्रिक्स को पूछना है और अपने आप को गुणा करना है लेकिन मुझे यकीन है कि ओपनजीएल मेरे लिए ऐसा करने का एक तरीका होना चाहिए।


आप सही हैं, आपको मॉडल विले मैट्रिक्स प्राप्त करना होगा और सदिश को अपने आप को बदलना होगा।

पुष्टि के लिए, अनुच्छेद 9.120 पर यह लिंक देखें।


ओपनजीएल के बाहर गणना करना सबसे अच्छा है मैट्रिक्स और क्वाटरनियंस अकसर पूछे जाने वाले प्रश्न के बारे में जानने के लिए एक अच्छा संसाधन है कि गणना कैसे करें, अगर आपको पहले से ही पता नहीं है आप निम्नानुसार 4x4 मॉडल-दृश्य मैट्रिक्स ला सकते हैं

float modelview[16];
glGetFloatv(GL_MODELVIEW_MATRIX, modelview);

ओपनगेल शायद आपके लिए ऐसा नहीं करेगा क्योंकि यह गणना प्रतिपादन पाइपलाइन का हिस्सा नहीं है। और ओपनगेल (अधिकांश भाग के लिए) केवल प्रदर्शन लूप के दौरान गणना करता है। तो यह इन प्रकार के तुल्यकालिक इंटरफेस प्रदान करने के लिए समझ में नहीं आता है।


सीपीयू पक्ष पर परिवर्तन करना संभवतः सबसे अच्छा है मैं सोच सकता है कि एकमात्र तरीका EXT_transform_feedback प्लस एक शिखर shader का उपयोग करना है जो केवल मॉडलव्यू रूपांतरण करता है







transformation