मैं वर्टेक्स और ज्यामिति शेडर्स बनाने के लिए ओपनजीएल छायांकन भाषा (जीएलएसएल) संस्करण 1.5 का उपयोग करने की कोशिश कर रहा हूं।ओपनजीएल में आप मॉडलव्यू और प्रोजेक्शन मैट्रिस कैसे प्राप्त करते हैं?
मैंने सीखा है कि जीएलएसएल संस्करण 1.5 में, अंतर्निहित चर gl_ModelViewProjectionMatrix
को बहिष्कृत कर दिया गया है, इसलिए आपको उन्हें मैन्युअल रूप से पास करना होगा। यदि मैंने पहले से ही मॉडलव्यू और प्रक्षेपण मैट्रिक्स सेट किया है (उदाहरण के लिए gluLookAt
और gluPerspective
का उपयोग करके) तो मैट्रिक्स को वर्टेक्स और ज्यामिति शेडर्स में कैसे पास किया जाए? मैंने कुछ खोज की है और कुछ साइटें glGetMatrix()
फ़ंक्शन का उल्लेख करने लगती हैं, लेकिन मुझे यह फ़ंक्शन किसी भी आधिकारिक दस्तावेज़ीकरण में नहीं मिल रहा है, और यह कार्यान्वित करने में प्रतीत नहीं होता है (मुझे संकलन त्रुटि unknown identifier: glGetMatrix
मिलती है जब मैं इसे उस फ़ंक्शन के साथ संकलित करने का प्रयास करता हूं)।
+1 यह एक उत्कृष्ट बिंदु है जिसे आपने उठाया है! – Stringer
तो मैट्रिक्स स्टैक की कमी के साथ, मुझे यकीन नहीं है कि नया दृष्टिकोण क्या होना चाहिए। हमारे पुराने कोड में हमने इंस्टॉलेशन ऑब्जेक्ट्स में ट्रांसफॉर्मेशन लगाए और प्रत्येक को एक सामान्य फ़ंक्शन से प्रस्तुत किया। तो ऐसा लगता है कि इसे काम करने के लिए मुझे हर ट्रांसफॉर्म के बाद मैन्युअल रूप से मॉडल व्यू मैट्रिक्स को अपडेट करना होगा। ऐसा करने के लिए नया प्रतिमान क्या है? – Nigel
यदि आप जीएल 3 + में मैट्रिक्स स्टैक चाहते हैं, तो 'std :: vector' बनाएं और 'glUniformMatrix4fv' के साथ शीर्षतम मैट्रिक्स ऑब्जेक्ट को पास करें। आप उनमें से कई हो सकते हैं, और आप यह तय करने में सक्षम हैं कि अपने शेडरों में प्रत्येक का उपयोग कैसे करें। –
Kos